Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,10 @@ jobs:
cargo update -p serde_json --precise 1.0.99
# 1.0.157 uses syn 2.0
cargo update -p serde --precise 1.0.156
# 1.0.31 uses proc-macro 1.0.66
cargo update -p quote --precise 1.0.30
# 1.0.66 uses edition 2021
cargo update -p proc-macro2 --precise 1.0.65
fi
for f in $FEATURES; do echo "Features: $f" && cargo test --no-default-features --features="$f"; done
echo "No default features" && cargo test --no-default-features
Expand Down
8 changes: 4 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ name = "simplicity"
path = "src/lib.rs"

[dependencies]
bitcoin = { version = "0.29.2", optional = true }
bitcoin_hashes = "0.11"
bitcoin = { version = "0.30.0", optional = true }
bitcoin_hashes = "0.12"
byteorder = "1.3"
elements = { version = "0.21.1", optional = true }
elements-miniscript = { git = "https://github.com/apoelstra/elements-miniscript", tag = "2023-07--rust-simplicity-patch" }
elements = { version = "0.22.0", optional = true }
elements-miniscript = "0.2.0"
simplicity-sys = { version = "0.1.0", path = "./simplicity-sys" }
actual-serde = { package = "serde", version = "1.0.103", features = ["derive"], optional = true }

Expand Down
4 changes: 2 additions & 2 deletions fuzz/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ honggfuzz = { version = "0.5.55", default-features = false }
simplicity = { path = ".." }

[patch.crates-io.bitcoin_hashes]
git = "https://github.com/apoelstra/bitcoin_hashes"
branch = "2023-04--fuzzcfg"
git = "https://github.com/apoelstra/rust-bitcoin"
tag = "2023-07--0.30.1-with-fuzzcfg"

[[bin]]
name = "c_rust_merkle"
Expand Down
2 changes: 1 addition & 1 deletion fuzz/fuzz_targets/parse_compile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

use honggfuzz::fuzz;

use simplicity::bitcoin::XOnlyPublicKey;
use simplicity::bitcoin::key::XOnlyPublicKey;
use simplicity::policy::Policy;
use std::str::{self, FromStr};

Expand Down
4 changes: 2 additions & 2 deletions jets-bench/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ serde_cbor = "0.11.1"
serde_json = "1.0.70"
serde = { version = "1.0.130", features = ["derive"] }
chrono = "0.4.19"
simplicity = {version = "0.1.0", path = "../"}
simplicity = { path = ".." }
criterion = "0.4.0"
rand = "0.8"
bitcoin_hashes = "0.11.0"
bitcoin_hashes = "0.12.0"

