Merge commit 'refs/pull/322/head' of github.com:bitcoindevkit/bdk
This commit is contained in:
commit
45983d2166
4
.github/workflows/cont_integration.yml
vendored
4
.github/workflows/cont_integration.yml
vendored
@ -46,7 +46,7 @@ jobs:
|
|||||||
- name: Build
|
- name: Build
|
||||||
run: cargo build --features ${{ matrix.features }} --no-default-features
|
run: cargo build --features ${{ matrix.features }} --no-default-features
|
||||||
- name: Clippy
|
- name: Clippy
|
||||||
run: cargo clippy --features ${{ matrix.features }} --no-default-features -- -D warnings
|
run: cargo clippy --all-targets --features ${{ matrix.features }} --no-default-features -- -D warnings
|
||||||
- name: Test
|
- name: Test
|
||||||
run: cargo test --features ${{ matrix.features }} --no-default-features
|
run: cargo test --features ${{ matrix.features }} --no-default-features
|
||||||
|
|
||||||
@ -151,7 +151,7 @@ jobs:
|
|||||||
run: rustup default 1.51.0 # STABLE
|
run: rustup default 1.51.0 # STABLE
|
||||||
- name: Set profile
|
- name: Set profile
|
||||||
run: rustup set profile minimal
|
run: rustup set profile minimal
|
||||||
- name: Add clippy
|
- name: Add rustfmt
|
||||||
run: rustup component add rustfmt
|
run: rustup component add rustfmt
|
||||||
- name: Update toolchain
|
- name: Update toolchain
|
||||||
run: rustup update
|
run: rustup update
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Run various invocations of cargo check
|
|
||||||
|
|
||||||
features=( "default" "compiler" "electrum" "esplora" "compact_filters" "key-value-db" "async-interface" "all-keys" "keys-bip39" )
|
|
||||||
toolchains=( "+stable" "+1.46" "+nightly" )
|
|
||||||
|
|
||||||
main() {
|
|
||||||
check_src
|
|
||||||
check_all_targets
|
|
||||||
}
|
|
||||||
|
|
||||||
# Check with all features, with various toolchains.
|
|
||||||
check_src() {
|
|
||||||
for toolchain in "${toolchains[@]}"; do
|
|
||||||
cmd="cargo $toolchain clippy --all-targets --no-default-features"
|
|
||||||
|
|
||||||
for feature in "${features[@]}"; do
|
|
||||||
touch_files
|
|
||||||
$cmd --features "$feature"
|
|
||||||
done
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Touch files to prevent cached warnings from not showing up.
|
|
||||||
touch_files() {
|
|
||||||
touch $(find . -name *.rs)
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
exit 0
|
|
@ -870,7 +870,7 @@ impl<Ctx: ScriptContext> ExtractPolicy for Miniscript<DescriptorPublicKey, Ctx>
|
|||||||
.map(|n| n.extract_policy(signers, secp))
|
.map(|n| n.extract_policy(signers, secp))
|
||||||
.collect::<Result<Vec<_>, _>>()?
|
.collect::<Result<Vec<_>, _>>()?
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.filter_map(|x| x)
|
.flatten()
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
if mapped.len() < nodes.len() {
|
if mapped.len() < nodes.len() {
|
||||||
@ -1023,8 +1023,8 @@ mod test {
|
|||||||
|
|
||||||
assert!(
|
assert!(
|
||||||
matches!(&policy.item, Multisig { keys, threshold } if threshold == &2usize
|
matches!(&policy.item, Multisig { keys, threshold } if threshold == &2usize
|
||||||
&& &keys[0].fingerprint.unwrap() == &fingerprint0
|
&& keys[0].fingerprint.unwrap() == fingerprint0
|
||||||
&& &keys[1].fingerprint.unwrap() == &fingerprint1)
|
&& keys[1].fingerprint.unwrap() == fingerprint1)
|
||||||
);
|
);
|
||||||
// TODO should this be "Satisfaction::None" since we have no prv keys?
|
// TODO should this be "Satisfaction::None" since we have no prv keys?
|
||||||
// TODO should items and conditions not be empty?
|
// TODO should items and conditions not be empty?
|
||||||
@ -1054,8 +1054,8 @@ mod test {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
assert!(
|
assert!(
|
||||||
matches!(&policy.item, Multisig { keys, threshold } if threshold == &2usize
|
matches!(&policy.item, Multisig { keys, threshold } if threshold == &2usize
|
||||||
&& &keys[0].fingerprint.unwrap() == &fingerprint0
|
&& keys[0].fingerprint.unwrap() == fingerprint0
|
||||||
&& &keys[1].fingerprint.unwrap() == &fingerprint1)
|
&& keys[1].fingerprint.unwrap() == fingerprint1)
|
||||||
);
|
);
|
||||||
|
|
||||||
assert!(
|
assert!(
|
||||||
@ -1429,7 +1429,7 @@ mod test {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut policy_clone = original_policy.clone();
|
let mut policy_clone = original_policy;
|
||||||
let psbt: PSBT = deserialize(&base64::decode(ALICE_BOB_SIGNED_PSBT).unwrap()).unwrap();
|
let psbt: PSBT = deserialize(&base64::decode(ALICE_BOB_SIGNED_PSBT).unwrap()).unwrap();
|
||||||
policy_clone
|
policy_clone
|
||||||
.fill_satisfactions(&psbt, &wallet_desc, &secp)
|
.fill_satisfactions(&psbt, &wallet_desc, &secp)
|
||||||
|
@ -654,7 +654,7 @@ mod test {
|
|||||||
|
|
||||||
assert_eq!(result.selected.len(), 3);
|
assert_eq!(result.selected.len(), 3);
|
||||||
assert_eq!(result.selected_amount(), 300_010);
|
assert_eq!(result.selected_amount(), 300_010);
|
||||||
assert_eq!(result.fee_amount, 254.0);
|
assert!((result.fee_amount - 254.0).abs() < f32::EPSILON);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -675,7 +675,7 @@ mod test {
|
|||||||
|
|
||||||
assert_eq!(result.selected.len(), 3);
|
assert_eq!(result.selected.len(), 3);
|
||||||
assert_eq!(result.selected_amount(), 300_010);
|
assert_eq!(result.selected_amount(), 300_010);
|
||||||
assert_eq!(result.fee_amount, 254.0);
|
assert!((result.fee_amount - 254.0).abs() < f32::EPSILON);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -696,7 +696,7 @@ mod test {
|
|||||||
|
|
||||||
assert_eq!(result.selected.len(), 1);
|
assert_eq!(result.selected.len(), 1);
|
||||||
assert_eq!(result.selected_amount(), 200_000);
|
assert_eq!(result.selected_amount(), 200_000);
|
||||||
assert_eq!(result.fee_amount, 118.0);
|
assert!((result.fee_amount - 118.0).abs() < f32::EPSILON);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -756,7 +756,7 @@ mod test {
|
|||||||
|
|
||||||
assert_eq!(result.selected.len(), 3);
|
assert_eq!(result.selected.len(), 3);
|
||||||
assert_eq!(result.selected_amount(), 300_000);
|
assert_eq!(result.selected_amount(), 300_000);
|
||||||
assert_eq!(result.fee_amount, 254.0);
|
assert!((result.fee_amount - 254.0).abs() < f32::EPSILON);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -777,7 +777,7 @@ mod test {
|
|||||||
|
|
||||||
assert_eq!(result.selected.len(), 3);
|
assert_eq!(result.selected.len(), 3);
|
||||||
assert_eq!(result.selected_amount(), 300_010);
|
assert_eq!(result.selected_amount(), 300_010);
|
||||||
assert_eq!(result.fee_amount, 254.0);
|
assert!((result.fee_amount - 254.0).abs() < f32::EPSILON);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -798,7 +798,7 @@ mod test {
|
|||||||
|
|
||||||
assert_eq!(result.selected.len(), 3);
|
assert_eq!(result.selected.len(), 3);
|
||||||
assert_eq!(result.selected_amount(), 300010);
|
assert_eq!(result.selected_amount(), 300010);
|
||||||
assert_eq!(result.fee_amount, 254.0);
|
assert!((result.fee_amount - 254.0).abs() < f32::EPSILON);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -968,7 +968,7 @@ mod test {
|
|||||||
cost_of_change,
|
cost_of_change,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(result.fee_amount, 186.0);
|
assert!((result.fee_amount - 186.0).abs() < f32::EPSILON);
|
||||||
assert_eq!(result.selected_amount(), 100_000);
|
assert_eq!(result.selected_amount(), 100_000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1031,9 +1031,8 @@ mod test {
|
|||||||
);
|
);
|
||||||
|
|
||||||
assert!(result.selected_amount() > target_amount);
|
assert!(result.selected_amount() > target_amount);
|
||||||
assert_eq!(
|
assert!(
|
||||||
result.fee_amount,
|
(result.fee_amount - (50.0 + result.selected.len() as f32 * 68.0)).abs() < f32::EPSILON
|
||||||
50.0 + result.selected.len() as f32 * 68.0
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -190,7 +190,7 @@ pub enum AddressIndex {
|
|||||||
/// then the returned address and subsequent addresses returned by calls to `AddressIndex::New`
|
/// then the returned address and subsequent addresses returned by calls to `AddressIndex::New`
|
||||||
/// and `AddressIndex::LastUsed` may have already been used. Also if the index is reset to a
|
/// and `AddressIndex::LastUsed` may have already been used. Also if the index is reset to a
|
||||||
/// value earlier than the [`crate::blockchain::Blockchain`] stop_gap (default is 20) then a
|
/// value earlier than the [`crate::blockchain::Blockchain`] stop_gap (default is 20) then a
|
||||||
/// larger stop_gap should be used to monitor for all possibly used addresses.
|
/// larger stop_gap should be used to monitor for all possibly used addresses.
|
||||||
Reset(u32),
|
Reset(u32),
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1633,7 +1633,7 @@ mod test {
|
|||||||
.database
|
.database
|
||||||
.borrow_mut()
|
.borrow_mut()
|
||||||
.set_script_pubkey(
|
.set_script_pubkey(
|
||||||
&bitcoin::Address::from_str(&tx_meta.output.iter().next().unwrap().to_address)
|
&bitcoin::Address::from_str(&tx_meta.output.get(0).unwrap().to_address)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.script_pubkey(),
|
.script_pubkey(),
|
||||||
KeychainKind::External,
|
KeychainKind::External,
|
||||||
@ -2431,8 +2431,7 @@ mod test {
|
|||||||
.unsigned_tx
|
.unsigned_tx
|
||||||
.input
|
.input
|
||||||
.iter()
|
.iter()
|
||||||
.find(|input| input.previous_output == utxo.outpoint)
|
.any(|input| input.previous_output == utxo.outpoint),
|
||||||
.is_some(),
|
|
||||||
"foreign_utxo should be in there"
|
"foreign_utxo should be in there"
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -3616,7 +3615,7 @@ mod test {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_unused_address() {
|
fn test_unused_address() {
|
||||||
let db = MemoryDatabase::new();
|
let db = MemoryDatabase::new();
|
||||||
let wallet = Wallet::new_offline("wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)",
|
let wallet = Wallet::new_offline("wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)",
|
||||||
None, Network::Testnet, db).unwrap();
|
None, Network::Testnet, db).unwrap();
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user