[[bench]]
name = "elements"
Expand Down
2 changes: 1 addition & 1 deletion jets-bench/benches/elements/data_structures.rs
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ impl BenchSample for elements::OutPoint {
rng.fill_bytes(&mut txid);
let vout = rng.next_u32();
elements::OutPoint {
txid: Txid::from_inner(txid),
txid: Txid::from_byte_array(txid),
vout,
}
}
Expand Down
21 changes: 11 additions & 10 deletions jets-bench/benches/elements/env.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
use bitcoin::hashes as bitcoin_hashes;
use bitcoin_hashes::Hash;
use elements::locktime::LockTime;
use elements::taproot::ControlBlock;
use elements::{BlockHash, PackedLockTime, Transaction};
use elements::{BlockHash, Transaction};
use simplicity::jet::elements::{ElementsEnv, ElementsUtxo};
use simplicity::Cmr;
use simplicity::{bitcoin, elements};
Expand Down Expand Up @@ -69,7 +70,7 @@ impl EnvSampling {
}
let tx = Transaction {
version: u32::default(),
lock_time: PackedLockTime::ZERO,
lock_time: LockTime::ZERO,
input: tx_ins,
output: tx_outs,
};
Expand Down Expand Up @@ -101,16 +102,16 @@ fn env_with_spent_utxos(
fn null_env() -> ElementsEnv {
let tx = Transaction {
version: u32::default(),
lock_time: PackedLockTime::ZERO,
lock_time: LockTime::ZERO,
input: Vec::default(),
output: Vec::default(),
};
env_with_spent_utxos(tx, Vec::default(), None)
}

pub(super) mod txout_utils {
use bitcoin::XOnlyPublicKey;
use bitcoin_hashes::hex::FromHex;
use bitcoin::key::XOnlyPublicKey;
use elements::hex::FromHex;
use elements::{confidential, encode::deserialize, schnorr::TapTweak, AssetId, Transaction};
use simplicity::{bitcoin, elements};

Expand Down Expand Up @@ -143,10 +144,10 @@ pub(super) mod txout_utils {
}
}
pub(super) mod txin_utils {
use bitcoin_hashes::{hex::FromHex, Hash};
use bitcoin_hashes::Hash;
use elements::{
confidential, encode::deserialize, AssetIssuance, OutPoint, Script, Sequence, TxInWitness,
Txid,
confidential, encode::deserialize, hex::FromHex, AssetIssuance, OutPoint, Script, Sequence,
TxInWitness, Txid,
};
use simplicity::{elements, jet::elements::ElementsUtxo};

Expand All @@ -162,7 +163,7 @@ pub(super) mod txin_utils {
let tx_bytes = rand::random::<[u8; 32]>();
let vout = rand::random::<u16>() as u32;
let txin = elements::TxIn {
previous_output: OutPoint::new(Txid::from_inner(tx_bytes), vout),
previous_output: OutPoint::new(Txid::from_byte_array(tx_bytes), vout),
is_pegin: false,
script_sig: Script::new(),
sequence: Sequence::MAX,
Expand All @@ -179,7 +180,7 @@ pub(super) mod txin_utils {
let tx_bytes = rand::random::<[u8; 32]>();
let vout = rand::random::<u16>() as u32;
let txin = elements::TxIn {
previous_output: OutPoint::new(Txid::from_inner(tx_bytes), vout),
previous_output: OutPoint::new(Txid::from_byte_array(tx_bytes), vout),
is_pegin: false,
script_sig: Script::new(),
sequence: Sequence::MAX,
Expand Down
14 changes: 7 additions & 7 deletions jets-bench/benches/elements/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ impl ElementsBenchEnvType {
// is hashed
let mut annex = rand::random::<[u8; 32]>();
// same annex prefix in bitcoin and elements
annex[0] = bitcoin::util::taproot::TAPROOT_ANNEX_PREFIX;
annex[0] = bitcoin::taproot::TAPROOT_ANNEX_PREFIX;
let annex = elements::sighash::Annex::new(&annex).unwrap();
env_sampler.env_with_annex(Some(annex.as_bytes().to_vec()))
} else {
Expand Down Expand Up @@ -236,8 +236,8 @@ fn bench(c: &mut Criterion) {

fn bip_0340() -> Value {
let secp_ctx = bitcoin::secp256k1::Secp256k1::new();
let keypair = bitcoin::secp256k1::KeyPair::new(&secp_ctx, &mut thread_rng());
let xpk = bitcoin::XOnlyPublicKey::from_keypair(&keypair);
let keypair = bitcoin::key::KeyPair::new(&secp_ctx, &mut thread_rng());
let xpk = bitcoin::key::XOnlyPublicKey::from_keypair(&keypair);

let msg = bitcoin::secp256k1::Message::from_slice(&rand::random::<[u8; 32]>()).unwrap();
let sig = secp_ctx.sign_schnorr(&msg, &keypair);
Expand All @@ -250,7 +250,7 @@ fn bench(c: &mut Criterion) {

fn tagged_hash(tag: &[u8], msg_block: [u8; 64]) -> sha256::Hash {
let tag_hash = sha256::Hash::hash(tag);
let block = [tag_hash.into_inner(), tag_hash.into_inner()].concat();
let block = [tag_hash.to_byte_array(), tag_hash.to_byte_array()].concat();
let mut engine = sha256::Hash::engine();
engine.input(&block);
engine.input(&msg_block);
Expand All @@ -260,12 +260,12 @@ fn bench(c: &mut Criterion) {

fn check_sig_verify() -> Value {
let secp_ctx = bitcoin::secp256k1::Secp256k1::signing_only();
let keypair = bitcoin::secp256k1::KeyPair::new(&secp_ctx, &mut thread_rng());
let xpk = bitcoin::XOnlyPublicKey::from_keypair(&keypair);
let keypair = bitcoin::key::KeyPair::new(&secp_ctx, &mut thread_rng());
let xpk = bitcoin::key::XOnlyPublicKey::from_keypair(&keypair);

let msg = [0xab; 64];
let hashed_msg = tagged_hash(b"Simplicity-Draft\x1fSignature", msg);
let hashed_msg = bitcoin::secp256k1::Message::from_slice(&hashed_msg).unwrap();
let hashed_msg = bitcoin::secp256k1::Message::from(hashed_msg);
let sig = secp_ctx.sign_schnorr(&hashed_msg, &keypair);
let xpk_value = Value::u256_from_slice(&xpk.0.serialize());
let sig_value = Value::u512_from_slice(sig.as_ref());
Expand Down
2 changes: 1 addition & 1 deletion simplicity-sys/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ cc = "1.0"

[dependencies]
libc = "0.2"
bitcoin_hashes = "0.11"
bitcoin_hashes = "0.12"

[features]
test-utils = []
2 changes: 1 addition & 1 deletion simplicity-sys/src/c_jets/c_env.rs
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ extern "C" {
impl CElementsTxEnv {
pub fn sighash_all(&self) -> sha256::Hash {
let midstate: sha256::Midstate = self.sighash_all.into();
sha256::Hash::from_inner(midstate.into_inner())
sha256::Hash::from_byte_array(midstate.to_byte_array())
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/bit_machine/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ mod tests {
use super::*;

#[cfg(feature = "elements")]
use crate::bitcoin_hashes::hex::ToHex;
use crate::hex::ToHex;
#[cfg(feature = "elements")]
use crate::jet::{elements::ElementsEnv, Elements};
#[cfg(feature = "elements")]
Expand Down
Loading