From eec51488f7fe35c8bd5f4917d06275a46541d337 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Sat, 3 Feb 2024 17:36:09 +0100 Subject: [PATCH 01/16] chore: update to new commit-encoding workflows --- Cargo.lock | 85 ++++++++++++++++++------------------- Cargo.toml | 9 +++- consensus/src/lib.rs | 1 - consensus/src/segwit.rs | 2 - consensus/src/stl.rs | 2 +- consensus/src/tx.rs | 2 - dbc/src/anchor.rs | 1 - dbc/src/lib.rs | 1 - dbc/src/opret/mod.rs | 2 - dbc/src/proof.rs | 4 +- dbc/src/tapret/mod.rs | 2 - dbc/src/tapret/tapscript.rs | 12 ++++-- seals/src/secret.rs | 17 +++----- seals/src/txout/blind.rs | 14 +++--- src/stl.rs | 2 +- 15 files changed, 75 insertions(+), 81 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0c24e161..3452f133 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "amplify" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8629db306c0bbeb0a402e2918bdcf0026b5ddb24c46460f3bf5410b350d98710" +checksum = "f8dd50780fa78a67bae725dd164bc993500656112815a9301fd8b797e9006803" dependencies = [ "amplify_apfloat", "amplify_derive", @@ -124,12 +124,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" -[[package]] -name = "base64" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" - [[package]] name = "base85" version = "2.0.0" @@ -270,9 +264,8 @@ dependencies = [ [[package]] name = "commit_encoding_derive" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00033f14d67c4169d588f085ea2faeb7b610cf03a74d42ea09eeba31abef2047" +version = "0.11.0-beta.3" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#7f2e2458d239ccf1c087218625fea145c28135ef" dependencies = [ "amplify", "amplify_syn", @@ -284,8 +277,7 @@ dependencies = [ [[package]] name = "commit_verify" version = "0.11.0-beta.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e001679b9be6a5df24facdae179e6ba1cffb503c875d691eac024db8d0f8d1" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#7f2e2458d239ccf1c087218625fea145c28135ef" dependencies = [ "amplify", "commit_encoding_derive", @@ -429,9 +421,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" dependencies = [ "equivalent", "hashbrown", @@ -515,18 +507,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.71" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -604,22 +596,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.193" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] @@ -654,9 +646,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.29" +version = "0.9.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15e0ef66bf939a7c890a0bf6d5a733c70202225f9888a89ed5c62298b019129" +checksum = "adf8a49373e98a4c5f0ceb5d05aa7c648d75f63774981ed95b7c7443bbd50c6e" dependencies = [ "indexmap", "itoa", @@ -688,8 +680,7 @@ dependencies = [ [[package]] name = "strict_encoding" version = "2.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa76decc8ac190a56ba7857c023b69ed52b781ed974c5a181eac62cdbfc99521" +source = "git+https://github.com/strict-types/strict-encoding?branch=ident#9c20b327178b449cbb24a18c7db65edeb50a9d5b" dependencies = [ "amplify", "half", @@ -699,8 +690,7 @@ dependencies = [ [[package]] name = "strict_encoding_derive" version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37064ec285e2a633465eb525c8698eea51373dee889fe310e0d32df8343e7f4f" +source = "git+https://github.com/strict-types/strict-encoding?branch=ident#9c20b327178b449cbb24a18c7db65edeb50a9d5b" dependencies = [ "amplify_syn", "heck", @@ -712,16 +702,16 @@ dependencies = [ [[package]] name = "strict_types" version = "1.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d10cc45e67d452cfe0d87d4714c3250190d97479af3502bbd823651bfe0f505f" +source = "git+https://github.com/strict-types/strict-types?branch=vesper#f93a63bf785d639de155cc6e2aa2b10bf15a5d84" dependencies = [ "amplify", "baid58", - "base64", + "base85", "half", "indexmap", "sha2", "strict_encoding", + "vesper", ] [[package]] @@ -747,9 +737,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.43" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ "proc-macro2", "quote", @@ -773,14 +763,14 @@ checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] name = "toml" -version = "0.8.8" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" dependencies = [ "serde", "serde_spanned", @@ -799,9 +789,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.21.0" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ "indexmap", "serde", @@ -834,6 +824,15 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "vesper" +version = "0.1.0" +source = "git+https://github.com/UBIDECO/vesper#18107cbbdffeb91d992dc7c76da0640aea152e8f" +dependencies = [ + "amplify", + "strict_encoding", +] + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -861,7 +860,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", "wasm-bindgen-shared", ] @@ -895,7 +894,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -928,7 +927,7 @@ checksum = "794645f5408c9a039fd09f4d113cdfb2e7eba5ff1956b07bcf701cf4b394fe89" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 3233d822..11f663a1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ edition = "2021" license = "Apache-2.0" [workspace.dependencies] -amplify = "4.5.0" +amplify = "4.5.1" strict_encoding = ">=2.6.2" strict_types = "1.6.3" commit_verify = "0.11.0-beta.3" @@ -77,7 +77,7 @@ serde = [ "bp-dbc/serde", "bp-seals/serde", ] -stl = ["strict_types", "strict_types/base64", "bp-consensus/stl", "commit_verify/stl"] +stl = ["strict_types", "strict_types/base85", "bp-consensus/stl", "commit_verify/stl"] [target.'cfg(target_arch = "wasm32")'.dependencies] wasm-bindgen = "0.2" @@ -89,3 +89,8 @@ wasm-bindgen-test = "0.3" [package.metadata.docs.rs] features = [ "all" ] + +[patch.crates-io] +commit_verify = { git = "https://github.com/LNP-BP/client_side_validation", branch = "v0.11" } +strict_encoding = { git = "https://github.com/strict-types/strict-encoding", branch = "ident" } +strict_types = { git = "https://github.com/strict-types/strict-types", branch = "vesper" } diff --git a/consensus/src/lib.rs b/consensus/src/lib.rs index 0a098d4e..89ce5330 100644 --- a/consensus/src/lib.rs +++ b/consensus/src/lib.rs @@ -41,7 +41,6 @@ extern crate amplify; // TODO: Make strict encoding optional dependency #[macro_use] extern crate strict_encoding; -#[macro_use] extern crate commit_verify; #[cfg(feature = "serde")] #[macro_use] diff --git a/consensus/src/segwit.rs b/consensus/src/segwit.rs index a6469da6..1f95fee3 100644 --- a/consensus/src/segwit.rs +++ b/consensus/src/segwit.rs @@ -358,8 +358,6 @@ impl WitnessScript { #[wrapper(BorrowSlice, Index, RangeOps, Debug, Hex, Display, FromStr)] #[derive(StrictType, StrictDumb, StrictEncode, StrictDecode)] #[strict_type(lib = LIB_NAME_BITCOIN)] -#[derive(CommitEncode)] -#[commit_encode(strategy = strict)] #[cfg_attr( feature = "serde", derive(Serialize, Deserialize), diff --git a/consensus/src/stl.rs b/consensus/src/stl.rs index 66008bc3..61416b25 100644 --- a/consensus/src/stl.rs +++ b/consensus/src/stl.rs @@ -37,7 +37,7 @@ pub const LIB_ID_BITCOIN: &str = pub const LIB_ID_BP_TX: &str = "urn:ubideco:stl:HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy"; pub const LIB_ID_BP_CONSENSUS: &str = - "urn:ubideco:stl:H6wk6SV9j8Up16osC9q3AsQkkA41i7E2qodEfUf5JRPz#mustang-europe-melon"; + "urn:ubideco:stl:5sEWBARVLN53k9Q4vf8JLPgSxcfUgrxfYYWF8B42vL2q#gamma-quebec-talent"; #[deprecated(since = "0.10.8", note = "use _bp_tx_stl instead")] fn _bitcoin_stl() -> Result { _bp_tx_stl() } diff --git a/consensus/src/tx.rs b/consensus/src/tx.rs index 567e1db4..cc3cebe9 100644 --- a/consensus/src/tx.rs +++ b/consensus/src/tx.rs @@ -38,8 +38,6 @@ use crate::{ #[derive(Wrapper, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, From)] #[derive(StrictType, StrictDumb, StrictEncode, StrictDecode)] #[strict_type(lib = LIB_NAME_BITCOIN)] -#[derive(CommitEncode)] -#[commit_encode(strategy = strict)] #[cfg_attr( feature = "serde", derive(Serialize, Deserialize), diff --git a/dbc/src/anchor.rs b/dbc/src/anchor.rs index 119a7cd9..014579b9 100644 --- a/dbc/src/anchor.rs +++ b/dbc/src/anchor.rs @@ -62,7 +62,6 @@ pub enum VerifyError { #[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] #[derive(StrictType, StrictDumb, StrictEncode, StrictDecode)] #[strict_type(lib = LIB_NAME_BPCORE)] -#[derive(CommitEncode)] #[cfg_attr( feature = "serde", derive(Serialize, Deserialize), diff --git a/dbc/src/lib.rs b/dbc/src/lib.rs index 17c8ca59..08bc5dc9 100644 --- a/dbc/src/lib.rs +++ b/dbc/src/lib.rs @@ -46,7 +46,6 @@ extern crate amplify; extern crate serde_crate as serde; #[macro_use] extern crate strict_encoding; -#[macro_use] extern crate commit_verify; /// Name of the strict type library generated from the data types in this crate. diff --git a/dbc/src/opret/mod.rs b/dbc/src/opret/mod.rs index 8f5aa5f3..35f5b650 100644 --- a/dbc/src/opret/mod.rs +++ b/dbc/src/opret/mod.rs @@ -60,8 +60,6 @@ pub enum OpretError { #[derive(Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug, Default)] #[derive(StrictType, StrictEncode, StrictDecode)] #[strict_type(lib = LIB_NAME_BPCORE)] -#[derive(CommitEncode)] -#[commit_encode(strategy = strict)] #[cfg_attr( feature = "serde", derive(Serialize, Deserialize), diff --git a/dbc/src/proof.rs b/dbc/src/proof.rs index 2128b869..9c69acb1 100644 --- a/dbc/src/proof.rs +++ b/dbc/src/proof.rs @@ -24,7 +24,7 @@ use std::fmt::Debug; use std::str::FromStr; use bc::Tx; -use commit_verify::{mpc, CommitEncode}; +use commit_verify::mpc; use strict_encoding::{StrictDecode, StrictDeserialize, StrictDumb, StrictEncode, StrictSerialize}; use crate::LIB_NAME_BPCORE; @@ -86,7 +86,7 @@ impl FromStr for Method { /// Deterministic bitcoin commitment proof types. pub trait Proof: - Clone + Eq + Debug + CommitEncode + StrictSerialize + StrictDeserialize + StrictDumb + Clone + Eq + Debug + StrictSerialize + StrictDeserialize + StrictDumb { /// Verification error. type Error: Error; diff --git a/dbc/src/tapret/mod.rs b/dbc/src/tapret/mod.rs index 78d750ec..0e26e439 100644 --- a/dbc/src/tapret/mod.rs +++ b/dbc/src/tapret/mod.rs @@ -349,8 +349,6 @@ impl<'data> IntoIterator for &'data TapretPathProof { #[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug)] #[derive(StrictType, StrictDumb, StrictEncode, StrictDecode)] #[strict_type(lib = LIB_NAME_BPCORE)] -#[derive(CommitEncode)] -#[commit_encode(strategy = strict)] #[cfg_attr( feature = "serde", derive(Serialize, Deserialize), diff --git a/dbc/src/tapret/tapscript.rs b/dbc/src/tapret/tapscript.rs index 282d82d6..960da1db 100644 --- a/dbc/src/tapret/tapscript.rs +++ b/dbc/src/tapret/tapscript.rs @@ -25,8 +25,10 @@ use std::str::FromStr; use amplify::confinement::Confined; use bc::{TapCode, TapScript}; -use commit_verify::{mpc, CommitEncode, CommitVerify}; -use strict_encoding::{DecodeError, DeserializeError, StrictDeserialize, StrictSerialize}; +use commit_verify::{mpc, CommitVerify}; +use strict_encoding::{ + DecodeError, DeserializeError, StrictDeserialize, StrictEncode, StrictSerialize, +}; use super::TapretFirst; use crate::LIB_NAME_BPCORE; @@ -42,7 +44,6 @@ pub const TAPRET_SCRIPT_COMMITMENT_PREFIX: [u8; 31] = [ #[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug)] #[derive(StrictType, StrictDumb, StrictEncode, StrictDecode)] #[strict_type(lib = LIB_NAME_BPCORE)] -#[derive(CommitEncode)] #[cfg_attr( feature = "serde", derive(Serialize, Deserialize), @@ -110,7 +111,10 @@ impl CommitVerify for TapScript { } tapret.push_opcode(TapCode::Return); let mut data = io::Cursor::new([0u8; 33]); - commitment.commit_encode(&mut data); + commitment + .strict_write(33, &mut data) + .expect("tapret commitment must be fitting 33 bytes"); + debug_assert_eq!(data.position(), 33, "tapret commitment must take exactly 33 bytes"); tapret.push_slice(&data.into_inner()); tapret } diff --git a/seals/src/secret.rs b/seals/src/secret.rs index 710d1228..fb1a4603 100644 --- a/seals/src/secret.rs +++ b/seals/src/secret.rs @@ -24,17 +24,13 @@ use std::str::FromStr; use amplify::{Bytes32, Wrapper}; use baid58::{Baid58ParseError, Chunking, FromBaid58, ToBaid58, CHUNKING_32CHECKSUM}; -use commit_verify::{CommitmentId, Conceal}; - -use crate::txout::{BlindSeal, SealTxid}; +use commit_verify::{CommitmentId, DigestExt, Sha256}; /// Confidential version of transaction outpoint-based single-use-seal #[derive(Wrapper, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, From)] -#[wrapper(Index, RangeOps, BorrowSlice, Hex)] +#[wrapper(Deref, BorrowSlice, Hex, Index, RangeOps)] #[derive(StrictType, StrictDumb, StrictEncode, StrictDecode)] #[strict_type(lib = dbc::LIB_NAME_BPCORE)] -#[derive(CommitEncode)] -#[commit_encode(strategy = strict)] #[cfg_attr( feature = "serde", derive(Serialize, Deserialize), @@ -46,11 +42,12 @@ pub struct SecretSeal( Bytes32, ); -impl Conceal for BlindSeal { - type Concealed = SecretSeal; +impl CommitmentId for SecretSeal { + const TAG: &'static str = "urn:lnpbp:seals:secret#2024-02-03"; +} - #[inline] - fn conceal(&self) -> Self::Concealed { self.commitment_id() } +impl From for SecretSeal { + fn from(hasher: Sha256) -> Self { hasher.finish().into() } } impl ToBaid58<32> for SecretSeal { diff --git a/seals/src/txout/blind.rs b/seals/src/txout/blind.rs index 9ed291db..416f7deb 100644 --- a/seals/src/txout/blind.rs +++ b/seals/src/txout/blind.rs @@ -27,7 +27,7 @@ use std::str::FromStr; use amplify::hex; use bc::{Outpoint, Txid, Vout}; -use commit_verify::{CommitStrategy, CommitmentId}; +use commit_verify::{CommitId, Conceal}; use dbc::MethodParseError; use rand::{thread_rng, RngCore}; use strict_encoding::{StrictDecode, StrictDumb, StrictEncode}; @@ -49,6 +49,8 @@ pub type SingleBlindSeal = BlindSeal; #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] #[derive(StrictType, StrictDumb, StrictEncode, StrictDecode)] #[strict_type(lib = dbc::LIB_NAME_BPCORE)] +#[derive(CommitEncode)] +#[commit_encode(strategy = strict, id = SecretSeal)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize), serde(crate = "serde_crate"))] pub struct BlindSeal { /// Commitment to the specific seal close method [`CloseMethod`] which must @@ -72,13 +74,11 @@ pub struct BlindSeal { pub blinding: u64, } -impl CommitStrategy for BlindSeal { - type Strategy = commit_verify::strategies::Strict; -} +impl Conceal for BlindSeal { + type Concealed = SecretSeal; -impl CommitmentId for BlindSeal { - const TAG: [u8; 32] = *b"urn:lnpbp:bp:seal:blind#29122023"; - type Id = SecretSeal; + #[inline] + fn conceal(&self) -> Self::Concealed { self.commit_id() } } impl TryFrom<&BlindSeal> for Outpoint { diff --git a/src/stl.rs b/src/stl.rs index f465b7c6..9aff04c6 100644 --- a/src/stl.rs +++ b/src/stl.rs @@ -32,7 +32,7 @@ use strict_types::{CompileError, LibBuilder, TypeLib}; /// Strict types id for the library providing data types from [`dbc`] and /// [`seals`] crates. pub const LIB_ID_BPCORE: &str = - "urn:ubideco:stl:8wHziC7Bxa3BwctUh6EVBanosrvRHecCTPUjkZT4btNd#ruby-heaven-madrid"; + "urn:ubideco:stl:6HFQ83t33zW6PgG2pWpXM3HuEUFXAgUjheYiQa2Jdb9c#jester-lorenzo-address"; fn _bp_core_stl() -> Result { LibBuilder::new(libname!(LIB_NAME_BPCORE), tiny_bset! { From 43c5ea00bdd538d4f2c1170a0c8fb2444c67da29 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Sat, 3 Feb 2024 17:37:11 +0100 Subject: [PATCH 02/16] chore: update to new STL syntax --- stl/BPCore@0.1.0.sta | 157 ++++++++++----------- stl/BPCore@0.1.0.stl | Bin 3668 -> 3668 bytes stl/BPCore@0.1.0.sty | 173 ++++++++++++----------- stl/Bitcoin@0.1.0.sta | 140 +++++++++--------- stl/Bitcoin@0.1.0.stl | Bin 3336 -> 3336 bytes stl/Bitcoin@0.1.0.sty | 321 ++++++++++++++++++++++++------------------ stl/Tx@0.1.0.sta | 37 +++-- stl/Tx@0.1.0.sty | 76 ++++++---- 8 files changed, 489 insertions(+), 415 deletions(-) diff --git a/stl/BPCore@0.1.0.sta b/stl/BPCore@0.1.0.sta index ad6cbad6..14b9d7f2 100644 --- a/stl/BPCore@0.1.0.sta +++ b/stl/BPCore@0.1.0.sta @@ -1,88 +1,83 @@ -----BEGIN STRICT TYPE LIB----- -Id: urn:ubideco:stl:8wHziC7Bxa3BwctUh6EVBanosrvRHecCTPUjkZT4btNd +Id: 6HFQ83t33zW6PgG2pWpXM3HuEUFXAgUjheYiQa2Jdb9c#jester-lorenzo-address Name: BPCore Dependencies: - urn:ubideco:stl:ZtHaBzu9ojbDahaGKEXe5v9DfSDxLERbLkEB23R6Q6V, - urn:ubideco:stl:9KALDYR8Nyjq4FdMW6kYoL7vdkWnqPqNuFnmE9qHpNjZ, - urn:ubideco:stl:HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9 + 4SZ2EgWWtC5LsNXmNpAzogNHZoaZNTCwU3SQhAYwDX6A#citizen-fiction-corner, + 55f8bsTvyh7zAeYAiNwL9G1DxgwXzDvE8edcTFJz3Q9H#milan-poncho-gray, + HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy -BkJQQ29yZQMIbJMpP1Zo7NnfnUB1CNehMyMWREFWAosurAm/5d+NQgxDb21taXRW -ZXJpZnl7hIA8nvriESWnfCw5vHDS/ej5Q64N/Zz05oLtx2bKcANTdGT1bBNiI/Y5 -p0oJk9xHRsn5iqu4g1hdtdkWPxh+xCgaCgdCaXRjb2luAwdCaXRjb2luCAAh4z5D -xapc8iknU6M4wWftO2OcTdnOvamPNGkXuslDdQRWb3V0Jav1uRIUF7qjOdRfexV1 -p3FL4Xp1GF3QMTV61Mkt6YYLU2NyaXB0Qnl0ZXMxu67ohIl3xbAHMXIxzZL2MLYp -Lc2Jf9y63sW6xOl/2QtUYXBOb2RlSGFzaF+s2W3lP07FFNmxjWeA2gqr6y0mC/03 -LaPAeqRdOZ9NCkxlYWZTY3JpcHSjgkLzy9fR0KES2o3hYC9W1PhvDsTEdsXAaFlM -SwRlVgRUeGlkqYWEd1OeaPuwv+7HmiHEV0PBVPj6vT+Y4NORPee3N3gKSW50ZXJu -YWxQa7YzCakYv7aSDW7IWKQkhyNGWmk/ckMHv/8d1zpzgU7JB0xlYWZWZXL8oqcq -vpH+zYKosZiQYyLCTnaqqjXyJNFzBWOgGC6IWQdYT25seVBrDENvbW1pdFZlcmlm -eQcAL+7PHkTSoSm5ihQ4R0s5cZUrKByiAZLVEyb4sjZgXmcLTWVya2xlUHJvb2Yw -lX7mHWE0WbsFCOThrz1qIb/W+/sdMYKneeVFdOBWsQpQcm90b2NvbElkNTepURXI -6oXcUvergfJxZVEFJlOUQleviRPoe9SbsdMHTWVzc2FnZVNDlQ9EMyoj/+iAz1Dn -zwgGoQTN4EhrE+EM/BiDQ7DXCFRyZWVOb2RlVY03B/hFhlOA7sxBVSTopJlgUdOU -gkPxlPfxkVcj6eYKTWVya2xlTm9kZcSjey0sUm61SVrV2YoViLxzSewBWsX1CXan -Ve6cuw9UC01lcmtsZUJsb2Nry4WnixKlN0z/+yP1y7+ZtmRLKZWGfXEXiSI1Wfx7 -i1cKTWVya2xlVHJlZQNTdGQBACLk4JbpvX1chvXh3113AWr+Occ82TSFUJRAiYyo -o3leAlU1EgAbQW5jaG9yTWVya2xlQmxvY2tPcHJldFByb29mBgMEdHhpZAL1bBNi -I/Y5p0oJk9xHRsn5iqu4g1hdtdkWPxh+xCgaCqOCQvPL19HQoRLajeFgL1bU+G8O -xMR2xcBoWUxLBGVWCG1wY1Byb29mAghskyk/Vmjs2d+dQHUI16EzIxZEQVYCiy6s -Cb/l341CxKN7LSxSbrVJWtXZihWIvHNJ7AFaxfUJdqdV7py7D1QIZGJjUHJvb2YB -R07PXNDoTD546vs8PljsuFnNdzezZ2QEah4TSps4O5ccQW5jaG9yTWVya2xlQmxv -Y2tUYXByZXRQcm9vZgYDBHR4aWQC9WwTYiP2OadKCZPcR0bJ+YqruINYXbXZFj8Y -fsQoGgqjgkLzy9fR0KES2o3hYC9W1PhvDsTEdsXAaFlMSwRlVghtcGNQcm9vZgII -bJMpP1Zo7NnfnUB1CNehMyMWREFWAosurAm/5d+NQsSjey0sUm61SVrV2YoViLxz -SewBWsX1CXanVe6cuw9UCGRiY1Byb29mAQ+2H5g/Gu2rjnvK5hyt61m+s5sC5IXz -N5lwiJbZEwgMG0FuY2hvck1lcmtsZVByb29mT3ByZXRQcm9vZgYDBHR4aWQC9WwT -YiP2OadKCZPcR0bJ+YqruINYXbXZFj8YfsQoGgqjgkLzy9fR0KES2o3hYC9W1Phv -DsTEdsXAaFlMSwRlVghtcGNQcm9vZgIIbJMpP1Zo7NnfnUB1CNehMyMWREFWAosu -rAm/5d+NQi/uzx5E0qEpuYoUOEdLOXGVKygcogGS1RMm+LI2YF5nCGRiY1Byb29m -AUdOz1zQ6Ew+eOr7PD5Y7LhZzXc3s2dkBGoeE0qbODuXHEFuY2hvck1lcmtsZVBy -b29mVGFwcmV0UHJvb2YGAwR0eGlkAvVsE2Ij9jmnSgmT3EdGyfmKq7iDWF212RY/ -GH7EKBoKo4JC88vX0dChEtqN4WAvVtT4bw7ExHbFwGhZTEsEZVYIbXBjUHJvb2YC -CGyTKT9WaOzZ351AdQjXoTMjFkRBVgKLLqwJv+XfjUIv7s8eRNKhKbmKFDhHSzlx -lSsoHKIBktUTJviyNmBeZwhkYmNQcm9vZgEPth+YPxrtq457yuYcretZvrObAuSF -8zeZcIiW2RMIDBpBbmNob3JNZXJrbGVUcmVlT3ByZXRQcm9vZgYDBHR4aWQC9WwT -YiP2OadKCZPcR0bJ+YqruINYXbXZFj8YfsQoGgqjgkLzy9fR0KES2o3hYC9W1Phv -DsTEdsXAaFlMSwRlVghtcGNQcm9vZgIIbJMpP1Zo7NnfnUB1CNehMyMWREFWAosu -rAm/5d+NQsuFp4sSpTdM//sj9cu/mbZkSymVhn1xF4kiNVn8e4tXCGRiY1Byb29m -AUdOz1zQ6Ew+eOr7PD5Y7LhZzXc3s2dkBGoeE0qbODuXG0FuY2hvck1lcmtsZVRy -ZWVUYXByZXRQcm9vZgYDBHR4aWQC9WwTYiP2OadKCZPcR0bJ+YqruINYXbXZFj8Y -fsQoGgqjgkLzy9fR0KES2o3hYC9W1PhvDsTEdsXAaFlMSwRlVghtcGNQcm9vZgII -bJMpP1Zo7NnfnUB1CNehMyMWREFWAosurAm/5d+NQsuFp4sSpTdM//sj9cu/mbZk -SymVhn1xF4kiNVn8e4tXCGRiY1Byb29mAQ+2H5g/Gu2rjnvK5hyt61m+s5sC5IXz -N5lwiJbZEwgMDkJsaW5kU2VhbFR4UHRyBgQGbWV0aG9kAS63ECW5bmUW2nsUHaEd -nW9ZOnia/Ulmt3/A+t3UnJLrBHR4aWQBseU4ORQKOL7wbxrPvhxgpW/h4fR9eAgo -eb/R+tMQId0Edm91dAL1bBNiI/Y5p0oJk9xHRsn5iqu4g1hdtdkWPxh+xCgaCiHj -PkPFqlzyKSdTozjBZ+07Y5xN2c69qY80aRe6yUN1CGJsaW5kaW5nAAAIDUJsaW5k -U2VhbFR4aWQGBAZtZXRob2QBLrcQJbluZRbaexQdoR2db1k6eJr9SWa3f8D63dSc -kusEdHhpZAL1bBNiI/Y5p0oJk9xHRsn5iqu4g1hdtdkWPxh+xCgaCqOCQvPL19HQ -oRLajeFgL1bU+G8OxMR2xcBoWUxLBGVWBHZvdXQC9WwTYiP2OadKCZPcR0bJ+Yqr -uINYXbXZFj8YfsQoGgoh4z5Dxapc8iknU6M4wWftO2OcTdnOvamPNGkXuslDdQhi -bGluZGluZwAACBFFeHBsaWNpdFNlYWxUeFB0cgYDBm1ldGhvZAEutxAluW5lFtp7 -FB2hHZ1vWTp4mv1JZrd/wPrd1JyS6wR0eGlkAbHlODkUCji+8G8az74cYKVv4eH0 -fXgIKHm/0frTECHdBHZvdXQC9WwTYiP2OadKCZPcR0bJ+YqruINYXbXZFj8YfsQo -Ggoh4z5Dxapc8iknU6M4wWftO2OcTdnOvamPNGkXuslDdRBFeHBsaWNpdFNlYWxU -eGlkBgMGbWV0aG9kAS63ECW5bmUW2nsUHaEdnW9ZOnia/Ulmt3/A+t3UnJLrBHR4 -aWQC9WwTYiP2OadKCZPcR0bJ+YqruINYXbXZFj8YfsQoGgqjgkLzy9fR0KES2o3h -YC9W1PhvDsTEdsXAaFlMSwRlVgR2b3V0AvVsE2Ij9jmnSgmT3EdGyfmKq7iDWF21 -2RY/GH7EKBoKIeM+Q8WqXPIpJ1OjOMFn7TtjnE3Zzr2pjzRpF7rJQ3UGTWV0aG9k -AwIKb3ByZXRGaXJzdAALdGFwcmV0Rmlyc3QBCk9wcmV0UHJvb2YFAQAAAApTZWNy -ZXRTZWFsBQEABwAAQCAAEVRhcHJldE5vZGVQYXJ0bmVyBAMACGxlZnROb2RlAAUB -AvVsE2Ij9jmnSgmT3EdGyfmKq7iDWF212RY/GH7EKBoKMbuu6ISJd8WwBzFyMc2S -9jC2KS3NiX/cut7FusTpf9kBCXJpZ2h0TGVhZgAFAQL1bBNiI/Y5p0oJk9xHRsn5 -iqu4g1hdtdkWPxh+xCgaCl+s2W3lP07FFNmxjWeA2gqr6y0mC/03LaPAeqRdOZ9N -AgtyaWdodEJyYW5jaAAFAQE4P2IucVPSyCGRPMt3HZ89ZN928ihVWS34RkOUFk1t -BQ9UYXByZXRQYXRoUHJvb2YGAgtwYXJ0bmVyTm9kZQAEAgAEbm9uZQAAAAEEc29t -ZQAFAQEBfAddAEBLFpWYGxfDYS3GuOquDX9wWWKSFnVa5RmTEQVub25jZQAAAQtU -YXByZXRQcm9vZgYCCXBhdGhQcm9vZgETxFNSZie7RCWMO2f0zMJ+/vzkJ7fPXg/9 -gY8vfnvYfAppbnRlcm5hbFBrAvVsE2Ij9jmnSgmT3EdGyfmKq7iDWF212RY/GH7E -KBoKqYWEd1OeaPuwv+7HmiHEV0PBVPj6vT+Y4NORPee3N3gRVGFwcmV0UmlnaHRC -cmFuY2gGAgxsZWZ0Tm9kZUhhc2gC9WwTYiP2OadKCZPcR0bJ+YqruINYXbXZFj8Y -fsQoGgoxu67ohIl3xbAHMXIxzZL2MLYpLc2Jf9y63sW6xOl/2Q1yaWdodE5vZGVI -YXNoAvVsE2Ij9jmnSgmT3EdGyfmKq7iDWF212RY/GH7EKBoKMbuu6ISJd8WwBzFy -Mc2S9jC2KS3NiX/cut7FusTpf9kFVHhQdHIEAgAJd2l0bmVzc1R4AAAAAQR0eGlk -AAUBAvVsE2Ij9jmnSgmT3EdGyfmKq7iDWF212RY/GH7EKBoKo4JC88vX0dChEtqN -4WAvVtT4bw7ExHbFwGhZTEsEZVY= +20~CnZ*pY=GakvI9hZZx!KXd_w$=T0||rb~=^wLEBVElH>^WZ$C<90OByWc6$lVk7oBr%DNv+($ +;q`HHK!gIHa)*%m(-e#9sm3I{@IbYpL6ZUYBGX>?<6X>JGrA>%$n#j0HLDJN5-IK +gM_J7b(p+0MPGk2Gl)y2(Rz1Xgc#bS10xxe^o?x}!PNUwajGr*TW+dUY6G&@nZ7) +X6RBh6__;a%pgMLV0v$b1}QF=!A)P#jpo4axu-4_As_7EzOC4+`8Vyy2R;!*$Y%* +a87SzWk_LjXkV<^ZRI~s#T41Gjc0(`3ajfaCJX&HEu+ACq+L0mO$tn9VP;cfa%pg +Mqk=;7%h%D+p%U7S;b1RT)c9`>#Kd;Rz-U=aO9W+B1XOrwWT}OOcT=8d`>?<6$C@ +F;S3|*6`1-v+nBdcqJ?FPKcnV2wbY*gGVQf%qwlfK-7{9iX4Q|L-q$GzUMp|h#f#{Gz8SzLEaTf~c{WkYggkPIjuQHS#3Ua|L6d7%qre2 +Ut&TY@l<|wuPSOOLZ&$Vj#jYr62iSlS>y#`6AYfdEyIAWpZn +5WkPIkV{0&#e&!uvG+Da^2;||fJ!&Dp*8BS%F@mRgsZfv!yd427@;7veO2zMB=|GYU;*a%*g5NMUnmh0#5^R?l+2>x*OcO&#*^E;5@PQ +20HKbE5LJk_Il(3r%HmYiwmua&K>D*tNNq^HspzKK^|l-Ci`?%`u0U6ZHVlY`S(f +i`CFq2vl-qWlnEoWdl=mWB~wXSa8^mT+s=T=}Z?`J=~w8Q=GLzSfImTncuED0}GM +@RW%X-8$oVkXm4^&WpZn5WkPIkV{1=va%FT-a&K>D1_K0icxhw;^=uPjBlbC`N(q +zPM@Gr{imSMTSY5T*7C#t%#3&jHqk=;7%h%D+p%U7S;b1RT)c9`>#Kd;Rz-U=aO9 +W+B2yJj@l<|w +uPSOOLZ&$Vj#jYr62iSlS>y#`6AYfdEy9UVq;KpZ*OJ+M^4XN(CAD)cag{96@elXm4^&WpZn5WkPIkV{24laB^jIP;zf?W(ETUba-i +G0`+VYVk7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3ZsHT^UK%K(4i9Ajp1M~R@C +@!4#dQE#lUD;OiKi1RtRlyV^DH$Z)O5B9?78{mxHarr#<&bG*@y<+!%t*$Ur0?x% +bxX=wd@KE$lJ0Dz=55=Sy`f{$e1)GNm8+U6V@}N%D0S~qxm +_HirtB!lh<{Yi-S-!KI0_27BH<@sVme~^s3>!giV`y)3O=WUxY-Lb#Z*OK#aB^jI +P;zf?W(ETUba-iG0`+VYVk7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3ZsHT^UK% +K(4i9Ajp1M~R@C@!4#dQE#lUD;OiKi1RtRlyV^DH$Z)O5B9?78{mxHarr#<&bG*@ +y<+!%t*$Ur0?x%bxX=wd^K(LK3V&vL%&i(~ao9rExlGMgPx_&tqtqVlwo1}@PEWM +X4ba&K>D0Y^^HT+rxDK6vW;JU&?LxLM72H?wDC1Zo}=N}D)4mmEQEV`y)3O=WUxY +-Lb#Z*OK)VQ_L~bWn0{Z)OGq1ax?5WCHbU6JjIwIj2eqliWu}$@z+_xPw?-wb>Rw +7=FYk8VaL=Li5Yl(a@n1+Ku60FILp}Zw|!7cE!MGSxid=WmX7naAQz%Z*OJ-Gakv +I9hZZx!KXdx*OcO&#*^E;5@PQ20 +HKbE5LJk_Il(2xMYoP;zf?W&sbjADBNH?W>M^%H|xc>sh|Dn*!v8^Ea7rh?dzC2n +-rQZewU~a!qA&Yiwmya%E*taB^jIP;zf?W(ETUba-iG0`+VYVk7oBr%DNv+($;q` +HHK!gIHa)*%m(-e#9sm3ZsHT^UK%K(4i9Ajp1M~R@C@!4#dQE#lUD;OiKi1RtRly +V^DH$Z)O5B9?78{mxHarr#<&bG*@y<+!%t*$Ur0?x%bxX=wd?%R`-7%D0Y^^HT+rxDK6vW;JU&?LxLM72H?w +DC1Zo}=N}D)4mm5KDV`y)3O=WUxY-Ln(Wo1-haB^jIP;zf?W(ETUba-iG0`+VYVk +7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3ZsHT^UK%K(4i9Ajp1M~R@C@!4#dQE# +lUD;OiKi1RtRlyV^DH$Z)O5B9?78{mxHarr#<&bG*@y<+!%t*$Ur0?x%bxX=wd?% +R`-7%D0S~qxm_HirtB!l +h<{Yi-S-!KI0_27BH<@sVme~^s3=TqUX>MdwWnpYocu;h51_TCeWprq7WC1R>5GA +>8Wft0d6dj=*oo`t>c$)o5X19O9`rXu=lIsL?cxhw-vE?{96bd-L@NXK=z8qksZ{ +gweeRv2cdB4&6(-0xu1a@zAbOQBk6JjIwIj2eqliWu}$@z+_xPw?-wb>Rw7=FYk8 +VVufK10Q-T=FR=Q=>S+XYD&Ml#00<32Y-w&} +Q)OXnRCsA*1_TCeWprq7WC1R>5GA>8Wft0d6dj=*oo`t>c$)o5X19O9`rXu=lIsL +?cxhw;^=uPjBlbC`N(qzPM@Gr{imSMTSY5T*7C#t%#3&jHqk=;7%h%D+p%U7S;b1 +RT)c9`>#Kd;Rz-U=aO9W+B1a@zAbOQBk6JjIwIj2eqliWu}$@z+_xPw?-wb>Rw7= +FYk8VVufK10Q-T=FR=Q=>S+XYD&Ml#005GA>8Wft0d6dj=*oo`t>c$)o5X19O9 +`rXu=lIsL?cxhw-vE?{96bd-L@NXK=z8qksZ{gweeRv2cdB4&6(-0xu1a@zAbOQB +k6JjIwIj2eqliWu}$@z+_xPw?-wb>Rw7=FYk8VVufK10Q-T=FR=Q=>S+XYD&jZRoX=DQRY!hN5_Bp3Y36tDMM#=e#tGI($UA5U3K +Nx<*C>jc*f +i7rMzqbp}mkbZBp60|E+faB^jIMrm?$bN~xM0`+VYVk7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3NgE`=!A)P#jpo4a +xu-4_As_7EzOC4+`8Vyy2R;!*#QZ1X=iA3Ol4ta00jX8^=uPjBlbC`N(qzPM@Gr{ +imSMTSY5T*7C#t%#3&jHU#!_}M0RemmT> +wB!7L}MA7sFvK#<=RP4S#T1Vv-hhTICs&5e05N37a&BR4 +P-_D9Y!hN5_Bp3Y36tDMM#=e#tGI($UA5U3KNx<*C>jc>g@kugo@o29zwXDHA;ec +h!BqJAy+4@X(~&*rw>NkZRAF#(Wpq+$XJ~Xna$#;`Xa)idY-MJ2PH$voNMUnm0`+ +VYVk7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3NgE`=!A)P#jpo4axu-4_As_7Ez +OC4+`8Vyy2R;!*$r}OXJ~XzZ)9aiVRL8#^=uPjBlbC`N(qzPM@Gr{imSMTSY5T*7 +C#t%#3&jHF}tqlgo$^>um>@6G0l?pFt#Zz&53{9y57aQ#OZ(81yp!YbaDg&010<# +bZ%vHb5wW$00035ba-iG00jX8^=uPjBlbC`N(qzPM@Gr{imSMTSY5T*7C#t%#3&j +Hqk=;7%h%D+p%U7S;b1RT)c9`>#Kd;Rz-U=aO9W+B -----END STRICT TYPE LIB----- diff --git a/stl/BPCore@0.1.0.stl b/stl/BPCore@0.1.0.stl index 7ed02cd7664b624556292436a3a0d6498d2dee7f..503433eb431f209565944532c2ffa7efad263129 100644 GIT binary patch delta 793 zcmca2b44bS%_+b+zbKX2SnlLP+3C$|4=%U;?qL#MFfyy75Satuf2VdWgMxEBVCbn_85elNwT#nrfi? z#&C<)w$^#iy-T(KB`F*-S}OlDcCxp)=TD_;-Ib5HAxfQc@{_YC^D_n4Tg-EAQx|2m zaFdR#mp>}fxX$N4PwNIY@kb_g`(}$iGKQM%kyxD3deL@g*!iM;ue+1K`pSO#pl38& zHsFVCZ}Fl}TPCsTU4)t)P?Vpac4O<#X`e$6+_n2xD}Oi68BlyY2OXsj&e;uyx%t+$4A|I_=uPCU-} zxw)AoVW~x#X_eJ24L0+BJrY!1UZZ2Vr{L1x7eAfX@&29jIdSrIR`bcSEJ>6bRKTV+`6WvpL4ydz9MDBGDL15mZ8||i2*t=`clH^S8v+cM J&7K_GYye>9Ux5Gs diff --git a/stl/BPCore@0.1.0.sty b/stl/BPCore@0.1.0.sty index 98254051..313720c7 100644 --- a/stl/BPCore@0.1.0.sty +++ b/stl/BPCore@0.1.0.sty @@ -1,5 +1,5 @@ {- - Id: urn:ubideco:stl:8wHziC7Bxa3BwctUh6EVBanosrvRHecCTPUjkZT4btNd#ruby-heaven-madrid + Id: urn:ubideco:stl:6HFQ83t33zW6PgG2pWpXM3HuEUFXAgUjheYiQa2Jdb9c#jester-lorenzo-address Name: BPCore Version: 0.1.0 Description: Bitcoin client-side-validation library @@ -8,95 +8,110 @@ License: Apache-2.0 -} +@context typelib BPCore -import urn:ubideco:stl:ZtHaBzu9ojbDahaGKEXe5v9DfSDxLERbLkEB23R6Q6V#rhino-cover-frog as CommitVerify --- Imports: --- MerkleProof := urn:ubideco:semid:4E7NDL8Nm1EXtcenS9idAx1LAXvTu2wRdYsxT8Q2hgRC#carol-alamo-denver --- ProtocolId := urn:ubideco:semid:4GenVCt5Xq6xtnJDjT98FehgCS8rTmwEzbjwGkaUVjHz#gamma-banjo-corona --- Message := urn:ubideco:semid:4ajqScXjJ6wQ5af2zgBFzzP7k1qzD6DXXU28taQidCcA#shampoo-bishop-morgan --- TreeNode := urn:ubideco:semid:6c2cKiQFpcyVntm5aKHV3hoi2eBd8Ts9dtDzU3ccryw4#buenos-galaxy-editor --- MerkleNode := urn:ubideco:semid:6kxYeCatpncbA9UiTdsFbxbxJdU56x6MdmTRkEeGAv6R#iceberg-rocket-velvet --- MerkleBlock := urn:ubideco:semid:EEbVZBjaYQWCQA7uRBe8hFkxV6U1uvpH2dT4PafmJ1ko#proxy-catalog-byte --- MerkleTree := urn:ubideco:semid:EhTy77DCCxuuKR1ixPLPRna1yc8LjDREYyxCcfdkQGo8#puzzle-quick-madrid - -import urn:ubideco:stl:9KALDYR8Nyjq4FdMW6kYoL7vdkWnqPqNuFnmE9qHpNjZ#justice-rocket-type as Std --- Imports: --- U5 := urn:ubideco:semid:3MDHMYsJt8d1gUiyx5vGCWcNLQ7biek6UTjHg3ksW4Bf#ground-volume-singer - -import urn:ubideco:stl:HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy as Bitcoin --- Imports: --- Vout := urn:ubideco:semid:3HHRtSJW5fnGkdVW1EVDH7B97Y79WhwvKyyfsaBkuQkk#chrome-robin-gallop --- ScriptBytes := urn:ubideco:semid:3Y4AgjkFbDusgo3YqRDWv9BznDeAJEUDEPeEq1mpSkAR#maestro-source-jackson --- TapNodeHash := urn:ubideco:semid:4M8xyvABKKKJseN6Pme5eKrAuusMNMXoY5s6ifsEcreC#crash-culture-jamaica --- LeafScript := urn:ubideco:semid:7SUbonQ62tSaBTPpbZPACQo2NogXodi2mW5WEEDfBvp4#brenda-round-micro --- Txid := urn:ubideco:semid:C1GfCrG7AXu2sFhRBspd7KpJK2YgyTkVy6pty5rZynRs#cowboy-diego-betty --- InternalPk := urn:ubideco:semid:CQjz6cdRfD4cr8oUKmgBUEVkjbcNJ5L8eLc7qGeNHQVu#meter-nerve-chicken --- LeafVer := urn:ubideco:semid:DGELfUvcU62GNQRo7HaMbKDzYQwdYRMW3b91JHd4d3WY#tunnel-lagoon-cowboy --- XOnlyPk := urn:ubideco:semid:J1BbH2Lx8P3yw9G244d92MMTP5jrkiaVzsr6FzRxpfur#evident-finance-promo - - - --- urn:ubideco:semid:DKrqpWEpc5VW6WCjptkrQEYXFz1aMm3GXASDa3hH9kL6#wonder-road-crash -data AnchorMerkleBlockOpretProof :: txid Bitcoin.Txid {- urn:ubideco:semid:C1GfCrG7AXu2sFhRBspd7KpJK2YgyTkVy6pty5rZynRs#cowboy-diego-betty -} - , mpcProof CommitVerify.MerkleBlock {- urn:ubideco:semid:EEbVZBjaYQWCQA7uRBe8hFkxV6U1uvpH2dT4PafmJ1ko#proxy-catalog-byte -} +import CommitVerify#4SZ2EgWWtC5LsNXmNpAzogNHZoaZNTCwU3SQhAYwDX6A#citizen-fiction-corner + use MerkleTree#side-locate-bonus + use MerkleBlock#portal-slogan-mirage + use ProtocolId#gamma-banjo-corona + use Message#shampoo-bishop-morgan + use MerkleHash#culture-metro-modular + use MerkleProof#labor-hilton-magenta + use TreeNode#risk-opinion-orca + +import Std#55f8bsTvyh7zAeYAiNwL9G1DxgwXzDvE8edcTFJz3Q9H#milan-poncho-gray + use U5#nitro-george-nebula + +import Bitcoin#HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy + use Vout#chrome-robin-gallop + use ScriptBytes#maestro-source-jackson + use TapNodeHash#crash-culture-jamaica + use LeafScript#brenda-round-micro + use Txid#cowboy-diego-betty + use InternalPk#meter-nerve-chicken + use LeafVer#tunnel-lagoon-cowboy + use XOnlyPk#evident-finance-promo + + +@mnemonic(quest-respect-sound) +data AnchorMerkleBlockOpretProof : txid Bitcoin.Txid#cowboy-diego-betty + , mpcProof CommitVerify.MerkleBlock#portal-slogan-mirage , dbcProof OpretProof --- urn:ubideco:semid:9JLeCN19dqXVcuMpubi1WVKEtC7CBcBCrWo9rAWKhBPK#reform-amigo-blast -data AnchorMerkleBlockTapretProof :: txid Bitcoin.Txid {- urn:ubideco:semid:C1GfCrG7AXu2sFhRBspd7KpJK2YgyTkVy6pty5rZynRs#cowboy-diego-betty -} - , mpcProof CommitVerify.MerkleBlock {- urn:ubideco:semid:EEbVZBjaYQWCQA7uRBe8hFkxV6U1uvpH2dT4PafmJ1ko#proxy-catalog-byte -} + +@mnemonic(camera-hostel-perform) +data AnchorMerkleBlockTapretProof : txid Bitcoin.Txid#cowboy-diego-betty + , mpcProof CommitVerify.MerkleBlock#portal-slogan-mirage , dbcProof TapretProof --- urn:ubideco:semid:GQuyLeS6kXYHxD5xnKMEnCV2AdzRBoGcT4yBKtXPLsCr#planet-opus-cantina -data AnchorMerkleProofOpretProof :: txid Bitcoin.Txid {- urn:ubideco:semid:C1GfCrG7AXu2sFhRBspd7KpJK2YgyTkVy6pty5rZynRs#cowboy-diego-betty -} - , mpcProof CommitVerify.MerkleProof {- urn:ubideco:semid:4E7NDL8Nm1EXtcenS9idAx1LAXvTu2wRdYsxT8Q2hgRC#carol-alamo-denver -} + +@mnemonic(absent-eric-armada) +data AnchorMerkleProofOpretProof : txid Bitcoin.Txid#cowboy-diego-betty + , mpcProof CommitVerify.MerkleProof#labor-hilton-magenta , dbcProof OpretProof --- urn:ubideco:semid:62Fuf8WYXdnukc8NXWm4vCTMqTeGfiy7JVQkWGxnwbEL#sardine-lorenzo-spend -data AnchorMerkleProofTapretProof :: txid Bitcoin.Txid {- urn:ubideco:semid:C1GfCrG7AXu2sFhRBspd7KpJK2YgyTkVy6pty5rZynRs#cowboy-diego-betty -} - , mpcProof CommitVerify.MerkleProof {- urn:ubideco:semid:4E7NDL8Nm1EXtcenS9idAx1LAXvTu2wRdYsxT8Q2hgRC#carol-alamo-denver -} + +@mnemonic(harvest-biscuit-smile) +data AnchorMerkleProofTapretProof : txid Bitcoin.Txid#cowboy-diego-betty + , mpcProof CommitVerify.MerkleProof#labor-hilton-magenta , dbcProof TapretProof --- urn:ubideco:semid:6c1iMr3bcnR5Ae7ZbvWYZq1JkFtBL4noj6yJWURDyWje#critic-dolby-norway -data AnchorMerkleTreeOpretProof :: txid Bitcoin.Txid {- urn:ubideco:semid:C1GfCrG7AXu2sFhRBspd7KpJK2YgyTkVy6pty5rZynRs#cowboy-diego-betty -} - , mpcProof CommitVerify.MerkleTree {- urn:ubideco:semid:EhTy77DCCxuuKR1ixPLPRna1yc8LjDREYyxCcfdkQGo8#puzzle-quick-madrid -} + +@mnemonic(gemini-france-egypt) +data AnchorMerkleTreeOpretProof : txid Bitcoin.Txid#cowboy-diego-betty + , mpcProof CommitVerify.MerkleTree#side-locate-bonus , dbcProof OpretProof --- urn:ubideco:semid:BCsYvKdYApTXrXEeUyAAUHxqvNqbGikgsHv5F8ns9mrm#george-domingo-guide -data AnchorMerkleTreeTapretProof :: txid Bitcoin.Txid {- urn:ubideco:semid:C1GfCrG7AXu2sFhRBspd7KpJK2YgyTkVy6pty5rZynRs#cowboy-diego-betty -} - , mpcProof CommitVerify.MerkleTree {- urn:ubideco:semid:EhTy77DCCxuuKR1ixPLPRna1yc8LjDREYyxCcfdkQGo8#puzzle-quick-madrid -} + +@mnemonic(forward-spiral-parade) +data AnchorMerkleTreeTapretProof : txid Bitcoin.Txid#cowboy-diego-betty + , mpcProof CommitVerify.MerkleTree#side-locate-bonus , dbcProof TapretProof --- urn:ubideco:semid:8Tsxfmx9QLZGAMSJ6bgiMyhBvEdUipK2yNMhnnf4gHTP#explore-aspect-ranger -data BlindSealTxPtr :: method Method + +@mnemonic(explore-aspect-ranger) +data BlindSealTxPtr : method Method , txid TxPtr - , vout Bitcoin.Vout {- urn:ubideco:semid:3HHRtSJW5fnGkdVW1EVDH7B97Y79WhwvKyyfsaBkuQkk#chrome-robin-gallop -} + , vout Bitcoin.Vout#chrome-robin-gallop , blinding U64 --- urn:ubideco:semid:7t5ZVb1xKgQLQYJ3ubrginXkucdWnCyNKuFcsrHF482i#prepare-pluto-cactus -data BlindSealTxid :: method Method - , txid Bitcoin.Txid {- urn:ubideco:semid:C1GfCrG7AXu2sFhRBspd7KpJK2YgyTkVy6pty5rZynRs#cowboy-diego-betty -} - , vout Bitcoin.Vout {- urn:ubideco:semid:3HHRtSJW5fnGkdVW1EVDH7B97Y79WhwvKyyfsaBkuQkk#chrome-robin-gallop -} + +@mnemonic(prepare-pluto-cactus) +data BlindSealTxid : method Method + , txid Bitcoin.Txid#cowboy-diego-betty + , vout Bitcoin.Vout#chrome-robin-gallop , blinding U64 --- urn:ubideco:semid:J3RzHp689A6jBj6mLDvwe6xQqvThjxxucy9akuGoi9b4#british-aloha-mimosa -data ExplicitSealTxPtr :: method Method + +@mnemonic(british-aloha-mimosa) +data ExplicitSealTxPtr : method Method , txid TxPtr - , vout Bitcoin.Vout {- urn:ubideco:semid:3HHRtSJW5fnGkdVW1EVDH7B97Y79WhwvKyyfsaBkuQkk#chrome-robin-gallop -} --- urn:ubideco:semid:2FntXjC5uPaUYZewpkJPRyJyS19BmiCS3XVaitYDqtoR#think-convert-temple -data ExplicitSealTxid :: method Method - , txid Bitcoin.Txid {- urn:ubideco:semid:C1GfCrG7AXu2sFhRBspd7KpJK2YgyTkVy6pty5rZynRs#cowboy-diego-betty -} - , vout Bitcoin.Vout {- urn:ubideco:semid:3HHRtSJW5fnGkdVW1EVDH7B97Y79WhwvKyyfsaBkuQkk#chrome-robin-gallop -} --- urn:ubideco:semid:49Mf3pFa3gZNQXJarv9nKCMrZ3NFn2ME9Q3dCAsXhpAe#trilogy-tahiti-valid -data Method :: opretFirst:0 | tapretFirst:1 - --- urn:ubideco:semid:5oMeVsXXeicrdvrCCEZQiKWcrDHy4nQPbaQGhtnwM3ug#segment-ambient-totem -data OpretProof :: () --- urn:ubideco:semid:81NKrdc9pBoBjsKaGBVN9wXLG4tKjkK4f8DLj7TNMZxh#santana-domingo-needle -data SecretSeal :: [Byte ^ 32] --- urn:ubideco:semid:3PZAAzvizihvnS1LB4QY3Ly3S2Va7Y4bt361mGcJ4qbp#tribal-voltage-object -data TapretNodePartner :: leftNode Bitcoin.TapNodeHash {- urn:ubideco:semid:4M8xyvABKKKJseN6Pme5eKrAuusMNMXoY5s6ifsEcreC#crash-culture-jamaica -} - | rightLeaf Bitcoin.LeafScript {- urn:ubideco:semid:7SUbonQ62tSaBTPpbZPACQo2NogXodi2mW5WEEDfBvp4#brenda-round-micro -} + , vout Bitcoin.Vout#chrome-robin-gallop + +@mnemonic(think-convert-temple) +data ExplicitSealTxid : method Method + , txid Bitcoin.Txid#cowboy-diego-betty + , vout Bitcoin.Vout#chrome-robin-gallop + +@mnemonic(trilogy-tahiti-valid) +data Method : opretFirst | tapretFirst + + +@mnemonic(segment-ambient-totem) +data OpretProof : () + +@mnemonic(santana-domingo-needle) +data SecretSeal : [Byte ^ 32] + +@mnemonic(tribal-voltage-object) +data TapretNodePartner : leftNode Bitcoin.TapNodeHash#crash-culture-jamaica + | rightLeaf Bitcoin.LeafScript#brenda-round-micro | rightBranch TapretRightBranch --- urn:ubideco:semid:BPYcTtbxvzWp8h7SMapT14FzLCnrnGzSShHTWGHCSD4C#clark-magic-salon -data TapretPathProof :: partnerNode TapretNodePartner?, nonce U8 --- urn:ubideco:semid:FWHkxMrhDjzsvWwKAxEDaXsiPsHZ5iAWK6pZYCABbn3V#aurora-bonjour-dinner -data TapretProof :: pathProof TapretPathProof, internalPk Bitcoin.InternalPk {- urn:ubideco:semid:CQjz6cdRfD4cr8oUKmgBUEVkjbcNJ5L8eLc7qGeNHQVu#meter-nerve-chicken -} --- urn:ubideco:semid:4nZtVVw7QJaMDHYffkHBWhxXSkLXLcJ89qTLZH4Z3xck#basket-prelude-bridge -data TapretRightBranch :: leftNodeHash Bitcoin.TapNodeHash {- urn:ubideco:semid:4M8xyvABKKKJseN6Pme5eKrAuusMNMXoY5s6ifsEcreC#crash-culture-jamaica -}, rightNodeHash Bitcoin.TapNodeHash {- urn:ubideco:semid:4M8xyvABKKKJseN6Pme5eKrAuusMNMXoY5s6ifsEcreC#crash-culture-jamaica -} --- urn:ubideco:semid:CyRtMpPJkKLX3AdhgY7ZyA7PnYAzCo7yFTeYwwGsUBhn#strange-source-father -data TxPtr :: witnessTx () - | txid Bitcoin.Txid {- urn:ubideco:semid:C1GfCrG7AXu2sFhRBspd7KpJK2YgyTkVy6pty5rZynRs#cowboy-diego-betty -} + +@mnemonic(clark-magic-salon) +data TapretPathProof : partnerNode TapretNodePartner?, nonce U8 + +@mnemonic(aurora-bonjour-dinner) +data TapretProof : pathProof TapretPathProof, internalPk Bitcoin.InternalPk#meter-nerve-chicken + +@mnemonic(basket-prelude-bridge) +data TapretRightBranch : leftNodeHash Bitcoin.TapNodeHash#crash-culture-jamaica, rightNodeHash Bitcoin.TapNodeHash#crash-culture-jamaica + +@mnemonic(strange-source-father) +data TxPtr : witnessTx () + | txid Bitcoin.Txid#cowboy-diego-betty + diff --git a/stl/Bitcoin@0.1.0.sta b/stl/Bitcoin@0.1.0.sta index 43982767..9233e8d1 100644 --- a/stl/Bitcoin@0.1.0.sta +++ b/stl/Bitcoin@0.1.0.sta @@ -1,79 +1,75 @@ -----BEGIN STRICT TYPE LIB----- -Id: urn:ubideco:stl:H6wk6SV9j8Up16osC9q3AsQkkA41i7E2qodEfUf5JRPz +Id: 5sEWBARVLN53k9Q4vf8JLPgSxcfUgrxfYYWF8B42vL2q#gamma-quebec-talent Name: Bitcoin Dependencies: - urn:ubideco:stl:9KALDYR8Nyjq4FdMW6kYoL7vdkWnqPqNuFnmE9qHpNjZ + 55f8bsTvyh7zAeYAiNwL9G1DxgwXzDvE8edcTFJz3Q9H#milan-poncho-gray -B0JpdGNvaW4Be4SAPJ764hElp3wsObxw0v3o+UOuDf2c9OaC7cdmynADU3RkAQNT -dGQBAGGGItF7rvBmAt/ndcmA4LNrbrroCQ2AdfdRO+xLk/ZNBEJvb2w2AAlCaXAz -NDBTaWcGAgNzaWcABwAAQEAADHNpZ2hhc2hfdHlwZQAEAgAEbm9uZQAAAAEEc29t -ZQAFAQHbF2Q+dwkTJ+gEmSSB1dxgFSMIlVM55Yszn9RMT3JIKglCbG9ja0hhc2gF -AQAHAABAIAALQmxvY2tIZWFkZXIGBgd2ZXJzaW9uAABEDXByZXZCbG9ja0hhc2gB -136XKN8Qx+HJT3+gvLwHRRJSZMs+SsX4k0LE/8jKtLcKbWVya2xlUm9vdAAHAABA -IAAEdGltZQAABARiaXRzAAAEBW5vbmNlAAAEB0J5dGVTdHIFAQAIAABAAAAAAAAA -AAD/////AAAAAAxDb21wcmVzc2VkUGsFAQAHAABAIQAMQ29udHJvbEJsb2NrBgQL -bGVhZlZlcnNpb24BtjMJqRi/tpINbshYpCSHI0ZaaT9yQwe//x3XOnOBTskPb3V0 -cHV0S2V5UGFyaXR5AY/KJiOiVUQjlY+meqdtQ2oV3mTrELP0+ZkUIi+VEWaICmlu -dGVybmFsUGsBqYWEd1OeaPuwv+7HmiHEV0PBVPj6vT+Y4NORPee3N3gMbWVya2xl -QnJhbmNoAe4DHmZRUGi2dBlcUXf0CoPEAFJbwaQwFBgAaU+98HOkDUZ1dHVyZUxl -YWZWZXIFAQAAAQpJbnRlcm5hbFBrBQEB/KKnKr6R/s2CqLGYkGMiwk52qqo18iTR -cwVjoBguiFkKTGVhZlNjcmlwdAYCB3ZlcnNpb24BtjMJqRi/tpINbshYpCSHI0Za -aT9yQwe//x3XOnOBTskGc2NyaXB0ASWr9bkSFBe6oznUX3sVdadxS+F6dRhd0DE1 -etTJLemGB0xlYWZWZXIFAQAAAQhMZWdhY3lQawYCCmNvbXByZXNzZWQCe4SAPJ76 -4hElp3wsObxw0v3o+UOuDf2c9OaC7cdmynBhhiLRe67wZgLf53XJgOCza2666AkN -gHX3UTvsS5P2TQZwdWJrZXkABwAAQCEACUxlZ2FjeVNpZwYCA3NpZwAIAABAAAAA -AAAAAAD/AAAAAAAAAAxzaWdoYXNoX3R5cGUB2xdkPncJEyfoBJkkgdXcYBUjCJVT -OeWLM5/UTE9ySCoKTG9ja0hlaWdodAUBAAAECExvY2tUaW1lBQEAAAQNTG9ja1Rp -bWVzdGFtcAUBAAAEBk9wQ29kZQMxCnB1c2hCeXRlczAACnB1c2hCeXRlczEBCnB1 -c2hCeXRlczICCnB1c2hCeXRlczMDCnB1c2hCeXRlczQECnB1c2hCeXRlczUFCnB1 -c2hCeXRlczYGCnB1c2hCeXRlczcHCnB1c2hCeXRlczgICnB1c2hCeXRlczkJC3B1 -c2hCeXRlczEwCgtwdXNoQnl0ZXMxMQsLcHVzaEJ5dGVzMTIMC3B1c2hCeXRlczEz -DQtwdXNoQnl0ZXMxNA4LcHVzaEJ5dGVzMTUPC3B1c2hCeXRlczE2EAtwdXNoQnl0 -ZXMxNxELcHVzaEJ5dGVzMTgSC3B1c2hCeXRlczE5EwtwdXNoQnl0ZXMyMBQLcHVz -aEJ5dGVzMjEVC3B1c2hCeXRlczIyFgtwdXNoQnl0ZXMyMxcLcHVzaEJ5dGVzMjQY -C3B1c2hCeXRlczI1GQtwdXNoQnl0ZXMyNhoLcHVzaEJ5dGVzMjcbC3B1c2hCeXRl -czI4HAtwdXNoQnl0ZXMyOR0LcHVzaEJ5dGVzMzAeC3B1c2hCeXRlczMxHwtwdXNo -Qnl0ZXMzMiAJcHVzaERhdGExTAlwdXNoRGF0YTJNCXB1c2hEYXRhNE4IcmVzZXJ2 -ZWRQCHB1c2hOdW0xUQZyZXR1cm5qA2R1cHYFZXF1YWyHC2VxdWFsVmVyaWZ5iAly -aXBlbWQxNjCmBHNoYTGnBnNoYTI1NqgHaGFzaDE2MKkHaGFzaDI1NqoIY2hlY2tT -aWesDmNoZWNrU2lnVmVyaWZ5rQhPdXRwb2ludAYCBHR4aWQBo4JC88vX0dChEtqN -4WAvVtT4bw7ExHbFwGhZTEsEZVYEdm91dAEh4z5Dxapc8iknU6M4wWftO2OcTdnO -vamPNGkXuslDdQhPdXRwdXRQawUBAfyipyq+kf7NgqixmJBjIsJOdqqqNfIk0XMF -Y6AYLohZBlBhcml0eQMCBGV2ZW4AA29kZAEKUHVia2V5SGFzaAUBAAcAAEAUAAxS -ZWRlZW1TY3JpcHQFAQElq/W5EhQXuqM51F97FXWncUvhenUYXdAxNXrUyS3phgRT -YXRzBQEAAAgLU2NyaXB0Qnl0ZXMFAQAIAABAAAAAAAAAAAD/////AAAAAApTY3Jp -cHRIYXNoBQEABwAAQBQADFNjcmlwdFB1YmtleQUBASWr9bkSFBe6oznUX3sVdadx -S+F6dRhd0DE1etTJLemGBVNlcU5vBQEAAAQJU2lnU2NyaXB0BQEBJav1uRIUF7qj -OdRfexV1p3FL4Xp1GF3QMTV61Mkt6YYLU2lnaGFzaEZsYWcDAwNhbGwBBG5vbmUC -BnNpbmdsZQMLU2lnaGFzaFR5cGUGAgRmbGFnAf8+an/Ix4VDTvyO53SzALGb7Jhx -opoe8QCL7xDrKNU0DGFueW9uZUNhblBheQJ7hIA8nvriESWnfCw5vHDS/ej5Q64N -/Zz05oLtx2bKcGGGItF7rvBmAt/ndcmA4LNrbrroCQ2AdfdRO+xLk/ZNDVRhcEJy -YW5jaEhhc2gFAQAHAABAIAAHVGFwQ29kZQMGC3B1c2hCeXRlczMyIAlwdXNoRGF0 -YTFMCXB1c2hEYXRhMk0JcHVzaERhdGE0TghyZXNlcnZlZFAGcmV0dXJuagtUYXBM -ZWFmSGFzaAUBAAcAAEAgAA1UYXBNZXJrbGVQYXRoBQEACAGv68Wd2P1QRx2YXcJB -KC6rqYxIivJkY8F2flEGIsKS2AAAAAAAAAAAgAAAAAAAAAALVGFwTm9kZUhhc2gF -AQAHAABAIAAJVGFwU2NyaXB0BQEBJav1uRIUF7qjOdRfexV1p3FL4Xp1GF3QMTV6 -1Mkt6YYQVGltZUxvY2tJbnRlcnZhbAQCAAZoZWlnaHQABQEAAAIBBHRpbWUABQEA -AAICVHgGBAd2ZXJzaW9uAah8xnlkZ+VX10TlyWI64AzLldkaDS8D33TAdRJPvsee -BmlucHV0cwAIAQoZkNdT8gqVZh8TO/UjSiWP/kvI3QknpBvkBL2OokaqAAAAAAAA -AAD/////AAAAAAdvdXRwdXRzAAgBkDtkcHmEjxsmUyrkzsamiUSgU1i48IHLJrO7 -+C2eO/MAAAAAAAAAAP////8AAAAACGxvY2tUaW1lATXaHRU5IG673dykwz2HMery -m6fadN89yIIgHE4WtbkcBFR4SW4GBApwcmV2T3V0cHV0AehqQM1cJfm94oT/aaUR -MqdBKyFVvQ5WEsG/44SVYMUGCXNpZ1NjcmlwdAE4dQSxS3wORm1HnhdHfSR0JH/4 -A2TsPUuq9zog90F0awhzZXF1ZW5jZQEBGW2FKcj22kRNFU6NnIy9ng+NiQJaO7CR -IcY9UrAehwd3aXRuZXNzAZ1Vk6y6+c3gmzhG+IMJcdM4yS9udbx84yBFnqs4GaYe -BVR4T3V0BgIFdmFsdWUBl/XXBkKuKjOSJTuoTh3OxJPjvz7TcbGHc4Y1TsyIgmsM -c2NyaXB0UHVia2V5Ab78HvxmpRn9ZFJqOhOHQOfxEC0Lvv86wUZO8/dAdnRcBVR4 -VmVyBQEAAEQEVHhpZAUBAAcAAEAgAA5VbmNvbXByZXNzZWRQawUBAAcAAEBBAAZW -Qnl0ZXMFAQAABAZWYXJJbnQFAQAACARWb3V0BQEAAAQLV1B1YmtleUhhc2gFAQAH -AABAFAALV1NjcmlwdEhhc2gFAQAHAABAIAALV2VpZ2h0VW5pdHMFAQAABAdXaXRu -ZXNzBQEACAHEcmuPjyjResGXyB2ODaGbYkSc5tBkXf7H6Xg8tYfxowAAAAAAAAAA -/////wAAAAAOV2l0bmVzc1Byb2dyYW0GAgd2ZXJzaW9uAdHs2nZn5ELtTRJppmcD -NuX+9DevXs4raa66DEZWxPqtB3Byb2dyYW0ACAAAQAIAAAAAAAAAKAAAAAAAAAAN -V2l0bmVzc1NjcmlwdAUBASWr9bkSFBe6oznUX3sVdadxS+F6dRhd0DE1etTJLemG -CldpdG5lc3NWZXIDEQJ2MAACdjFRAnYyUgJ2M1MCdjRUAnY1VQJ2NlYCdjdXAnY4 -WAJ2OVkDdjEwWgN2MTFbA3YxMlwDdjEzXQN2MTReA3YxNV8DdjE2YAVXdHhpZAUB -AAcAAEAgAAdYT25seVBrBQEABwAAQCAA +2SRCdV{d700X(2Dl)irWX>_w$=T0||rb~=^wLEBVElH>^WZ$C<90OByWB~(HbYuY +lVTK~nd#>M0oxa3K6 +eQdC+Gy3B!Si3U=l~Xz8i!-0pOiyx1DhWbtZ)0mnVRL8&0RRU806-uB3qovfV +{1rdVPs`;1_lRqWpZjN#K1#*-lS0J*$jY?03TDZy00abLX>@Y{00ae +YZ*F5{000CBLV0v$Q*?3#0RRX906+i$0000000960|Nj60000a_Z*6dLWpi_7WKe +4b0RRU806-xC3`1{jbaHQOLTqniYX$@hY-M3)R%LQ?X>V=;wlfK-7{9iX4Q|L-q$ +GzUMp|hkzZ_`I!_VFO?Byhze?<6$C@F;S3|*6`1-v+ +nBdcqJ?FPKcnoc2a%*g5LULhlV`u^H10H5kP-wPv8C+3!^a_K-08(4Qq%ag10BKL +X@N=XMMs;*`a%D_qVP;lkas>eZ009a~ZggdGZeeUtYXt!T{Gz8SzLEaTf~c{WkYg +gkPIjuQHS#3Ua|L6d7%qre3QT2TW>aHwX>fD~0ta?wa&u{KZUMG438@&rwvr8Q$X +KK#ha*N>X+Ls92fzOv*E(~7PRRyyV{&P5bO9x+^|=xh7rLW4)L(lQb*FJl;d*r#U +C=Q#deq4+>4pbPWnpGkWpV`p00039Ol4(FO

;yGBGG%U@MZ$v=XJ?|;InIPy66cFfOYp +#JM2r7_Du$Gbz*B}c>o6h06-xC2~1^YVPknyX=erk19NF-00;m8KmY&$000000RI +300000001R_!XJ}z_XkT=BaAg787i2zn2@@yi1eqj()!bkeBM6mKIpvEppVUlGa! +4u)OmAarNM&hfXmkYu000CCOmAarRB3Hx1pxp61Px4YV{24tZDn(GVQp{)0RR952 +2XH9Z)9ZyF$!>Xb7(?&bY*ie019w*b7(?&bY*if0Sa(+b7(?&bY*ig0t#?-b7(?& +bY*ih0}60;b7(?&bY*ii1PX9b7(?&bY*i +l2MTa?b7(?&bY*im2nuj@b7(?&bY*in2@7y_b7(?&bY*ifFbWHBb#rJ!d30rSF)< +4ZaCLKNLV0v$b1^au3vhLFXhL~(Wpgnz4GVB}b7(?&bY*ifG!6@Jb#rJ!d30rSF* +OehaCLKNLV0v$b1^m$3vhLFXhL~(Wpgn%5esm2b7(?&bY*ifI1&qRb#rJ!d30rSF +*y?paCLKNLV0v$b22a#3vhLFXhL~(Wpgqy6$@~6b7(?&bY*igG8PMPb#rJ!d30rS +GBXzoaCLKNLV0v$b22m-3vhLFXhL~(Wpgq$84GZAb7(?&bY*igHW~|Xb#rJ!d30r +SGB+CwaCLKNLV0v$b22y_3vhLFXhL~(Wpgq)9Sd-Eb7(?&bY*ihFdhqVb#rJ!d30 +rSGcg|vaCLKNLV0v$b2Bm^32=3DXhdOjVKGbzaCLKNL}7GcGEE6^b#rJ$VRT_MP6 +%>kb7gXNWn@qYaCLKNPIYZDQ3i5lbairWY6E0-aCQY{adlyAhYMwKbzy8)WpZg|d +58&eX>et2WHB}{rUY|nVKJu$b7)~QH8!XRXkl|`F*Y!%2WVk)Xfic6st99fWn*ho +X=khsV`yb#Yg1`wR%LQ&W_hg$Pjz%~Z)t9H1_A_hcxhw-qk=;7%h%D+p%U7S;b1R +T)c9`>#Kd;Rz-U=aO9W+B1a@zAbO9mbK10Q-T=FR=Q=>S+XYD&_4@v6zr!BEn8~s;V{eB++vPW1tu=h*<_uVR +C77c>@9jWp-t500VDiWC03Lbz*B}c}QV%XaxZP2LJ#-6aWlTWn^V#ZBt`%X>fD}0 +Rbhe^|=xh7rLW4)L(lQb*FJl;d*r#UC=Q#deq4+>4pSTVRUl^0RR993sYlqX>fEx +d30rS1pxpE002M$0000000030|Ns900000AQ)6;zaCAsvb7%zt00#g7KokHBQ)6; +zaCA_0Vryl21pxsitM$1O6c@UqIn-Z!6?La^OW}HT7+ugYHG0&^E$M~@Q)O{ZZv_ +DW00aqBX=hVoa%pgM1pxsitM$1O6c@UqIn-Z!6?La^OW}HT7+ugYHG0&^E$M~}Q) +y>tVRL9kY++{u0|Q}fYykvrZ*FA*26Jg{XKZBy3sY%lXkl|`RC#b^1_A_TY++{s| +2}Ge$j604PW+DNbh7}lo9vizqM9D@0E_Ps>nPPU3}J40Z*FBnVQx@ic>+A3FO

;yGBGG%U@MZ$v=XJ?|;InIPy66cFfOYp +#JM2r7_Du~`VQ@lnVQyn+NMUnm1pxpD002NB00&fIa6@loWdjBaaCLKNLV0v$b2B +m^32=3DXhdOjVKGbzaCLKNL}7GcGEE6^b#rJ$VRT_MP6%>kb7gXNWn@qWa%FUNa& +Br1RAF#TWnpGWVRL8&0RRU806-uB4OC%pO=WUxY-LbkbZ7+u00;rE>&2be{ZL08m +|em_C@!n1j7W;|WMjd0eo+P@!jjkk000000001h000000000BRAF#VZ)9aiVRL8& +0RRU806-uB2~=TlQ)6;zaC8L$0VS*Txe^o?x}!PNUwajGr*TW+dUY6G&@nZ7)X6R +Bh7eR~ZDmYvV{1unbY*gOVQd5f00wAfX=iA300jX600IF7bZKp600jX600IJ3cm@ +Oqc4cyNX>V=;sC>qGWM}19*F@#XVmjaq%az$04KD-Vbij2IPrk>V25D|^b#!w82m +uNikk?c43YBIb6Fc=IN+pl}OUT^`C!`zX1ig-;Mydb+0000000960|Nj60000MXb +#!obbaMa*0gyXnaCwA}8zxgKwYeMwRCq~ +l1_TOla%FZ;b#!obbOGpUK+Rkw`Mu(V|7oQWGN(Z+AyvH&RuaL#WH17z$yORD!eAooFZYY1~?adl;GV`TvW8E +u6r$oASqO%+a!oQ%Dm4~>ZeT05|jA;vvYupWm8cWHEPWpi@@omG>py7|rEn>a@Jg +9&ldILR+=b-aAzAVr?5I2ooM1yp!Xb#w*-1$JRt +4!A4H=_ds@ZTm@8kR%LPp0RR9*1XOrwWCZ~L2LJ#-AOH?kZewq4aB^jHb7f>uYXt +!S2LJ#-K>!9;LV0v$a|Hna00ahBVRA`sbOiwb00;zDZ*_D90RR953s+EeVryl2NM +Unm1pxpD002M~01H=BV{&P5bVy-yXaxZP2LJ#-AOH(jWoc(D@qdC-Hdlhx3aZBNPbr@aHF*SPB$t~%I3Rh`#Ze??GR% +LPn5dwBF00MR~Q37@{QUZ1}Qv!B0R04K2RRVT4Rswc6R|0l8SORuASp#-4Fj@n4F +)>>Mb}=$s19mYpT?2M8G+qOCF*RQUb}=?!1y^)>X6c8cgieD&d>X6c8cgieD&dAa5j@0>5sn%*8yJ5{hz V^CFW1Aw`>|m>;kZp^D=j3jou@Lg)Yh diff --git a/stl/Bitcoin@0.1.0.sty b/stl/Bitcoin@0.1.0.sty index a3a4fab0..e478da77 100644 --- a/stl/Bitcoin@0.1.0.sty +++ b/stl/Bitcoin@0.1.0.sty @@ -1,5 +1,5 @@ {- - Id: urn:ubideco:stl:H6wk6SV9j8Up16osC9q3AsQkkA41i7E2qodEfUf5JRPz#mustang-europe-melon + Id: urn:ubideco:stl:5sEWBARVLN53k9Q4vf8JLPgSxcfUgrxfYYWF8B42vL2q#gamma-quebec-talent Name: Bitcoin Version: 0.1.0 Description: Consensus library for bitcoin protocol @@ -8,157 +8,210 @@ License: Apache-2.0 -} +@context typelib Bitcoin -import urn:ubideco:stl:9KALDYR8Nyjq4FdMW6kYoL7vdkWnqPqNuFnmE9qHpNjZ#justice-rocket-type as Std --- Imports: --- Bool := urn:ubideco:semid:7ZhBHGSJm9ixmm8Z9vCX7i5Ga7j5xrW8t11nsb1Cgpnx#laser-madam-maxwell +import Std#55f8bsTvyh7zAeYAiNwL9G1DxgwXzDvE8edcTFJz3Q9H#milan-poncho-gray + use Bool#laser-madam-maxwell +@mnemonic(politic-cactus-salon) +data Bip340Sig : sig [Byte ^ 64], sighash_type SighashType? --- urn:ubideco:semid:8NDnad1DezNcQSjq85QMxnDhsBbLwxLCFUfMHEJpnFnH#politic-cactus-salon -data Bip340Sig :: sig [Byte ^ 64], sighash_type SighashType? --- urn:ubideco:semid:FWCcWgBQCGQw8FX5Z4P3etje6e92qWpVPgXBonNrTM7C#canada-sharp-traffic -data BlockHash :: [Byte ^ 32] --- urn:ubideco:semid:HHzmwexZQY4G1YKWB6mWwk7rJW8KKb1CaeuRw8xHV1tm#rose-apropos-join -data BlockHeader :: version I32 +@mnemonic(canada-sharp-traffic) +data BlockHash : [Byte ^ 32] + +@mnemonic(rose-apropos-join) +data BlockHeader : version I32 , prevBlockHash BlockHash , merkleRoot [Byte ^ 32] , time U32 , bits U32 , nonce U32 --- urn:ubideco:semid:EDr6wurh4X1tMNGqA7mRkyrAY6ngPGyRSEufTGSUtySJ#kinetic-avenue-escort -data ByteStr :: [Byte ^ ..0xffffffff] --- urn:ubideco:semid:EoHBsHBYQiRvuKFEJvqwp8FiBPrpoFhkhQ9peLsFxrai#aspect-citrus-nerve -data CompressedPk :: [Byte ^ 33] --- urn:ubideco:semid:BPzqzv3DN65MTwzbTXJbHFyiKeYvmX1VExcqvk5FUb5c#nuclear-coral-gilbert -data ControlBlock :: leafVersion LeafVer + +@mnemonic(kinetic-avenue-escort) +data ByteStr : [Byte ^ ..0xffffffff] + +@mnemonic(aspect-citrus-nerve) +data CompressedPk : [Byte ^ 33] + +@mnemonic(nuclear-coral-gilbert) +data ControlBlock : leafVersion LeafVer , outputKeyParity Parity , internalPk InternalPk , merkleBranch TapMerklePath --- urn:ubideco:semid:CvDS9EgqtBkWLvADynNeR7VGwVAy14EXViKnLaBkqtac#student-formula-circus -data FutureLeafVer :: U8 --- urn:ubideco:semid:G8TPMhnwckPwtSQ9dBzFXESZ2aBCXmH62iDBR9ffsek8#anita-tactic-bikini -data InternalPk :: XOnlyPk --- urn:ubideco:semid:Birr99aCTGqzwnuBou79KNhyLLBTNQvoTAkTbMu7C4y5#anvil-arctic-cloud -data LeafScript :: version LeafVer, script ScriptBytes --- urn:ubideco:semid:DGELfUvcU62GNQRo7HaMbKDzYQwdYRMW3b91JHd4d3WY#tunnel-lagoon-cowboy -data LeafVer :: U8 --- urn:ubideco:semid:6oujgsJXTqoBmeQThDPW8cJuEG2SJJmbX9BRqsp9zS2L#student-avenue-economy -data LegacyPk :: compressed Std.Bool {- urn:ubideco:semid:7ZhBHGSJm9ixmm8Z9vCX7i5Ga7j5xrW8t11nsb1Cgpnx#laser-madam-maxwell -}, pubkey [Byte ^ 33] --- urn:ubideco:semid:89ux18kFuT9nT6LEWnvkpFBiWR9GJwBYVVBqFUPvrTuj#gondola-middle-style -data LegacySig :: sig [Byte ^ ..0xff], sighash_type SighashType --- urn:ubideco:semid:Gm9B1aVGcLG8MQ27bZrVg4mteg1AuKoFn1aFNkZ72Y2Y#greek-support-hawaii -data LockHeight :: U32 --- urn:ubideco:semid:4dDWWU4afiPN3q4AgCMuFRFhL4UDta2u5SrqrBzPvjby#tokyo-inch-program -data LockTime :: U32 --- urn:ubideco:semid:8h25q8Va3Sx3csGvq4reMPqG7w4QrEowpYxdMAwaErmF#compass-protein-barcode -data LockTimestamp :: U32 --- urn:ubideco:semid:9G21BTSC1kjkfh3hirjQvRcRkC6fwL5VtcUUobGAT9bu#bless-hippie-shirt -data OpCode :: pushBytes0:0 | pushBytes1:1 | pushBytes2:2 | pushBytes3:3 - | pushBytes4:4 | pushBytes5:5 | pushBytes6:6 | pushBytes7:7 - | pushBytes8:8 | pushBytes9:9 | pushBytes10:10 | pushBytes11:11 - | pushBytes12:12 | pushBytes13:13 | pushBytes14:14 | pushBytes15:15 - | pushBytes16:16 | pushBytes17:17 | pushBytes18:18 | pushBytes19:19 - | pushBytes20:20 | pushBytes21:21 | pushBytes22:22 | pushBytes23:23 - | pushBytes24:24 | pushBytes25:25 | pushBytes26:26 | pushBytes27:27 - | pushBytes28:28 | pushBytes29:29 | pushBytes30:30 | pushBytes31:31 - | pushBytes32:32 | pushData1:76 | pushData2:77 | pushData4:78 - | reserved:80 | pushNum1:81 | return:106 | dup:118 - | equal:135 | equalVerify:136 | ripemd160:166 | sha1:167 - | sha256:168 | hash160:169 | hash256:170 | checkSig:172 - | checkSigVerify:173 - --- urn:ubideco:semid:FWt2MSo8A4nsYgYbuBqMRNLiKgtzvLBgUn774iKzTcuf#pocket-pegasus-frank -data Outpoint :: txid Txid, vout Vout --- urn:ubideco:semid:6ZEyjfF96enVZgwNdLkdjfqmAeMW5y939Fkf8VyDAaFZ#beach-twist-hotel -data OutputPk :: XOnlyPk --- urn:ubideco:semid:AgJ5n58hrH761B4MV7giZ1FhMipaDrUmnFYCLno74HDy#method-editor-echo -data Parity :: even:0 | odd:1 - --- urn:ubideco:semid:ENHnWLRrbiPSgpSZMuQ1LaEwQeRjUMmB1bZstaT3F3hm#soviet-senator-wisdom -data PubkeyHash :: [Byte ^ 20] --- urn:ubideco:semid:85m9Qv56neQKaqiPSZ8G8NPWz5DDeJeeXhBwnUpcZGug#delta-jumbo-clone -data RedeemScript :: ScriptBytes --- urn:ubideco:semid:BEBz6h7AGjYSDRCxVHnjYkkkxzBsjN3EvyNiD4ZrzmRL#pyramid-spray-star -data Sats :: U64 --- urn:ubideco:semid:3Y4AgjkFbDusgo3YqRDWv9BznDeAJEUDEPeEq1mpSkAR#maestro-source-jackson -data ScriptBytes :: [Byte ^ ..0xffffffff] --- urn:ubideco:semid:7ExpFpLww6B4ADMMLsw5NtUfRzgJMupAFgYfme5yYMMr#samuel-miami-cave -data ScriptHash :: [Byte ^ 20] --- urn:ubideco:semid:2ZAYpWKB2BQxeXXjpQDpYGZ7eXFM9qQxN9TcdTiQqeB8#bingo-maestro-silk -data ScriptPubkey :: ScriptBytes --- urn:ubideco:semid:5HtymNhYBhjqPkLLw9QVWZ62cLm57cZxgQTDUBBXtmL#rhino-time-rodent -data SeqNo :: U32 --- urn:ubideco:semid:2gTMqAC393rBSGtBhDn8sJq3F3HtDosbqKDQTw9bHFyT#prelude-analyze-think -data SigScript :: ScriptBytes --- urn:ubideco:semid:JBNAWau3wDWa66fxnSyRJLkcUXSovZLxQJxERoUMNCbD#prefix-pioneer-remark -data SighashFlag :: all:1 | none:2 | single:3 - --- urn:ubideco:semid:6mjKj9hdk5HzS8XR6SwsyAvzzaEfXmuXqmLuWq2EfayQ#balsa-equator-ground -data SighashType :: flag SighashFlag, anyoneCanPay Std.Bool {- urn:ubideco:semid:7ZhBHGSJm9ixmm8Z9vCX7i5Ga7j5xrW8t11nsb1Cgpnx#laser-madam-maxwell -} --- urn:ubideco:semid:CqisAtFLQku77z3HbB1rBe9EjuctxLqcojV8p4THe3Uj#europe-welcome-phone -data TapBranchHash :: [Byte ^ 32] --- urn:ubideco:semid:5WjBwSuKQwoTq6eXRtXwFrAmcPP1vLpBJ94AWpUgEsPe#weekend-boris-import -data TapCode :: pushBytes32:32 | pushData1:76 | pushData2:77 | pushData4:78 - | reserved:80 | return:106 - --- urn:ubideco:semid:FHWiTycy1JvN5CvVJ3ibyAhtXfr21t3BDNuLFnqYPQ2j#middle-jazz-basket -data TapLeafHash :: [Byte ^ 32] --- urn:ubideco:semid:2Cy61crHEVHKfCSix5WhmS9ms6J4FFE9wCC6pLsyondh#dublin-chemist-version -data TapMerklePath :: [TapBranchHash ^ ..0x80] --- urn:ubideco:semid:4M8xyvABKKKJseN6Pme5eKrAuusMNMXoY5s6ifsEcreC#crash-culture-jamaica -data TapNodeHash :: [Byte ^ 32] --- urn:ubideco:semid:71AxyLFsoRG6hJ1c11gxad65nEbWfzkQBjWCPPrgCyjX#telecom-quest-helium -data TapScript :: ScriptBytes --- urn:ubideco:semid:EjaLfxk1qE5LgYWBnrg1tcYHAcmMnCXd2S1S3szJw666#texas-tommy-geneva -data TimeLockInterval :: height U16 + +@mnemonic(student-formula-circus) +data FutureLeafVer : U8 + +@mnemonic(anita-tactic-bikini) +data InternalPk : XOnlyPk + +@mnemonic(anvil-arctic-cloud) +data LeafScript : version LeafVer, script ScriptBytes + +@mnemonic(tunnel-lagoon-cowboy) +data LeafVer : U8 + +@mnemonic(student-avenue-economy) +data LegacyPk : compressed Std.Bool#laser-madam-maxwell, pubkey [Byte ^ 33] + +@mnemonic(gondola-middle-style) +data LegacySig : sig [Byte ^ ..0xff], sighash_type SighashType + +@mnemonic(greek-support-hawaii) +data LockHeight : U32 + +@mnemonic(tokyo-inch-program) +data LockTime : U32 + +@mnemonic(compass-protein-barcode) +data LockTimestamp : U32 + +@mnemonic(bless-hippie-shirt) +data OpCode : pushBytes0 | pushBytes1 | pushBytes2 | pushBytes3 + | pushBytes4 | pushBytes5 | pushBytes6 | pushBytes7 + | pushBytes8 | pushBytes9 | pushBytes10 | pushBytes11 + | pushBytes12 | pushBytes13 | pushBytes14 | pushBytes15 + | pushBytes16 | pushBytes17 | pushBytes18 | pushBytes19 + | pushBytes20 | pushBytes21 | pushBytes22 | pushBytes23 + | pushBytes24 | pushBytes25 | pushBytes26 | pushBytes27 + | pushBytes28 | pushBytes29 | pushBytes30 | pushBytes31 + | pushBytes32 | pushData1#76 | pushData2 | pushData4 + | reserved#80 | pushNum1 | return#106 | dup#118 + | equal#135 | equalVerify | ripemd160#166 | sha1 + | sha256 | hash160 | hash256 | checkSig#172 + | checkSigVerify + + +@mnemonic(pocket-pegasus-frank) +data Outpoint : txid Txid, vout Vout + +@mnemonic(beach-twist-hotel) +data OutputPk : XOnlyPk + +@mnemonic(method-editor-echo) +data Parity : even | odd + + +@mnemonic(soviet-senator-wisdom) +data PubkeyHash : [Byte ^ 20] + +@mnemonic(delta-jumbo-clone) +data RedeemScript : ScriptBytes + +@mnemonic(pyramid-spray-star) +data Sats : U64 + +@mnemonic(maestro-source-jackson) +data ScriptBytes : [Byte ^ ..0xffffffff] + +@mnemonic(samuel-miami-cave) +data ScriptHash : [Byte ^ 20] + +@mnemonic(bingo-maestro-silk) +data ScriptPubkey : ScriptBytes + +@mnemonic(rhino-time-rodent) +data SeqNo : U32 + +@mnemonic(prelude-analyze-think) +data SigScript : ScriptBytes + +@mnemonic(prefix-pioneer-remark) +data SighashFlag : all#1 | none | single + + +@mnemonic(balsa-equator-ground) +data SighashType : flag SighashFlag, anyoneCanPay Std.Bool#laser-madam-maxwell + +@mnemonic(europe-welcome-phone) +data TapBranchHash : [Byte ^ 32] + +@mnemonic(weekend-boris-import) +data TapCode : pushBytes32#32 | pushData1#76 | pushData2 | pushData4 + | reserved#80 | return#106 + + +@mnemonic(middle-jazz-basket) +data TapLeafHash : [Byte ^ 32] + +@mnemonic(dublin-chemist-version) +data TapMerklePath : [TapBranchHash ^ ..0x80] + +@mnemonic(crash-culture-jamaica) +data TapNodeHash : [Byte ^ 32] + +@mnemonic(telecom-quest-helium) +data TapScript : ScriptBytes + +@mnemonic(texas-tommy-geneva) +data TimeLockInterval : height U16 | time U16 --- urn:ubideco:semid:DynChojW1sfr8VjSoZbmReHhZoU8u9KCiuwijgEGdToe#milk-gloria-prize -data Tx :: version TxVer + +@mnemonic(milk-gloria-prize) +data Tx : version TxVer , inputs [TxIn ^ ..0xffffffff] , outputs [TxOut ^ ..0xffffffff] , lockTime LockTime --- urn:ubideco:semid:9Nf4Vvt3im8tFQSGzPWKfjfhsrkB8bf2XsLWfzywiFSv#antenna-crater-planet -data TxIn :: prevOutput Outpoint + +@mnemonic(antenna-crater-planet) +data TxIn : prevOutput Outpoint , sigScript SigScript , sequence SeqNo , witness Witness --- urn:ubideco:semid:HutVbeKmYYrNun96Pi4T7YfYww7SeWxRFPZGDiZwoGZV#design-jacket-spirit -data TxOut :: value Sats, scriptPubkey ScriptPubkey --- urn:ubideco:semid:CLhr1zatQBSkCz9SiVrNoKB5igCZfF3hqRizfrviM6NR#english-natasha-virus -data TxVer :: I32 --- urn:ubideco:semid:C1GfCrG7AXu2sFhRBspd7KpJK2YgyTkVy6pty5rZynRs#cowboy-diego-betty -data Txid :: [Byte ^ 32] --- urn:ubideco:semid:CWjhoHVM4EyLcLJthK7fhePqmUpVctdhjdabggJFkig1#yellow-jaguar-pastel -data UncompressedPk :: [Byte ^ 65] --- urn:ubideco:semid:8ALgmuRBL8YRNWmcFoPdBFCsZwCvDjupXgdq9DjFVnkV#waiter-salad-casino -data VBytes :: U32 --- urn:ubideco:semid:AZqcQMyFBmixEkiDtAqGxB4nM8i9hmxV3mk4vUgNAkWT#conan-avalon-food -data VarInt :: U64 --- urn:ubideco:semid:3HHRtSJW5fnGkdVW1EVDH7B97Y79WhwvKyyfsaBkuQkk#chrome-robin-gallop -data Vout :: U32 --- urn:ubideco:semid:FyeKxsZ9bQaZG8PDMFjvLxfFTmA2SqUc8TTbS4Wh4daR#plasma-august-marion -data WPubkeyHash :: [Byte ^ 20] --- urn:ubideco:semid:4QBBHmPiEoFttFq6Tghc1QWDZUqLYnsNiE8gbsFK5hoU#vibrate-charm-spain -data WScriptHash :: [Byte ^ 32] --- urn:ubideco:semid:EcY6NU6BVRVkgCFwfWmSkbVKpLmWWVfDwBRRiSr6FJUC#bridge-version-voyage -data WeightUnits :: U32 --- urn:ubideco:semid:Gg9XBkAqDafziCYdzoJYMrjP6ziSxQckFaEBmbPLLgPD#sonata-local-slow -data Witness :: [ByteStr ^ ..0xffffffff] --- urn:ubideco:semid:FK7h8D8X6BTAuh8q4NdkdAGgF9vwAZRyYcUpFzR3fcDG#scholar-juice-titanic -data WitnessProgram :: version WitnessVer, program [Byte ^ 2..0x28] --- urn:ubideco:semid:Bd2bXQc2D6YmMFpupKnFGvjBiZNcGKrhaxS9omUUedcS#boris-harbor-equal -data WitnessScript :: ScriptBytes --- urn:ubideco:semid:F8Tgd8G4vQdBtiF8nnC46tANuaBcp9jnkaSeYxjREwEU#richard-average-unit -data WitnessVer :: v0:0 | v1:81 | v2:82 | v3:83 - | v4:84 | v5:85 | v6:86 | v7:87 - | v8:88 | v9:89 | v10:90 | v11:91 - | v12:92 | v13:93 | v14:94 | v15:95 - | v16:96 - --- urn:ubideco:semid:HZbMnxQ1p2duNgYuYrQn9xtHBwSom63zWtRwy6pmBGfU#sushi-polygon-circus -data Wtxid :: [Byte ^ 32] --- urn:ubideco:semid:J1BbH2Lx8P3yw9G244d92MMTP5jrkiaVzsr6FzRxpfur#evident-finance-promo -data XOnlyPk :: [Byte ^ 32] + +@mnemonic(design-jacket-spirit) +data TxOut : value Sats, scriptPubkey ScriptPubkey + +@mnemonic(english-natasha-virus) +data TxVer : I32 + +@mnemonic(cowboy-diego-betty) +data Txid : [Byte ^ 32] + +@mnemonic(yellow-jaguar-pastel) +data UncompressedPk : [Byte ^ 65] + +@mnemonic(waiter-salad-casino) +data VBytes : U32 + +@mnemonic(conan-avalon-food) +data VarInt : U64 + +@mnemonic(chrome-robin-gallop) +data Vout : U32 + +@mnemonic(plasma-august-marion) +data WPubkeyHash : [Byte ^ 20] + +@mnemonic(vibrate-charm-spain) +data WScriptHash : [Byte ^ 32] + +@mnemonic(bridge-version-voyage) +data WeightUnits : U32 + +@mnemonic(sonata-local-slow) +data Witness : [ByteStr ^ ..0xffffffff] + +@mnemonic(scholar-juice-titanic) +data WitnessProgram : version WitnessVer, program [Byte ^ 2..0x28] + +@mnemonic(boris-harbor-equal) +data WitnessScript : ScriptBytes + +@mnemonic(richard-average-unit) +data WitnessVer : v0 | v1#81 | v2 | v3 + | v4 | v5 | v6 | v7 + | v8 | v9 | v10 | v11 + | v12 | v13 | v14 | v15 + | v16 + + +@mnemonic(sushi-polygon-circus) +data Wtxid : [Byte ^ 32] + +@mnemonic(evident-finance-promo) +data XOnlyPk : [Byte ^ 32] + diff --git a/stl/Tx@0.1.0.sta b/stl/Tx@0.1.0.sta index 065d4c15..28b6f440 100644 --- a/stl/Tx@0.1.0.sta +++ b/stl/Tx@0.1.0.sta @@ -1,26 +1,25 @@ -----BEGIN STRICT TYPE LIB----- -Id: urn:ubideco:stl:9zw1koriNSQRJBdHbXnTqjCdShzASm915rWgnCBgnKJ4 +Id: 9zw1koriNSQRJBdHbXnTqjCdShzASm915rWgnCBgnKJ4#delphi-magnum-flame Name: Tx Dependencies: ~ -AlR4AAAPAAdCeXRlU3RyBQEACAAAQAAAAAAAAAAA/////wAAAAAITG9ja1RpbWUF -AQAABAhPdXRwb2ludAYCBHR4aWQBo4JC88vX0dChEtqN4WAvVtT4bw7ExHbFwGhZ -TEsEZVYEdm91dAEh4z5Dxapc8iknU6M4wWftO2OcTdnOvamPNGkXuslDdQRTYXRz -BQEAAAgLU2NyaXB0Qnl0ZXMFAQAIAABAAAAAAAAAAAD/////AAAAAAxTY3JpcHRQ -dWJrZXkFAQElq/W5EhQXuqM51F97FXWncUvhenUYXdAxNXrUyS3phgVTZXFObwUB -AAAECVNpZ1NjcmlwdAUBASWr9bkSFBe6oznUX3sVdadxS+F6dRhd0DE1etTJLemG -AlR4BgQHdmVyc2lvbgGofMZ5ZGflV9dE5cliOuAMy5XZGg0vA990wHUST77HngZp -bnB1dHMACAEKGZDXU/IKlWYfEzv1I0olj/5LyN0JJ6Qb5AS9jqJGqgAAAAAAAAAA -/////wAAAAAHb3V0cHV0cwAIAZA7ZHB5hI8bJlMq5M7GpolEoFNYuPCByyazu/gt -njvzAAAAAAAAAAD/////AAAAAAhsb2NrVGltZQE12h0VOSBuu93cpMM9hzHq8pun -2nTfPciCIBxOFrW5HARUeEluBgQKcHJldk91dHB1dAHoakDNXCX5veKE/2mlETKn -QSshVb0OVhLBv+OElWDFBglzaWdTY3JpcHQBOHUEsUt8DkZtR54XR30kdCR/+ANk -7D1Lqvc6IPdBdGsIc2VxdWVuY2UBARlthSnI9tpETRVOjZyMvZ4PjYkCWjuwkSHG -PVKwHocHd2l0bmVzcwGdVZOsuvnN4Js4RviDCXHTOMkvbnW8fOMgRZ6rOBmmHgVU -eE91dAYCBXZhbHVlAZf11wZCriozkiU7qE4dzsST478+03Gxh3OGNU7MiIJrDHNj -cmlwdFB1YmtleQG+/B78ZqUZ/WRSajoTh0Dn8RAtC77/OsFGTvP3QHZ0XAVUeFZl -cgUBAABEBFR4aWQFAQAHAABAIAAEVm91dAUBAAAEB1dpdG5lc3MFAQAIAcRya4+P -KNF6wZfIHY4NoZtiRJzm0GRd/sfpeDy1h/GjAAAAAAAAAAD/////AAAAAA== +0#tYa01p5MLV0v$Q*?3#0RRX906+i$0000000960|Nj60000O~Z)0mzX>DZ%0RR9 +52v2o%aBpdDbOr(hba-iG0i%LK^UK%K(4i9Ajp1M~R@C@!4#dQE#lUD;OiKi1Rs? +o$b#wtC<32;hs$B9ZCsU(1!DsC|W1LOd&b_IRG-(&Q$wPGnQ(<&-1pxp62n$nVa% +pgMLV0v$a|Hna2mk;;0000000000|NsC0000003{zurX>fED@qdC-Hdlhx3aZBNPbr@aHF*SPB$t~%I1yf~lPHzPP000CDQ)y>YV{&P5bOiwc +C9Czh5)>D@qdC-Hdlhx3aZBNPbr@aHF*SPB$t~%I0#tYg1P69ya&u{KZULx##(89 +ChhbX+H~JN$bujoP8PMf90XK&Np1!N3UG2|c29M5aCLM6 +=xRXCTqXIv;)MTcr4cfxK`S9uy$)6q!N22#m0-mN33F*@Q)6;zaC8AUbp)|Xd=5r +!N1hi)eI#@wfA|Ar>^)1W_c|c=L3C>fb7gULWo~0-0Rb6pg(=AP+C)tiPK}(5y`B +$^i2_eZ07L{-cxhw>0RRU806-uB1Xgc#bOiwb00akDX>@L7b8`g&00;rZa%+!|DA9V +sm&hHC4WXN2M4aZ(WL^Hp>3BS~hw-BT0000000030|Ns900000 -----END STRICT TYPE LIB----- diff --git a/stl/Tx@0.1.0.sty b/stl/Tx@0.1.0.sty index e58fd0c4..797f11fe 100644 --- a/stl/Tx@0.1.0.sty +++ b/stl/Tx@0.1.0.sty @@ -8,44 +8,60 @@ License: Apache-2.0 -} +@context typelib Tx -- no dependencies --- urn:ubideco:semid:EDr6wurh4X1tMNGqA7mRkyrAY6ngPGyRSEufTGSUtySJ#kinetic-avenue-escort -data ByteStr :: [Byte ^ ..0xffffffff] --- urn:ubideco:semid:4dDWWU4afiPN3q4AgCMuFRFhL4UDta2u5SrqrBzPvjby#tokyo-inch-program -data LockTime :: U32 --- urn:ubideco:semid:FWt2MSo8A4nsYgYbuBqMRNLiKgtzvLBgUn774iKzTcuf#pocket-pegasus-frank -data Outpoint :: txid Txid, vout Vout --- urn:ubideco:semid:BEBz6h7AGjYSDRCxVHnjYkkkxzBsjN3EvyNiD4ZrzmRL#pyramid-spray-star -data Sats :: U64 --- urn:ubideco:semid:3Y4AgjkFbDusgo3YqRDWv9BznDeAJEUDEPeEq1mpSkAR#maestro-source-jackson -data ScriptBytes :: [Byte ^ ..0xffffffff] --- urn:ubideco:semid:2ZAYpWKB2BQxeXXjpQDpYGZ7eXFM9qQxN9TcdTiQqeB8#bingo-maestro-silk -data ScriptPubkey :: ScriptBytes --- urn:ubideco:semid:5HtymNhYBhjqPkLLw9QVWZ62cLm57cZxgQTDUBBXtmL#rhino-time-rodent -data SeqNo :: U32 --- urn:ubideco:semid:2gTMqAC393rBSGtBhDn8sJq3F3HtDosbqKDQTw9bHFyT#prelude-analyze-think -data SigScript :: ScriptBytes --- urn:ubideco:semid:DynChojW1sfr8VjSoZbmReHhZoU8u9KCiuwijgEGdToe#milk-gloria-prize -data Tx :: version TxVer +@mnemonic(kinetic-avenue-escort) +data ByteStr : [Byte ^ ..0xffffffff] + +@mnemonic(tokyo-inch-program) +data LockTime : U32 + +@mnemonic(pocket-pegasus-frank) +data Outpoint : txid Txid, vout Vout + +@mnemonic(pyramid-spray-star) +data Sats : U64 + +@mnemonic(maestro-source-jackson) +data ScriptBytes : [Byte ^ ..0xffffffff] + +@mnemonic(bingo-maestro-silk) +data ScriptPubkey : ScriptBytes + +@mnemonic(rhino-time-rodent) +data SeqNo : U32 + +@mnemonic(prelude-analyze-think) +data SigScript : ScriptBytes + +@mnemonic(milk-gloria-prize) +data Tx : version TxVer , inputs [TxIn ^ ..0xffffffff] , outputs [TxOut ^ ..0xffffffff] , lockTime LockTime --- urn:ubideco:semid:9Nf4Vvt3im8tFQSGzPWKfjfhsrkB8bf2XsLWfzywiFSv#antenna-crater-planet -data TxIn :: prevOutput Outpoint + +@mnemonic(antenna-crater-planet) +data TxIn : prevOutput Outpoint , sigScript SigScript , sequence SeqNo , witness Witness --- urn:ubideco:semid:HutVbeKmYYrNun96Pi4T7YfYww7SeWxRFPZGDiZwoGZV#design-jacket-spirit -data TxOut :: value Sats, scriptPubkey ScriptPubkey --- urn:ubideco:semid:CLhr1zatQBSkCz9SiVrNoKB5igCZfF3hqRizfrviM6NR#english-natasha-virus -data TxVer :: I32 --- urn:ubideco:semid:C1GfCrG7AXu2sFhRBspd7KpJK2YgyTkVy6pty5rZynRs#cowboy-diego-betty -data Txid :: [Byte ^ 32] --- urn:ubideco:semid:3HHRtSJW5fnGkdVW1EVDH7B97Y79WhwvKyyfsaBkuQkk#chrome-robin-gallop -data Vout :: U32 --- urn:ubideco:semid:Gg9XBkAqDafziCYdzoJYMrjP6ziSxQckFaEBmbPLLgPD#sonata-local-slow -data Witness :: [ByteStr ^ ..0xffffffff] + +@mnemonic(design-jacket-spirit) +data TxOut : value Sats, scriptPubkey ScriptPubkey + +@mnemonic(english-natasha-virus) +data TxVer : I32 + +@mnemonic(cowboy-diego-betty) +data Txid : [Byte ^ 32] + +@mnemonic(chrome-robin-gallop) +data Vout : U32 + +@mnemonic(sonata-local-slow) +data Witness : [ByteStr ^ ..0xffffffff] + From 06fced918b6c7e26b14eac9a8ff017dccd911066 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Sat, 3 Feb 2024 22:54:45 +0100 Subject: [PATCH 03/16] stl: add Vesper support --- Cargo.lock | 126 +++++++++++++-------------- src/bin/bpcore-stl.rs | 49 ++++++++++- stl/Anchor.MerkleBlock.Tapret.vesper | 29 ++++++ stl/Anchor.MerkleProof.Tapret.vesper | 12 +++ stl/Anchor.MerkleTree.Opret.vesper | 20 +++++ stl/Anchor.MerkleTree.Tapret.vesper | 24 +++++ 6 files changed, 193 insertions(+), 67 deletions(-) create mode 100644 stl/Anchor.MerkleBlock.Tapret.vesper create mode 100644 stl/Anchor.MerkleProof.Tapret.vesper create mode 100644 stl/Anchor.MerkleTree.Opret.vesper create mode 100644 stl/Anchor.MerkleTree.Tapret.vesper diff --git a/Cargo.lock b/Cargo.lock index 3452f133..9427c5e4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -250,9 +250,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" dependencies = [ "android-tzdata", "iana-time-zone", @@ -265,7 +265,7 @@ dependencies = [ [[package]] name = "commit_encoding_derive" version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#7f2e2458d239ccf1c087218625fea145c28135ef" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#ca6866221b9cdcd9d68297753cf75af57aa7ef86" dependencies = [ "amplify", "amplify_syn", @@ -277,7 +277,7 @@ dependencies = [ [[package]] name = "commit_verify" version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#7f2e2458d239ccf1c087218625fea145c28135ef" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#ca6866221b9cdcd9d68297753cf75af57aa7ef86" dependencies = [ "amplify", "commit_encoding_derive", @@ -313,9 +313,9 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] @@ -364,9 +364,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "js-sys", @@ -398,9 +398,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -437,9 +437,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" dependencies = [ "wasm-bindgen", ] @@ -452,9 +452,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.151" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "log" @@ -464,9 +464,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "mnemonic" @@ -576,9 +576,9 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "secp256k1" -version = "0.28.1" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f622567e3b4b38154fb8190bcf6b160d7a4301d70595a49195b48c116007a27" +checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ "rand", "secp256k1-sys", @@ -616,9 +616,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" dependencies = [ "itoa", "ryu", @@ -702,7 +702,7 @@ dependencies = [ [[package]] name = "strict_types" version = "1.6.3" -source = "git+https://github.com/strict-types/strict-types?branch=vesper#f93a63bf785d639de155cc6e2aa2b10bf15a5d84" +source = "git+https://github.com/strict-types/strict-types?branch=vesper#b424b47eff526088417eccf85441211db4f953a1" dependencies = [ "amplify", "baid58", @@ -748,18 +748,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ "proc-macro2", "quote", @@ -841,9 +841,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -851,9 +851,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" dependencies = [ "bumpalo", "log", @@ -866,9 +866,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" dependencies = [ "cfg-if", "js-sys", @@ -878,9 +878,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -888,9 +888,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" dependencies = [ "proc-macro2", "quote", @@ -901,15 +901,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" [[package]] name = "wasm-bindgen-test" -version = "0.3.39" +version = "0.3.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cf9242c0d27999b831eae4767b2a146feb0b27d332d553e605864acd2afd403" +checksum = "139bd73305d50e1c1c4333210c0db43d989395b64a237bd35c10ef3832a7f70c" dependencies = [ "console_error_panic_hook", "js-sys", @@ -921,9 +921,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.39" +version = "0.3.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794645f5408c9a039fd09f4d113cdfb2e7eba5ff1956b07bcf701cf4b394fe89" +checksum = "70072aebfe5da66d2716002c729a14e4aec4da0e23cc2ea66323dac541c93928" dependencies = [ "proc-macro2", "quote", @@ -932,9 +932,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" dependencies = [ "js-sys", "wasm-bindgen", @@ -942,18 +942,18 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -966,51 +966,51 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" [[package]] name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" [[package]] name = "windows_i686_gnu" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" [[package]] name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.30" +version = "0.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5" +checksum = "a7cad8365489051ae9f054164e459304af2e7e9bb407c958076c8bf4aef52da5" dependencies = [ "memchr", ] diff --git a/src/bin/bpcore-stl.rs b/src/bin/bpcore-stl.rs index 483c26d1..a6b89469 100644 --- a/src/bin/bpcore-stl.rs +++ b/src/bin/bpcore-stl.rs @@ -19,8 +19,14 @@ // See the License for the specific language governing permissions and // limitations under the License. +use std::fs; + +use bc::stl::{bp_consensus_stl, bp_tx_stl}; +use bp::stl::bp_core_stl; +use commit_verify::stl::commit_verify_stl; use strict_encoding::libname; -use strict_types::parse_args; +use strict_types::stl::std_stl; +use strict_types::{parse_args, SystemBuilder}; fn main() { let (format, dir) = parse_args(); @@ -41,7 +47,7 @@ fn main() { ) .expect("unable to write to the file"); - bc::stl::bp_consensus_stl() + bp_consensus_stl() .serialize( format, dir.as_ref(), @@ -56,10 +62,10 @@ fn main() { ) .expect("unable to write to the file"); - bp::stl::bp_core_stl() + bp_core_stl() .serialize( format, - dir, + dir.as_ref(), "0.1.0", Some( " @@ -70,4 +76,39 @@ fn main() { ), ) .expect("unable to write to the file"); + + let std = std_stl(); + let tx = bp_tx_stl(); + let bp = bp_core_stl(); + let cv = commit_verify_stl(); + + let sys = SystemBuilder::new() + .import(bp) + .unwrap() + .import(tx) + .unwrap() + .import(cv) + .unwrap() + .import(std) + .unwrap() + .finalize() + .expect("not all libraries present"); + + let dir = dir.unwrap_or_else(|| ".".to_owned()); + + let tt = sys.type_tree("BPCore.AnchorMerkleTreeTapretProof").unwrap(); + fs::write(format!("{dir}/Anchor.MerkleTree.Tapret.vesper",), format!("{tt}")).unwrap(); + + let tt = sys.type_tree("BPCore.AnchorMerkleTreeOpretProof").unwrap(); + fs::write(format!("{dir}/Anchor.MerkleTree.Opret.vesper",), format!("{tt}")).unwrap(); + + let tt = sys + .type_tree("BPCore.AnchorMerkleBlockTapretProof") + .unwrap(); + fs::write(format!("{dir}/Anchor.MerkleBlock.Tapret.vesper",), format!("{tt}")).unwrap(); + + let tt = sys + .type_tree("BPCore.AnchorMerkleProofTapretProof") + .unwrap(); + fs::write(format!("{dir}/Anchor.MerkleProof.Tapret.vesper",), format!("{tt}")).unwrap(); } diff --git a/stl/Anchor.MerkleBlock.Tapret.vesper b/stl/Anchor.MerkleBlock.Tapret.vesper new file mode 100644 index 00000000..e8395f79 --- /dev/null +++ b/stl/Anchor.MerkleBlock.Tapret.vesper @@ -0,0 +1,29 @@ +AnchorMerkleBlockTapretProof rec + txid bytes len=32 aka=Txid + mpcProof rec -- MerkleBlock + depth enum { + _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 _8=8 + _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 _16=16 + _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 _24=24 + _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 + } -- U5 + cofactor is U16 + crossSection list len=0..MAX32 + TreeNode union + concealedNode rec tag=0 + depth enum { + _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 _8=8 + _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 _16=16 + _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 _24=24 + _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 + } -- U5 + hash bytes len=32 aka=MerkleHash + commitmentLeaf rec tag=1 + protocolId bytes len=32 aka=ProtocolId + message bytes len=32 aka=Message + some is U64 option wrapped tag=1 + dbcProof rec -- TapretProof + pathProof rec -- TapretPathProof + some union option wrapped tag=1 -- TapretNodePartner + rightBranch rec wrapped tag=2 -- TapretRightBranch + nonce is U8 diff --git a/stl/Anchor.MerkleProof.Tapret.vesper b/stl/Anchor.MerkleProof.Tapret.vesper new file mode 100644 index 00000000..e7e2bb7b --- /dev/null +++ b/stl/Anchor.MerkleProof.Tapret.vesper @@ -0,0 +1,12 @@ +AnchorMerkleProofTapretProof rec + txid bytes len=32 aka=Txid + mpcProof rec -- MerkleProof + pos is U32 + cofactor is U16 + path list len=0..32 + element bytes len=32 aka=MerkleHash + dbcProof rec -- TapretProof + pathProof rec -- TapretPathProof + some union option wrapped tag=1 -- TapretNodePartner + rightBranch rec wrapped tag=2 -- TapretRightBranch + nonce is U8 diff --git a/stl/Anchor.MerkleTree.Opret.vesper b/stl/Anchor.MerkleTree.Opret.vesper new file mode 100644 index 00000000..5d71467f --- /dev/null +++ b/stl/Anchor.MerkleTree.Opret.vesper @@ -0,0 +1,20 @@ +AnchorMerkleTreeOpretProof rec + txid bytes len=32 aka=Txid + mpcProof rec -- MerkleTree + depth enum { + _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 _8=8 + _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 _16=16 + _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 _24=24 + _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 + } -- U5 + entropy is U64 + cofactor is U16 + messages map len=0..MAX24 + key bytes len=32 aka=ProtocolId + value bytes len=32 aka=Message + map map len=0..MAX24 + key is U32 + value tuple + _ bytes len=32 aka=ProtocolId + _ bytes len=32 aka=Message + dbcProof is Unit aka=OpretProof diff --git a/stl/Anchor.MerkleTree.Tapret.vesper b/stl/Anchor.MerkleTree.Tapret.vesper new file mode 100644 index 00000000..b42c9feb --- /dev/null +++ b/stl/Anchor.MerkleTree.Tapret.vesper @@ -0,0 +1,24 @@ +AnchorMerkleTreeTapretProof rec + txid bytes len=32 aka=Txid + mpcProof rec -- MerkleTree + depth enum { + _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 _8=8 + _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 _16=16 + _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 _24=24 + _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 + } -- U5 + entropy is U64 + cofactor is U16 + messages map len=0..MAX24 + key bytes len=32 aka=ProtocolId + value bytes len=32 aka=Message + map map len=0..MAX24 + key is U32 + value tuple + _ bytes len=32 aka=ProtocolId + _ bytes len=32 aka=Message + dbcProof rec -- TapretProof + pathProof rec -- TapretPathProof + some union option wrapped tag=1 -- TapretNodePartner + rightBranch rec wrapped tag=2 -- TapretRightBranch + nonce is U8 From 7e6860556914b10fbdc6806494fe8c42ddf58386 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Sun, 4 Feb 2024 12:56:22 +0100 Subject: [PATCH 04/16] chore: update strict encoding --- Cargo.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 11f663a1..8bbfab95 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,8 +23,8 @@ license = "Apache-2.0" [workspace.dependencies] amplify = "4.5.1" -strict_encoding = ">=2.6.2" -strict_types = "1.6.3" +strict_encoding = "2.7.0" +strict_types = "2.7.0" commit_verify = "0.11.0-beta.3" single_use_seals = "0.11.0-beta.3" bp-consensus = { version = "0.11.0-beta.3", path = "consensus" } @@ -92,5 +92,5 @@ features = [ "all" ] [patch.crates-io] commit_verify = { git = "https://github.com/LNP-BP/client_side_validation", branch = "v0.11" } -strict_encoding = { git = "https://github.com/strict-types/strict-encoding", branch = "ident" } -strict_types = { git = "https://github.com/strict-types/strict-types", branch = "vesper" } +strict_encoding = { git = "https://github.com/strict-types/strict-encoding" } +strict_types = { git = "https://github.com/strict-types/strict-types" } From b4af800ea3399559f6fb3bb7604aa8b59749d8f9 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Sun, 4 Feb 2024 12:57:33 +0100 Subject: [PATCH 05/16] chore: bump MSRV due to TOML in amplify crate --- .github/workflows/build.yml | 2 +- Cargo.lock | 16 ++++++++-------- Cargo.toml | 2 +- MANIFEST.yml | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ee368857..38d5e566 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,7 +72,7 @@ jobs: strategy: fail-fast: false matrix: - toolchain: [ nightly, beta, stable, 1.67.0 ] + toolchain: [ nightly, beta, stable, 1.69.0 ] steps: - uses: actions/checkout@v2 - name: Install rust ${{ matrix.toolchain }} diff --git a/Cargo.lock b/Cargo.lock index 9427c5e4..6e7d5b94 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -265,7 +265,7 @@ dependencies = [ [[package]] name = "commit_encoding_derive" version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#ca6866221b9cdcd9d68297753cf75af57aa7ef86" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#4dcaae2c36c4cc7691021e02bb9e29f4e9de6d50" dependencies = [ "amplify", "amplify_syn", @@ -277,7 +277,7 @@ dependencies = [ [[package]] name = "commit_verify" version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#ca6866221b9cdcd9d68297753cf75af57aa7ef86" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#4dcaae2c36c4cc7691021e02bb9e29f4e9de6d50" dependencies = [ "amplify", "commit_encoding_derive", @@ -679,8 +679,8 @@ dependencies = [ [[package]] name = "strict_encoding" -version = "2.6.2" -source = "git+https://github.com/strict-types/strict-encoding?branch=ident#9c20b327178b449cbb24a18c7db65edeb50a9d5b" +version = "2.7.0" +source = "git+https://github.com/strict-types/strict-encoding#c5c120b74d52fcc6a2e1ac66211741be4e470740" dependencies = [ "amplify", "half", @@ -689,8 +689,8 @@ dependencies = [ [[package]] name = "strict_encoding_derive" -version = "2.0.1" -source = "git+https://github.com/strict-types/strict-encoding?branch=ident#9c20b327178b449cbb24a18c7db65edeb50a9d5b" +version = "2.7.0" +source = "git+https://github.com/strict-types/strict-encoding#c5c120b74d52fcc6a2e1ac66211741be4e470740" dependencies = [ "amplify_syn", "heck", @@ -701,8 +701,8 @@ dependencies = [ [[package]] name = "strict_types" -version = "1.6.3" -source = "git+https://github.com/strict-types/strict-types?branch=vesper#b424b47eff526088417eccf85441211db4f953a1" +version = "2.7.0" +source = "git+https://github.com/strict-types/strict-types#907c02c2b39675b57a127c31caabeb656017b35e" dependencies = [ "amplify", "baid58", diff --git a/Cargo.toml b/Cargo.toml index 8bbfab95..ed6abf1c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ version = "0.11.0-beta.3" authors = ["Dr Maxim Orlovsky "] homepage = "https://github.com/BP-WG" repository = "https://github.com/BP-WG/bp-core" -rust-version = "1.67" # Due to strict encoding library +rust-version = "1.69" # Due to TOML in amplify crate edition = "2021" license = "Apache-2.0" diff --git a/MANIFEST.yml b/MANIFEST.yml index c38854e9..0522353c 100644 --- a/MANIFEST.yml +++ b/MANIFEST.yml @@ -3,7 +3,7 @@ Type: Library Kind: Free software License: Apache-2.0 Language: Rust -Compiler: 1.67 +Compiler: 1.69 Author: Maxim Orlovsky Maintained: LNP/BP Standards Association, Switzerland Maintainers: From 1bcc3cffae6802e600d1b77f82b2e80456142354 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Sun, 4 Feb 2024 12:57:59 +0100 Subject: [PATCH 06/16] ci: bump macos versions --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 38d5e566..f211b1e1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -54,7 +54,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-20.04, ubuntu-22.04, macos-11, macos-12, windows-2019, windows-2022 ] + os: [ ubuntu-20.04, ubuntu-22.04, macos-12, macos-13, windows-2019, windows-2022 ] steps: - uses: actions/checkout@v2 - name: Install rust stable From d472fcf3aea4fd9fb00e0a98873eff67c9db2484 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Sun, 4 Feb 2024 13:00:34 +0100 Subject: [PATCH 07/16] chore: update years --- LICENSE | 2 +- consensus/src/block.rs | 4 ++-- consensus/src/coding.rs | 4 ++-- consensus/src/hashtypes.rs | 4 ++-- consensus/src/lib.rs | 4 ++-- consensus/src/opcodes.rs | 4 ++-- consensus/src/pubkeys.rs | 4 ++-- consensus/src/script.rs | 4 ++-- consensus/src/segwit.rs | 4 ++-- consensus/src/sigtypes.rs | 4 ++-- consensus/src/stl.rs | 4 ++-- consensus/src/taproot.rs | 4 ++-- consensus/src/timelocks.rs | 4 ++-- consensus/src/tx.rs | 4 ++-- consensus/src/util.rs | 4 ++-- consensus/src/weights.rs | 4 ++-- dbc/src/anchor.rs | 4 ++-- dbc/src/keytweak/mod.rs | 4 ++-- dbc/src/lib.rs | 4 ++-- dbc/src/opret/mod.rs | 4 ++-- dbc/src/opret/spk.rs | 4 ++-- dbc/src/opret/tx.rs | 4 ++-- dbc/src/opret/txout.rs | 4 ++-- dbc/src/proof.rs | 4 ++-- dbc/src/sigtweak/mod.rs | 4 ++-- dbc/src/tapret/mod.rs | 4 ++-- dbc/src/tapret/spk.rs | 4 ++-- dbc/src/tapret/tapscript.rs | 4 ++-- dbc/src/tapret/tx.rs | 4 ++-- dbc/src/tapret/txout.rs | 4 ++-- dbc/src/tapret/xonlypk.rs | 4 ++-- seals/src/lib.rs | 4 ++-- seals/src/resolver.rs | 4 ++-- seals/src/secret.rs | 4 ++-- seals/src/txout/blind.rs | 4 ++-- seals/src/txout/error.rs | 4 ++-- seals/src/txout/explicit.rs | 4 ++-- seals/src/txout/mod.rs | 4 ++-- seals/src/txout/seal.rs | 4 ++-- seals/src/txout/witness.rs | 4 ++-- src/bin/bpcore-stl.rs | 10 +++++----- src/bp.rs | 4 ++-- src/lib.rs | 4 ++-- src/stl.rs | 4 ++-- stl/BPCore@0.1.0.sty | 2 +- stl/Bitcoin@0.1.0.sty | 2 +- stl/Tx@0.1.0.sty | 2 +- 47 files changed, 93 insertions(+), 93 deletions(-) diff --git a/LICENSE b/LICENSE index e1720699..5987cb5c 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2019-2023 LNP/BP Standards Association, Switzerland + Copyright 2019-2024 LNP/BP Standards Association, Switzerland Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/consensus/src/block.rs b/consensus/src/block.rs index 5a611950..cd83c7e2 100644 --- a/consensus/src/block.rs +++ b/consensus/src/block.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/coding.rs b/consensus/src/coding.rs index 32290e87..f7ee9b30 100644 --- a/consensus/src/coding.rs +++ b/consensus/src/coding.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/hashtypes.rs b/consensus/src/hashtypes.rs index 0153c80c..bc95d1c6 100644 --- a/consensus/src/hashtypes.rs +++ b/consensus/src/hashtypes.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/lib.rs b/consensus/src/lib.rs index 89ce5330..8c18cc4f 100644 --- a/consensus/src/lib.rs +++ b/consensus/src/lib.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/opcodes.rs b/consensus/src/opcodes.rs index b31a2943..ed016338 100644 --- a/consensus/src/opcodes.rs +++ b/consensus/src/opcodes.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/pubkeys.rs b/consensus/src/pubkeys.rs index 3b55b541..517844b0 100644 --- a/consensus/src/pubkeys.rs +++ b/consensus/src/pubkeys.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/script.rs b/consensus/src/script.rs index 1451fb71..4177d446 100644 --- a/consensus/src/script.rs +++ b/consensus/src/script.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/segwit.rs b/consensus/src/segwit.rs index 1f95fee3..5da86d07 100644 --- a/consensus/src/segwit.rs +++ b/consensus/src/segwit.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/sigtypes.rs b/consensus/src/sigtypes.rs index 3c994f9f..be6475b7 100644 --- a/consensus/src/sigtypes.rs +++ b/consensus/src/sigtypes.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/stl.rs b/consensus/src/stl.rs index 61416b25..66996b50 100644 --- a/consensus/src/stl.rs +++ b/consensus/src/stl.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/taproot.rs b/consensus/src/taproot.rs index cde02412..145328ad 100644 --- a/consensus/src/taproot.rs +++ b/consensus/src/taproot.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/timelocks.rs b/consensus/src/timelocks.rs index 6aba41ac..88b60a67 100644 --- a/consensus/src/timelocks.rs +++ b/consensus/src/timelocks.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/tx.rs b/consensus/src/tx.rs index cc3cebe9..681ba259 100644 --- a/consensus/src/tx.rs +++ b/consensus/src/tx.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/util.rs b/consensus/src/util.rs index 9baaef54..ace285f6 100644 --- a/consensus/src/util.rs +++ b/consensus/src/util.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/consensus/src/weights.rs b/consensus/src/weights.rs index e762c437..aa3d63c6 100644 --- a/consensus/src/weights.rs +++ b/consensus/src/weights.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/anchor.rs b/dbc/src/anchor.rs index 014579b9..f9e93153 100644 --- a/dbc/src/anchor.rs +++ b/dbc/src/anchor.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/keytweak/mod.rs b/dbc/src/keytweak/mod.rs index 6f888d0d..2f6eb17d 100644 --- a/dbc/src/keytweak/mod.rs +++ b/dbc/src/keytweak/mod.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/lib.rs b/dbc/src/lib.rs index 08bc5dc9..961014d3 100644 --- a/dbc/src/lib.rs +++ b/dbc/src/lib.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/opret/mod.rs b/dbc/src/opret/mod.rs index 35f5b650..610d323b 100644 --- a/dbc/src/opret/mod.rs +++ b/dbc/src/opret/mod.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/opret/spk.rs b/dbc/src/opret/spk.rs index d59bd4e9..aad04520 100644 --- a/dbc/src/opret/spk.rs +++ b/dbc/src/opret/spk.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/opret/tx.rs b/dbc/src/opret/tx.rs index 620ee037..ad0b477d 100644 --- a/dbc/src/opret/tx.rs +++ b/dbc/src/opret/tx.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/opret/txout.rs b/dbc/src/opret/txout.rs index d571f336..48e9fc11 100644 --- a/dbc/src/opret/txout.rs +++ b/dbc/src/opret/txout.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/proof.rs b/dbc/src/proof.rs index 9c69acb1..8ffeae92 100644 --- a/dbc/src/proof.rs +++ b/dbc/src/proof.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/sigtweak/mod.rs b/dbc/src/sigtweak/mod.rs index 55d6665f..8224053e 100644 --- a/dbc/src/sigtweak/mod.rs +++ b/dbc/src/sigtweak/mod.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/tapret/mod.rs b/dbc/src/tapret/mod.rs index 0e26e439..8351c8b7 100644 --- a/dbc/src/tapret/mod.rs +++ b/dbc/src/tapret/mod.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/tapret/spk.rs b/dbc/src/tapret/spk.rs index 0fd62531..fa3dd169 100644 --- a/dbc/src/tapret/spk.rs +++ b/dbc/src/tapret/spk.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/tapret/tapscript.rs b/dbc/src/tapret/tapscript.rs index 960da1db..8b8f7955 100644 --- a/dbc/src/tapret/tapscript.rs +++ b/dbc/src/tapret/tapscript.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/tapret/tx.rs b/dbc/src/tapret/tx.rs index 5a54ff9c..1e305c38 100644 --- a/dbc/src/tapret/tx.rs +++ b/dbc/src/tapret/tx.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/tapret/txout.rs b/dbc/src/tapret/txout.rs index 02d87529..db0ef654 100644 --- a/dbc/src/tapret/txout.rs +++ b/dbc/src/tapret/txout.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dbc/src/tapret/xonlypk.rs b/dbc/src/tapret/xonlypk.rs index e84974dc..1c460ca5 100644 --- a/dbc/src/tapret/xonlypk.rs +++ b/dbc/src/tapret/xonlypk.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/seals/src/lib.rs b/seals/src/lib.rs index dcdcdd26..50c2798b 100644 --- a/seals/src/lib.rs +++ b/seals/src/lib.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/seals/src/resolver.rs b/seals/src/resolver.rs index b7e1e4d7..481a1db2 100644 --- a/seals/src/resolver.rs +++ b/seals/src/resolver.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/seals/src/secret.rs b/seals/src/secret.rs index fb1a4603..19ef5f4c 100644 --- a/seals/src/secret.rs +++ b/seals/src/secret.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/seals/src/txout/blind.rs b/seals/src/txout/blind.rs index 416f7deb..7663a6e3 100644 --- a/seals/src/txout/blind.rs +++ b/seals/src/txout/blind.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/seals/src/txout/error.rs b/seals/src/txout/error.rs index 04848521..d8f733ba 100644 --- a/seals/src/txout/error.rs +++ b/seals/src/txout/error.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/seals/src/txout/explicit.rs b/seals/src/txout/explicit.rs index 92253010..ed94748b 100644 --- a/seals/src/txout/explicit.rs +++ b/seals/src/txout/explicit.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/seals/src/txout/mod.rs b/seals/src/txout/mod.rs index 6fc3acc1..925b0b4e 100644 --- a/seals/src/txout/mod.rs +++ b/seals/src/txout/mod.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/seals/src/txout/seal.rs b/seals/src/txout/seal.rs index c618884d..2a000502 100644 --- a/seals/src/txout/seal.rs +++ b/seals/src/txout/seal.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/seals/src/txout/witness.rs b/seals/src/txout/witness.rs index 060b4a43..bc639acb 100644 --- a/seals/src/txout/witness.rs +++ b/seals/src/txout/witness.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bin/bpcore-stl.rs b/src/bin/bpcore-stl.rs index a6b89469..5a2bf95b 100644 --- a/src/bin/bpcore-stl.rs +++ b/src/bin/bpcore-stl.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -41,7 +41,7 @@ fn main() { " Description: Bitcoin transaction library Author: Dr Maxim Orlovsky - Copyright (C) 2023 LNP/BP Standards Association. All rights reserved. + Copyright (C) 2023-2024 LNP/BP Standards Association. All rights reserved. License: Apache-2.0", ), ) @@ -56,7 +56,7 @@ fn main() { " Description: Consensus library for bitcoin protocol Author: Dr Maxim Orlovsky - Copyright (C) 2023 LNP/BP Standards Association. All rights reserved. + Copyright (C) 2023-2024 LNP/BP Standards Association. All rights reserved. License: Apache-2.0", ), ) @@ -71,7 +71,7 @@ fn main() { " Description: Bitcoin client-side-validation library Author: Dr Maxim Orlovsky - Copyright (C) 2023 LNP/BP Standards Association. All rights reserved. + Copyright (C) 2023-2024 LNP/BP Standards Association. All rights reserved. License: Apache-2.0", ), ) diff --git a/src/bp.rs b/src/bp.rs index 791ca24e..7d51fbef 100644 --- a/src/bp.rs +++ b/src/bp.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/lib.rs b/src/lib.rs index 45e54db1..7e26bcb1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/stl.rs b/src/stl.rs index 9aff04c6..781065b6 100644 --- a/src/stl.rs +++ b/src/stl.rs @@ -2,10 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 // -// Written in 2019-2023 by +// Written in 2019-2024 by // Dr Maxim Orlovsky // -// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved. +// Copyright (C) 2019-2024 LNP/BP Standards Association. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/stl/BPCore@0.1.0.sty b/stl/BPCore@0.1.0.sty index 313720c7..3dbd4e97 100644 --- a/stl/BPCore@0.1.0.sty +++ b/stl/BPCore@0.1.0.sty @@ -4,7 +4,7 @@ Version: 0.1.0 Description: Bitcoin client-side-validation library Author: Dr Maxim Orlovsky - Copyright (C) 2023 LNP/BP Standards Association. All rights reserved. + Copyright (C) 2023-2024 LNP/BP Standards Association. All rights reserved. License: Apache-2.0 -} diff --git a/stl/Bitcoin@0.1.0.sty b/stl/Bitcoin@0.1.0.sty index e478da77..3cb1a3de 100644 --- a/stl/Bitcoin@0.1.0.sty +++ b/stl/Bitcoin@0.1.0.sty @@ -4,7 +4,7 @@ Version: 0.1.0 Description: Consensus library for bitcoin protocol Author: Dr Maxim Orlovsky - Copyright (C) 2023 LNP/BP Standards Association. All rights reserved. + Copyright (C) 2023-2024 LNP/BP Standards Association. All rights reserved. License: Apache-2.0 -} diff --git a/stl/Tx@0.1.0.sty b/stl/Tx@0.1.0.sty index 797f11fe..ec09eba1 100644 --- a/stl/Tx@0.1.0.sty +++ b/stl/Tx@0.1.0.sty @@ -4,7 +4,7 @@ Version: 0.1.0 Description: Bitcoin transaction library Author: Dr Maxim Orlovsky - Copyright (C) 2023 LNP/BP Standards Association. All rights reserved. + Copyright (C) 2023-2024 LNP/BP Standards Association. All rights reserved. License: Apache-2.0 -} From e5da72f8ffae49ccca6a9dbabf24f961cb619761 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Sun, 4 Feb 2024 13:15:15 +0100 Subject: [PATCH 08/16] dbc: add convenience anchor constructor --- dbc/src/anchor.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dbc/src/anchor.rs b/dbc/src/anchor.rs index f9e93153..29a5cd2b 100644 --- a/dbc/src/anchor.rs +++ b/dbc/src/anchor.rs @@ -82,6 +82,19 @@ pub struct Anchor, M: DbcMethod = M pub _method: PhantomData, } +impl, M: DbcMethod> Anchor { + /// Constructs anchor for a given witness transaction id, MPC and DBC + /// proofs. + pub fn new(witness_txid: Txid, mpc_proof: L, dbc_proof: D) -> Self { + Self { + txid: witness_txid, + mpc_proof, + dbc_proof, + _method: PhantomData::default(), + } + } +} + /// Error merging two [`Anchor`]s. #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug, Display, Error, From)] #[display(doc_comments)] From 0a84072daaa8ca7d81d4bb3064b813d8c382b27b Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Mon, 12 Feb 2024 17:38:36 +0100 Subject: [PATCH 09/16] chore: update strict encoding dependencies --- Cargo.lock | 74 ++++++++++++++++++------------------ Cargo.toml | 4 +- dbc/src/tapret/tapscript.rs | 12 +++--- src/stl.rs | 2 +- stl/BPCore@0.1.0.sta | 26 ++++++------- stl/BPCore@0.1.0.stl | Bin 3668 -> 3668 bytes stl/BPCore@0.1.0.sty | 10 ++--- 7 files changed, 64 insertions(+), 64 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6e7d5b94..4c644ec4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -250,9 +250,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" +checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" dependencies = [ "android-tzdata", "iana-time-zone", @@ -265,7 +265,7 @@ dependencies = [ [[package]] name = "commit_encoding_derive" version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#4dcaae2c36c4cc7691021e02bb9e29f4e9de6d50" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#9562563e1fde21fe7ae6a6a9d36c0115f654a59e" dependencies = [ "amplify", "amplify_syn", @@ -277,7 +277,7 @@ dependencies = [ [[package]] name = "commit_verify" version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#4dcaae2c36c4cc7691021e02bb9e29f4e9de6d50" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#9562563e1fde21fe7ae6a6a9d36c0115f654a59e" dependencies = [ "amplify", "commit_encoding_derive", @@ -421,9 +421,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" +checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" dependencies = [ "equivalent", "hashbrown", @@ -437,9 +437,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.67" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" dependencies = [ "wasm-bindgen", ] @@ -480,9 +480,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -680,7 +680,7 @@ dependencies = [ [[package]] name = "strict_encoding" version = "2.7.0" -source = "git+https://github.com/strict-types/strict-encoding#c5c120b74d52fcc6a2e1ac66211741be4e470740" +source = "git+https://github.com/strict-types/strict-encoding?branch=refactor/io#bdd35d550369590a3e6a86439a55e0b2f2d06766" dependencies = [ "amplify", "half", @@ -690,7 +690,7 @@ dependencies = [ [[package]] name = "strict_encoding_derive" version = "2.7.0" -source = "git+https://github.com/strict-types/strict-encoding#c5c120b74d52fcc6a2e1ac66211741be4e470740" +source = "git+https://github.com/strict-types/strict-encoding?branch=refactor/io#bdd35d550369590a3e6a86439a55e0b2f2d06766" dependencies = [ "amplify_syn", "heck", @@ -702,7 +702,7 @@ dependencies = [ [[package]] name = "strict_types" version = "2.7.0" -source = "git+https://github.com/strict-types/strict-types#907c02c2b39675b57a127c31caabeb656017b35e" +source = "git+https://github.com/strict-types/strict-types?branch=refactor/io#abc6133b6cfdb9699714c493e5f62175d99fd752" dependencies = [ "amplify", "baid58", @@ -748,18 +748,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", @@ -841,9 +841,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -851,9 +851,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" dependencies = [ "bumpalo", "log", @@ -866,9 +866,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.40" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" +checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" dependencies = [ "cfg-if", "js-sys", @@ -878,9 +878,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -888,9 +888,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", @@ -901,15 +901,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" [[package]] name = "wasm-bindgen-test" -version = "0.3.40" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139bd73305d50e1c1c4333210c0db43d989395b64a237bd35c10ef3832a7f70c" +checksum = "143ddeb4f833e2ed0d252e618986e18bfc7b0e52f2d28d77d05b2f045dd8eb61" dependencies = [ "console_error_panic_hook", "js-sys", @@ -921,9 +921,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.40" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70072aebfe5da66d2716002c729a14e4aec4da0e23cc2ea66323dac541c93928" +checksum = "a5211b7550606857312bba1d978a8ec75692eae187becc5e680444fffc5e6f89" dependencies = [ "proc-macro2", "quote", @@ -932,9 +932,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.67" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" +checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" dependencies = [ "js-sys", "wasm-bindgen", @@ -1008,9 +1008,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.37" +version = "0.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cad8365489051ae9f054164e459304af2e7e9bb407c958076c8bf4aef52da5" +checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29" dependencies = [ "memchr", ] diff --git a/Cargo.toml b/Cargo.toml index ed6abf1c..f1b46de9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -91,6 +91,6 @@ wasm-bindgen-test = "0.3" features = [ "all" ] [patch.crates-io] +strict_encoding = { git = "https://github.com/strict-types/strict-encoding", branch = "refactor/io" } +strict_types = { git = "https://github.com/strict-types/strict-types", branch = "refactor/io" } commit_verify = { git = "https://github.com/LNP-BP/client_side_validation", branch = "v0.11" } -strict_encoding = { git = "https://github.com/strict-types/strict-encoding" } -strict_types = { git = "https://github.com/strict-types/strict-types" } diff --git a/dbc/src/tapret/tapscript.rs b/dbc/src/tapret/tapscript.rs index 8b8f7955..06465371 100644 --- a/dbc/src/tapret/tapscript.rs +++ b/dbc/src/tapret/tapscript.rs @@ -20,14 +20,13 @@ // limitations under the License. use std::fmt::{self, Display, Formatter}; -use std::io; use std::str::FromStr; use amplify::confinement::Confined; use bc::{TapCode, TapScript}; use commit_verify::{mpc, CommitVerify}; use strict_encoding::{ - DecodeError, DeserializeError, StrictDeserialize, StrictEncode, StrictSerialize, + DecodeError, DeserializeError, StreamWriter, StrictDeserialize, StrictEncode, StrictSerialize, }; use super::TapretFirst; @@ -110,12 +109,13 @@ impl CommitVerify for TapScript { tapret.push_opcode(TapCode::Reserved); } tapret.push_opcode(TapCode::Return); - let mut data = io::Cursor::new([0u8; 33]); + let mut writer = StreamWriter::in_memory::<33>(); commitment - .strict_write(33, &mut data) + .strict_write(&mut writer) .expect("tapret commitment must be fitting 33 bytes"); - debug_assert_eq!(data.position(), 33, "tapret commitment must take exactly 33 bytes"); - tapret.push_slice(&data.into_inner()); + let data = writer.unconfine(); + debug_assert_eq!(data.len(), 33, "tapret commitment must take exactly 33 bytes"); + tapret.push_slice(&data); tapret } } diff --git a/src/stl.rs b/src/stl.rs index 781065b6..25664069 100644 --- a/src/stl.rs +++ b/src/stl.rs @@ -32,7 +32,7 @@ use strict_types::{CompileError, LibBuilder, TypeLib}; /// Strict types id for the library providing data types from [`dbc`] and /// [`seals`] crates. pub const LIB_ID_BPCORE: &str = - "urn:ubideco:stl:6HFQ83t33zW6PgG2pWpXM3HuEUFXAgUjheYiQa2Jdb9c#jester-lorenzo-address"; + "urn:ubideco:stl:698cwwfCJw4pzQicV8jBaQJ2rLLphub4qJGYbMndqC2C#bless-rebel-panic"; fn _bp_core_stl() -> Result { LibBuilder::new(libname!(LIB_NAME_BPCORE), tiny_bset! { diff --git a/stl/BPCore@0.1.0.sta b/stl/BPCore@0.1.0.sta index 14b9d7f2..94ed71da 100644 --- a/stl/BPCore@0.1.0.sta +++ b/stl/BPCore@0.1.0.sta @@ -1,13 +1,13 @@ -----BEGIN STRICT TYPE LIB----- -Id: 6HFQ83t33zW6PgG2pWpXM3HuEUFXAgUjheYiQa2Jdb9c#jester-lorenzo-address +Id: 698cwwfCJw4pzQicV8jBaQJ2rLLphub4qJGYbMndqC2C#bless-rebel-panic Name: BPCore Dependencies: - 4SZ2EgWWtC5LsNXmNpAzogNHZoaZNTCwU3SQhAYwDX6A#citizen-fiction-corner, 55f8bsTvyh7zAeYAiNwL9G1DxgwXzDvE8edcTFJz3Q9H#milan-poncho-gray, + DYafq9UACuYbTpduhcqywBGH97wHYtSUNPiXh5v2Zub9#drama-imagine-extreme, HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy -20~CnZ*pY=GakvI9hZZx!KXd_w$=T0||rb~=^wLEBVElH>^WZ$C<90OByWc6$lVk7oBr%DNv+($ +20~CnZ*pY=JfJU>zJB;=bhBCKPB)LHON@H8JZNt%NvJPm-=hp115ng-v&zqpQ&=n89%?b4NiNurpe%p_Di3`1{iZE18?WpZg|dG%})Vk7oBr%DNv+($ ;q`HHK!gIHa)*%m(-e#9sm3I{@IbYpL6ZUYBGX>?<6X>JGrA>%$n#j0HLDJN5-IK gM_J7b(p+0MPGk2Gl)y2(Rz1Xgc#bS10xxe^o?x}!PNUwajGr*TW+dUY6G&@nZ7) X6RBh6__;a%pgMLV0v$b1}QF=!A)P#jpo4axu-4_As_7EzOC4+`8Vyy2R;!*$Y%* @@ -24,28 +24,28 @@ RbQ5DGQh1^p2tAX-yWl;qtQD1_K0icxhw;^=uPjBlbC`N(q zPM@Gr{imSMTSY5T*7C#t%#3&jHqk=;7%h%D+p%U7S;b1RT)c9`>#Kd;Rz-U=aO9 -W+B2yJj@l<|w +W+B2yJj@l<|w uPSOOLZ&$Vj#jYr62iSlS>y#`6AYfdEy9UVq;KpZ*OJ+M^4XN(CAD)cag{96@elXm4^&WpZn5WkPIkV{24laB^jIP;zf?W(ETUba-i G0`+VYVk7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3ZsHT^UK%K(4i9Ajp1M~R@C -@!4#dQE#lUD;OiKi1RtRlyV^DH$Z)O5B9?78{mxHarr#<&bG*@y<+!%t*$Ur0?x% -bxX=wd@KE$lJ0Dz=55=Sy`f{$e1)GNm8+U6V@}N%D0S~qxm +@!4#dQE#lUD;OiKi1RtRlyV^DH$Z)O6zV^MwM3Tut+(v^ToqL +`!1Bvd>wE$lJ0Dz=55=Sy`f{$e1)GNm8+U6V@}N%D0S~qxm _HirtB!lh<{Yi-S-!KI0_27BH<@sVme~^s3>!giV`y)3O=WUxY-Lb#Z*OK#aB^jI P;zf?W(ETUba-iG0`+VYVk7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3ZsHT^UK% -K(4i9Ajp1M~R@C@!4#dQE#lUD;OiKi1RtRlyV^DH$Z)O5B9?78{mxHarr#<&bG*@ -y<+!%t*$Ur0?x%bxX=wd^K(LK3V&vL%&i(~ao9rExlGMgPx_&tqtqVlwo1}@PEWM +K(4i9Ajp1M~R@C@!4#dQE#lUD;OiKi1RtRlyV^DH$Z)O6zV^M +wM3Tut+(v^ToqL`!1Bvd?w(LK3V&vL%&i(~ao9rExlGMgPx_&tqtqVlwo1}@PEWM X4ba&K>D0Y^^HT+rxDK6vW;JU&?LxLM72H?wDC1Zo}=N}D)4mmEQEV`y)3O=WUxY -Lb#Z*OK)VQ_L~bWn0{Z)OGq1ax?5WCHbU6JjIwIj2eqliWu}$@z+_xPw?-wb>Rw -7=FYk8VaL=Li5Yl(a@n1+Ku60FILp}Zw|!7cE!MGSxid=WmX7naAQz%Z*OJ-Gakv -I9hZZx!KXdx*OcO&#*^E;5@PQ20 +7=FYk8VaL=Li5Yl(a@n1+Ku60FILp}Zw|!7cE!MGSxid=WmX7naAQz%Z*OJ-x?@p +-{~Cp>ng-v&zqpQ&=n89%?b4NiNurpe%p_Dih0#5^R?l+2>x*OcO&#*^E;5@PQ20 HKbE5LJk_Il(2xMYoP;zf?W&sbjADBNH?W>M^%H|xc>sh|Dn*!v8^Ea7rh?dzC2n -rQZewU~a!qA&Yiwmya%E*taB^jIP;zf?W(ETUba-iG0`+VYVk7oBr%DNv+($;q` HHK!gIHa)*%m(-e#9sm3ZsHT^UK%K(4i9Ajp1M~R@C@!4#dQE#lUD;OiKi1RtRly -V^DH$Z)O5B9?78{mxHarr#<&bG*@y<+!%t*$Ur0?x%bxX=wd?%R`-7%wM3Tut+(v^ToqL`!1Bvd>IR`-7%D0Y^^HT+rxDK6vW;JU&?LxLM72H?w DC1Zo}=N}D)4mm5KDV`y)3O=WUxY-Ln(Wo1-haB^jIP;zf?W(ETUba-iG0`+VYVk 7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3ZsHT^UK%K(4i9Ajp1M~R@C@!4#dQE# -lUD;OiKi1RtRlyV^DH$Z)O5B9?78{mxHarr#<&bG*@y<+!%t*$Ur0?x%bxX=wd?% +lUD;OiKi1RtRlyV^DH$Z)O6zV^MwM3Tut+(v^ToqL`!1Bvd>I R`-7%D0S~qxm_HirtB!l h<{Yi-S-!KI0_27BH<@sVme~^s3=TqUX>MdwWnpYocu;h51_TCeWprq7WC1R>5GA >8Wft0d6dj=*oo`t>c$)o5X19O9`rXu=lIsL?cxhw-vE?{96bd-L@NXK=z8qksZ{ diff --git a/stl/BPCore@0.1.0.stl b/stl/BPCore@0.1.0.stl index 503433eb431f209565944532c2ffa7efad263129..3f349b1569d24b3edf64cf1c26f2c069c955c428 100644 GIT binary patch delta 305 zcmca2b47-O%_+b+zbKV?qN$4RuH?X`|5B~1XR+NsxPM3Agcn@dy>Bl~ZSY()WAPc4 z5E~xn{M_8klCadG%(TkM3%M0GR_Zb<5YjbyK8x1m56u0;D*|jDIviA{GxcNVOC>sFef|k<& delta 304 zcmca2b4A9K%_+b+zbKX2SnlLP+3C$|4=%U;?qL#MFfyy75Satuf2Vd Date: Mon, 12 Feb 2024 18:02:09 +0100 Subject: [PATCH 10/16] seals: standardize commitment tag --- seals/src/secret.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seals/src/secret.rs b/seals/src/secret.rs index 19ef5f4c..b1fc015a 100644 --- a/seals/src/secret.rs +++ b/seals/src/secret.rs @@ -43,7 +43,7 @@ pub struct SecretSeal( ); impl CommitmentId for SecretSeal { - const TAG: &'static str = "urn:lnpbp:seals:secret#2024-02-03"; + const TAG: &'static str = "urn:lnp-bp:seals:secret#2024-02-03"; } impl From for SecretSeal { From 68d324b2fdeae9526dbc4b486101fab7c3ea7992 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Fri, 16 Feb 2024 16:20:15 +0100 Subject: [PATCH 11/16] chore: update dependencies --- Cargo.lock | 164 +++++++++---------------------------------- Cargo.toml | 8 +-- consensus/src/stl.rs | 2 +- src/stl.rs | 2 +- 4 files changed, 38 insertions(+), 138 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4c644ec4..e83be0c3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "amplify" -version = "4.5.1" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd50780fa78a67bae725dd164bc993500656112815a9301fd8b797e9006803" +checksum = "9e711289a6cb28171b4f0e6c8019c69ff9476050508dc082167575d458ff74d0" dependencies = [ "amplify_apfloat", "amplify_derive", @@ -14,21 +14,19 @@ dependencies = [ "amplify_syn", "ascii", "serde", - "serde_json", - "serde_yaml", "stringly_conversions", - "toml", "wasm-bindgen", ] [[package]] name = "amplify_apfloat" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5b7f29fad2a3def5dfbfed0da85b886eb927a18fe0296c06e39880b7a96db05" +checksum = "72e23f5ede99065fa6957a633498d2728d51016d61dae23b69c866112b7c61ee" dependencies = [ "amplify_num", "bitflags", + "wasm-bindgen", ] [[package]] @@ -45,9 +43,9 @@ dependencies = [ [[package]] name = "amplify_num" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9681187211554ab98f138ba159e90861b136c20afc680dcff2ba82d020721e27" +checksum = "04c009c5c4de814911b177e2ea59e4930bb918978ed3cce4900d846a6ceb0838" dependencies = [ "serde", "wasm-bindgen", @@ -135,9 +133,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "1.3.2" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" [[package]] name = "blake3" @@ -223,9 +221,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f" [[package]] name = "byteorder" @@ -265,7 +263,7 @@ dependencies = [ [[package]] name = "commit_encoding_derive" version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#9562563e1fde21fe7ae6a6a9d36c0115f654a59e" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#5359d8437f5e63289ad0a63ecb66a3bd7d42f816" dependencies = [ "amplify", "amplify_syn", @@ -277,7 +275,7 @@ dependencies = [ [[package]] name = "commit_verify" version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#9562563e1fde21fe7ae6a6a9d36c0115f654a59e" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#5359d8437f5e63289ad0a63ecb66a3bd7d42f816" dependencies = [ "amplify", "commit_encoding_derive", @@ -429,12 +427,6 @@ dependencies = [ "hashbrown", ] -[[package]] -name = "itoa" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" - [[package]] name = "js-sys" version = "0.3.68" @@ -462,12 +454,6 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" -[[package]] -name = "memchr" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" - [[package]] name = "mnemonic" version = "1.0.1" @@ -562,12 +548,6 @@ dependencies = [ "digest", ] -[[package]] -name = "ryu" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" - [[package]] name = "scoped-tls" version = "1.0.1" @@ -611,27 +591,7 @@ checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", -] - -[[package]] -name = "serde_json" -version = "1.0.113" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_spanned" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" -dependencies = [ - "serde", + "syn 2.0.49", ] [[package]] @@ -644,19 +604,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde_yaml" -version = "0.9.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adf8a49373e98a4c5f0ceb5d05aa7c648d75f63774981ed95b7c7443bbd50c6e" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - [[package]] name = "sha2" version = "0.10.8" @@ -679,8 +626,9 @@ dependencies = [ [[package]] name = "strict_encoding" -version = "2.7.0" -source = "git+https://github.com/strict-types/strict-encoding?branch=refactor/io#bdd35d550369590a3e6a86439a55e0b2f2d06766" +version = "2.7.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12eaa6985afa31deacc86cdc4935a36960ae09131a1f4e1db430127ebc4f05d" dependencies = [ "amplify", "half", @@ -689,8 +637,9 @@ dependencies = [ [[package]] name = "strict_encoding_derive" -version = "2.7.0" -source = "git+https://github.com/strict-types/strict-encoding?branch=refactor/io#bdd35d550369590a3e6a86439a55e0b2f2d06766" +version = "2.7.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b1b064a62618a785e6d8f4df13d905dc335b56400d48f9b4f8b12dcba82b260" dependencies = [ "amplify_syn", "heck", @@ -701,8 +650,9 @@ dependencies = [ [[package]] name = "strict_types" -version = "2.7.0" -source = "git+https://github.com/strict-types/strict-types?branch=refactor/io#abc6133b6cfdb9699714c493e5f62175d99fd752" +version = "2.7.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66de5cdf197b68e13fcac9fad7ed288f44052a319a3df3abbaba9c6e52f735b" dependencies = [ "amplify", "baid58", @@ -711,7 +661,7 @@ dependencies = [ "indexmap", "sha2", "strict_encoding", - "vesper", + "vesper-lang", ] [[package]] @@ -737,9 +687,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" dependencies = [ "proc-macro2", "quote", @@ -763,41 +713,7 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", -] - -[[package]] -name = "toml" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.20.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", + "syn 2.0.49", ] [[package]] @@ -812,12 +728,6 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" -[[package]] -name = "unsafe-libyaml" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" - [[package]] name = "version_check" version = "0.9.4" @@ -825,9 +735,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] -name = "vesper" +name = "vesper-lang" version = "0.1.0" -source = "git+https://github.com/UBIDECO/vesper#18107cbbdffeb91d992dc7c76da0640aea152e8f" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f72ebd3b32f16ee8ace2bd3058c2bfa0f4820992bd4ea86e73ba228bb13dd2b0" dependencies = [ "amplify", "strict_encoding", @@ -860,7 +771,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.49", "wasm-bindgen-shared", ] @@ -894,7 +805,7 @@ checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.49", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -927,7 +838,7 @@ checksum = "a5211b7550606857312bba1d978a8ec75692eae187becc5e680444fffc5e6f89" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.49", ] [[package]] @@ -1005,12 +916,3 @@ name = "windows_x86_64_msvc" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" - -[[package]] -name = "winnow" -version = "0.5.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29" -dependencies = [ - "memchr", -] diff --git a/Cargo.toml b/Cargo.toml index f1b46de9..81c9f403 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,9 +22,9 @@ edition = "2021" license = "Apache-2.0" [workspace.dependencies] -amplify = "4.5.1" -strict_encoding = "2.7.0" -strict_types = "2.7.0" +amplify = "4.6.0" +strict_encoding = "2.7.0-beta.1" +strict_types = "2.7.0-beta.1" commit_verify = "0.11.0-beta.3" single_use_seals = "0.11.0-beta.3" bp-consensus = { version = "0.11.0-beta.3", path = "consensus" } @@ -91,6 +91,4 @@ wasm-bindgen-test = "0.3" features = [ "all" ] [patch.crates-io] -strict_encoding = { git = "https://github.com/strict-types/strict-encoding", branch = "refactor/io" } -strict_types = { git = "https://github.com/strict-types/strict-types", branch = "refactor/io" } commit_verify = { git = "https://github.com/LNP-BP/client_side_validation", branch = "v0.11" } diff --git a/consensus/src/stl.rs b/consensus/src/stl.rs index 66996b50..5fa0a644 100644 --- a/consensus/src/stl.rs +++ b/consensus/src/stl.rs @@ -37,7 +37,7 @@ pub const LIB_ID_BITCOIN: &str = pub const LIB_ID_BP_TX: &str = "urn:ubideco:stl:HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy"; pub const LIB_ID_BP_CONSENSUS: &str = - "urn:ubideco:stl:5sEWBARVLN53k9Q4vf8JLPgSxcfUgrxfYYWF8B42vL2q#gamma-quebec-talent"; + "urn:ubideco:stl:7rhLkuvqTy2PpvD2zTFT4veffXutWDxjNgJbFAjU8cUC#join-object-wonder"; #[deprecated(since = "0.10.8", note = "use _bp_tx_stl instead")] fn _bitcoin_stl() -> Result { _bp_tx_stl() } diff --git a/src/stl.rs b/src/stl.rs index 25664069..5c19bee0 100644 --- a/src/stl.rs +++ b/src/stl.rs @@ -32,7 +32,7 @@ use strict_types::{CompileError, LibBuilder, TypeLib}; /// Strict types id for the library providing data types from [`dbc`] and /// [`seals`] crates. pub const LIB_ID_BPCORE: &str = - "urn:ubideco:stl:698cwwfCJw4pzQicV8jBaQJ2rLLphub4qJGYbMndqC2C#bless-rebel-panic"; + "urn:ubideco:stl:c8Tnib31q1p7szyPukEGDoQzJQ5qJwPCn5uZCHUXzB9#cupid-metro-warning"; fn _bp_core_stl() -> Result { LibBuilder::new(libname!(LIB_NAME_BPCORE), tiny_bset! { From 19cf59adea068dbda7a617a1c514b544c008b10d Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Fri, 16 Feb 2024 16:21:28 +0100 Subject: [PATCH 12/16] stl: update --- stl/BPCore@0.1.0.sta | 28 ++++++++++++++-------------- stl/BPCore@0.1.0.stl | Bin 3668 -> 3668 bytes stl/BPCore@0.1.0.sty | 10 +++++----- stl/Bitcoin@0.1.0.sta | 14 +++++++------- stl/Bitcoin@0.1.0.stl | Bin 3336 -> 3336 bytes stl/Bitcoin@0.1.0.sty | 4 ++-- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/stl/BPCore@0.1.0.sta b/stl/BPCore@0.1.0.sta index 94ed71da..acc7e014 100644 --- a/stl/BPCore@0.1.0.sta +++ b/stl/BPCore@0.1.0.sta @@ -1,13 +1,13 @@ -----BEGIN STRICT TYPE LIB----- -Id: 698cwwfCJw4pzQicV8jBaQJ2rLLphub4qJGYbMndqC2C#bless-rebel-panic +Id: c8Tnib31q1p7szyPukEGDoQzJQ5qJwPCn5uZCHUXzB9#cupid-metro-warning Name: BPCore Dependencies: - 55f8bsTvyh7zAeYAiNwL9G1DxgwXzDvE8edcTFJz3Q9H#milan-poncho-gray, - DYafq9UACuYbTpduhcqywBGH97wHYtSUNPiXh5v2Zub9#drama-imagine-extreme, + 57sPvZcwQaziec3ux249XoCMhziQpKB8Yw99U5oRwfqW#deluxe-safari-random, + DzTvt9gGhPUKD8Dkkjk9PDBhkJ4gtWxXWQjxnmUYLNrs#voyage-kimono-disco, HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy -20~CnZ*pY=JfJU>zJB;=bhBCKPB)LHON@H8JZNt%NvJPm-=hp115ng-v&zqpQ&=n89%?b4NiNurpe%p_Di3`1{iZE18?WpZg|dG%})Vk7oBr%DNv+($ +20~CnZ*pY=Jux=&4zPTb9*IMFYW>~BZ&yS~-fAwW*(Pc?@Ubg}3`1{iZE18?WpZg +|dBFtCMqVsrZe&e(V->r|?y|b&t*2isXxNhAA_oAshyzn}Wc6$lVk7oBr%DNv+($ ;q`HHK!gIHa)*%m(-e#9sm3I{@IbYpL6ZUYBGX>?<6X>JGrA>%$n#j0HLDJN5-IK gM_J7b(p+0MPGk2Gl)y2(Rz1Xgc#bS10xxe^o?x}!PNUwajGr*TW+dUY6G&@nZ7) X6RBh6__;a%pgMLV0v$b1}QF=!A)P#jpo4axu-4_As_7EzOC4+`8Vyy2R;!*$Y%* @@ -24,28 +24,28 @@ RbQ5DGQh1^p2tAX-yWl;qtQD1_K0icxhw;^=uPjBlbC`N(q zPM@Gr{imSMTSY5T*7C#t%#3&jHqk=;7%h%D+p%U7S;b1RT)c9`>#Kd;Rz-U=aO9 -W+B2yJj@l<|w +W+B2yJj@l<|w uPSOOLZ&$Vj#jYr62iSlS>y#`6AYfdEy9UVq;KpZ*OJ+M^4XN(CAD)cag{96@elXm4^&WpZn5WkPIkV{24laB^jIP;zf?W(ETUba-i G0`+VYVk7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3ZsHT^UK%K(4i9Ajp1M~R@C -@!4#dQE#lUD;OiKi1RtRlyV^DH$Z)O6zV^MwM3Tut+(v^ToqL -`!1Bvd>wE$lJ0Dz=55=Sy`f{$e1)GNm8+U6V@}N%D0S~qxm +@!4#dQE#lUD;OiKi1RtRlyV^DH$Z)O5LF*foJuzZvri9>m6{oTZGS42tPYA&eRCT +chEu`7izE$lJ0Dz=55=Sy`f{$e1)GNm8+U6V@}N%D0S~qxm _HirtB!lh<{Yi-S-!KI0_27BH<@sVme~^s3>!giV`y)3O=WUxY-Lb#Z*OK#aB^jI P;zf?W(ETUba-iG0`+VYVk7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3ZsHT^UK% -K(4i9Ajp1M~R@C@!4#dQE#lUD;OiKi1RtRlyV^DH$Z)O6zV^M -wM3Tut+(v^ToqL`!1Bvd?w(LK3V&vL%&i(~ao9rExlGMgPx_&tqtqVlwo1}@PEWM +K(4i9Ajp1M~R@C@!4#dQE#lUD;OiKi1RtRlyV^DH$Z)O5LF*foJuzZvri9>m6{oT +ZGS42tPYA&eRCTchEu`7jz(LK3V&vL%&i(~ao9rExlGMgPx_&tqtqVlwo1}@PEWM X4ba&K>D0Y^^HT+rxDK6vW;JU&?LxLM72H?wDC1Zo}=N}D)4mmEQEV`y)3O=WUxY -Lb#Z*OK)VQ_L~bWn0{Z)OGq1ax?5WCHbU6JjIwIj2eqliWu}$@z+_xPw?-wb>Rw -7=FYk8VaL=Li5Yl(a@n1+Ku60FILp}Zw|!7cE!MGSxid=WmX7naAQz%Z*OJ-x?@p --{~Cp>ng-v&zqpQ&=n89%?b4NiNurpe%p_Dih0#5^R?l+2>x*OcO&#*^E;5@PQ20 +7=FYk8VaL=Li5Yl(a@n1+Ku60FILp}Zw|!7cE!MGSxid=WmX7naAQz%Z*OJ-Jux= +&4zPTb9*IMFYW>~BZ&yS~-fAwW*(Pc?@Ubg}h0#5^R?l+2>x*OcO&#*^E;5@PQ20 HKbE5LJk_Il(2xMYoP;zf?W&sbjADBNH?W>M^%H|xc>sh|Dn*!v8^Ea7rh?dzC2n -rQZewU~a!qA&Yiwmya%E*taB^jIP;zf?W(ETUba-iG0`+VYVk7oBr%DNv+($;q` HHK!gIHa)*%m(-e#9sm3ZsHT^UK%K(4i9Ajp1M~R@C@!4#dQE#lUD;OiKi1RtRly -V^DH$Z)O6zV^MwM3Tut+(v^ToqL`!1Bvd>IR`-7%m6{oTZGS42tPYA&eRCTchEu`7iLR`-7%D0Y^^HT+rxDK6vW;JU&?LxLM72H?w DC1Zo}=N}D)4mm5KDV`y)3O=WUxY-Ln(Wo1-haB^jIP;zf?W(ETUba-iG0`+VYVk 7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3ZsHT^UK%K(4i9Ajp1M~R@C@!4#dQE# -lUD;OiKi1RtRlyV^DH$Z)O6zV^MwM3Tut+(v^ToqL`!1Bvd>I +lUD;OiKi1RtRlyV^DH$Z)O5LF*foJuzZvri9>m6{oTZGS42tPYA&eRCTchEu`7iL R`-7%D0S~qxm_HirtB!l h<{Yi-S-!KI0_27BH<@sVme~^s3=TqUX>MdwWnpYocu;h51_TCeWprq7WC1R>5GA >8Wft0d6dj=*oo`t>c$)o5X19O9`rXu=lIsL?cxhw-vE?{96bd-L@NXK=z8qksZ{ diff --git a/stl/BPCore@0.1.0.stl b/stl/BPCore@0.1.0.stl index 3f349b1569d24b3edf64cf1c26f2c069c955c428..7a9248b60723de9ecca720c46e22e034ac40dd8a 100644 GIT binary patch delta 337 zcmca2b44bS%_+b+zbKX2*3j$|--enga-GhVS%2>y$q#q&yqBf7;-*@b`G<|#tvt^8 zxw)AoVW~x#X_W_A&bYt_%KgPWGR(mx zDZ7#boBm6+uAaqq|KR=|eG^`AW%s_lG_}EV(Tv4sR6=Zcobz*YGfTo!i!#$HCokky z*jTB{tUyTD_w$=T0||rb~=^wLEBVElH>^WZ$C<90OByWB~(HbYuY +2SRCdV{d700l@^!MqVsrZe&e(V->r|?y|b&t*2isXxNhAA_oAshyzn}WB~(HbYuY lVTK~nd#>M0oxa3K6 eQdC+Gy3B!Si3U=l~Xz8i!-0pOiyx1DhWbtZ)0mnVRL8&0RRU806-uB3qovfV @@ -18,8 +18,8 @@ nBdcqJ?FPKcnoc2a%*g5LULhlV`u^H10H5kP-wPv8C+3!^a_K-08(4Qq%ag10BKL X@N=XMMs;*`a%D_qVP;lkas>eZ009a~ZggdGZeeUtYXt!T{Gz8SzLEaTf~c{WkYg gkPIjuQHS#3Ua|L6d7%qre3QT2TW>aHwX>fD~0ta?wa&u{KZUMG438@&rwvr8Q$X KK#ha*N>X+Ls92fzOv*E(~7PRRyyV{&P5bO9x+^|=xh7rLW4)L(lQb*FJl;d*r#U -C=Q#deq4+>4pbPWnpGkWpV`p00039Ol4(FO

;yGBGG%U@MZ$v=XJ?|;InIPy66cFfOYp +C=Q#deq4+>4pbPWnpGkWpV`p00039Ol4o6h06-xC2~1^YVPknyX=erk19NF-00;m8KmY&$000000RI 300000001R_!XJ}z_XkT=BaAg787i2zn2@@yi1eqj()!bkeBM6mKIpvEppVUlGa! 4u)OmAarNM&hfXmkYu000CCOmAarRB3Hx1pxp61Px4YV{24tZDn(GVQp{)0RR952 @@ -43,8 +43,8 @@ d30rS1pxpE002M$0000000030|Ns900000AQ)6;zaCAsvb7%zt00#g7KokHBQ)6; zaCA_0Vryl21pxsitM$1O6c@UqIn-Z!6?La^OW}HT7+ugYHG0&^E$M~@Q)O{ZZv_ DW00aqBX=hVoa%pgM1pxsitM$1O6c@UqIn-Z!6?La^OW}HT7+ugYHG0&^E$M~}Q) y>tVRL9kY++{u0|Q}fYykvrZ*FA*26Jg{XKZBy3sY%lXkl|`RC#b^1_A_TY++{s| -2}Ge$j604PW+DNbh7}lo9vizqM9D@0E_Ps>nPPU3}J40Z*FBnVQx@ic>+A3FO

;yGBGG%U@MZ$v=XJ?|;InIPy66cFfOYp +2}Ge$j604PW+DNbh7}lo9vizqM9D@0E_Ps>nPPU3}J40Z*FBnVQx@ic>=)%%tl@; +WNu_lcw-g2$nLVb<*lb*ENIx0;35YAw}@eeBGG%U@MZ$v=XJ?|;InIPy66cFfOYp #JM2r7_Du~`VQ@lnVQyn+NMUnm1pxpD002NB00&fIa6@loWdjBaaCLKNLV0v$b2B m^32=3DXhdOjVKGbzaCLKNL}7GcGEE6^b#rJ$VRT_MP6%>kb7gXNWn@qWa%FUNa& Br1RAF#TWnpGWVRL8&0RRU806-uB4OC%pO=WUxY-LbkbZ7+u00;rE>&2be{ZL08m diff --git a/stl/Bitcoin@0.1.0.stl b/stl/Bitcoin@0.1.0.stl index 39a550714012aa197754fe4a041729d9fe6c7456..741feadf2102b8dbaf012e0f43743bfb4401f15a 100644 GIT binary patch delta 126 zcmeB>>X6c8cgieD&d>X6c8cgieD&d Date: Sun, 18 Feb 2024 20:10:33 +0100 Subject: [PATCH 13/16] stl: support vesper for commitment descriptions --- Cargo.lock | 5 +++-- Cargo.toml | 2 +- src/bin/bpcore-stl.rs | 8 ++++++++ stl/ChainBlindSeal.vesper | 2 ++ stl/SingleBlindSeal.vesper | 2 ++ 5 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 stl/ChainBlindSeal.vesper create mode 100644 stl/SingleBlindSeal.vesper diff --git a/Cargo.lock b/Cargo.lock index e83be0c3..1e11d7af 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -263,7 +263,7 @@ dependencies = [ [[package]] name = "commit_encoding_derive" version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#5359d8437f5e63289ad0a63ecb66a3bd7d42f816" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=layouts#2b822b93e4088a36ca3fc23e5034c07452f322ba" dependencies = [ "amplify", "amplify_syn", @@ -275,7 +275,7 @@ dependencies = [ [[package]] name = "commit_verify" version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=v0.11#5359d8437f5e63289ad0a63ecb66a3bd7d42f816" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=layouts#2b822b93e4088a36ca3fc23e5034c07452f322ba" dependencies = [ "amplify", "commit_encoding_derive", @@ -285,6 +285,7 @@ dependencies = [ "sha2", "strict_encoding", "strict_types", + "vesper-lang", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 81c9f403..1ad8638f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -91,4 +91,4 @@ wasm-bindgen-test = "0.3" features = [ "all" ] [patch.crates-io] -commit_verify = { git = "https://github.com/LNP-BP/client_side_validation", branch = "v0.11" } +commit_verify = { git = "https://github.com/LNP-BP/client_side_validation", branch = "layouts" } diff --git a/src/bin/bpcore-stl.rs b/src/bin/bpcore-stl.rs index 5a2bf95b..435a153f 100644 --- a/src/bin/bpcore-stl.rs +++ b/src/bin/bpcore-stl.rs @@ -24,6 +24,8 @@ use std::fs; use bc::stl::{bp_consensus_stl, bp_tx_stl}; use bp::stl::bp_core_stl; use commit_verify::stl::commit_verify_stl; +use commit_verify::CommitmentLayout; +use seals::txout::{ChainBlindSeal, CloseMethod, SingleBlindSeal}; use strict_encoding::libname; use strict_types::stl::std_stl; use strict_types::{parse_args, SystemBuilder}; @@ -96,6 +98,12 @@ fn main() { let dir = dir.unwrap_or_else(|| ".".to_owned()); + let layout = ChainBlindSeal::::commitment_layout(); + fs::write(format!("{dir}/ChainBlindSeal.vesper",), format!("{layout}")).unwrap(); + + let layout = SingleBlindSeal::::commitment_layout(); + fs::write(format!("{dir}/SingleBlindSeal.vesper",), format!("{layout}")).unwrap(); + let tt = sys.type_tree("BPCore.AnchorMerkleTreeTapretProof").unwrap(); fs::write(format!("{dir}/Anchor.MerkleTree.Tapret.vesper",), format!("{tt}")).unwrap(); diff --git a/stl/ChainBlindSeal.vesper b/stl/ChainBlindSeal.vesper new file mode 100644 index 00000000..79d3e1ff --- /dev/null +++ b/stl/ChainBlindSeal.vesper @@ -0,0 +1,2 @@ +SecretSeal commitment tagged=urn:lnp-bp:seals:secret#2024-02-03 + BlindSealTxPtr serialize diff --git a/stl/SingleBlindSeal.vesper b/stl/SingleBlindSeal.vesper new file mode 100644 index 00000000..b37e992a --- /dev/null +++ b/stl/SingleBlindSeal.vesper @@ -0,0 +1,2 @@ +SecretSeal commitment tagged=urn:lnp-bp:seals:secret#2024-02-03 + BlindSealTxid serialize From e15d688f66f6ceabe13a8e4ab6c8d45208788c19 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Sun, 18 Feb 2024 20:27:05 +0100 Subject: [PATCH 14/16] stl: add Seals vesper description --- Cargo.lock | 7 +++--- Cargo.toml | 1 + src/bin/bpcore-stl.rs | 32 ++++++++++++++++++++++------ stl/Anchor.MerkleBlock.Tapret.vesper | 32 +++++++++++++++------------- stl/Anchor.MerkleProof.Tapret.vesper | 10 ++++----- stl/Anchor.MerkleTree.Opret.vesper | 13 +++++------ stl/Anchor.MerkleTree.Tapret.vesper | 21 +++++++++--------- stl/ChainBlindSeal.vesper | 2 -- stl/Seals.vesper | 29 +++++++++++++++++++++++++ stl/SingleBlindSeal.vesper | 2 -- 10 files changed, 98 insertions(+), 51 deletions(-) delete mode 100644 stl/ChainBlindSeal.vesper create mode 100644 stl/Seals.vesper delete mode 100644 stl/SingleBlindSeal.vesper diff --git a/Cargo.lock b/Cargo.lock index 1e11d7af..d9f80b50 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -263,7 +263,7 @@ dependencies = [ [[package]] name = "commit_encoding_derive" version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=layouts#2b822b93e4088a36ca3fc23e5034c07452f322ba" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=layouts#49345a16d6125af5aab58b2b4e83f3bfd222b097" dependencies = [ "amplify", "amplify_syn", @@ -275,7 +275,7 @@ dependencies = [ [[package]] name = "commit_verify" version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=layouts#2b822b93e4088a36ca3fc23e5034c07452f322ba" +source = "git+https://github.com/LNP-BP/client_side_validation?branch=layouts#49345a16d6125af5aab58b2b4e83f3bfd222b097" dependencies = [ "amplify", "commit_encoding_derive", @@ -652,8 +652,7 @@ dependencies = [ [[package]] name = "strict_types" version = "2.7.0-beta.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66de5cdf197b68e13fcac9fad7ed288f44052a319a3df3abbaba9c6e52f735b" +source = "git+https://github.com/strict-types/strict-types?branch=vesper#266f2d8b6e015522e9e7e72af663af9c9d3c7d2c" dependencies = [ "amplify", "baid58", diff --git a/Cargo.toml b/Cargo.toml index 1ad8638f..1eff42c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -91,4 +91,5 @@ wasm-bindgen-test = "0.3" features = [ "all" ] [patch.crates-io] +strict_types = { git = "https://github.com/strict-types/strict-types", branch = "vesper" } commit_verify = { git = "https://github.com/LNP-BP/client_side_validation", branch = "layouts" } diff --git a/src/bin/bpcore-stl.rs b/src/bin/bpcore-stl.rs index 435a153f..19b51f65 100644 --- a/src/bin/bpcore-stl.rs +++ b/src/bin/bpcore-stl.rs @@ -20,6 +20,7 @@ // limitations under the License. use std::fs; +use std::io::Write; use bc::stl::{bp_consensus_stl, bp_tx_stl}; use bp::stl::bp_core_stl; @@ -98,25 +99,42 @@ fn main() { let dir = dir.unwrap_or_else(|| ".".to_owned()); - let layout = ChainBlindSeal::::commitment_layout(); - fs::write(format!("{dir}/ChainBlindSeal.vesper",), format!("{layout}")).unwrap(); + let mut file = fs::File::create(format!("{dir}/Seals.vesper")).unwrap(); + writeln!( + file, + "{{- + Description: Bitcoin TxO2 blind seals + Author: Dr Maxim Orlovsky + Copyright (C) 2024 LNP/BP Standards Association. All rights reserved. + License: Apache-2.0 +-}} +Seals vesper lexicon=types+commitments +" + ) + .unwrap(); let layout = SingleBlindSeal::::commitment_layout(); - fs::write(format!("{dir}/SingleBlindSeal.vesper",), format!("{layout}")).unwrap(); + writeln!(file, "{layout}").unwrap(); + let layout = ChainBlindSeal::::commitment_layout(); + writeln!(file, "{layout}").unwrap(); + let tt = sys.type_tree("BPCore.BlindSealTxid").unwrap(); + writeln!(file, "{tt}").unwrap(); + let tt = sys.type_tree("BPCore.BlindSealTxPtr").unwrap(); + writeln!(file, "{tt}").unwrap(); let tt = sys.type_tree("BPCore.AnchorMerkleTreeTapretProof").unwrap(); - fs::write(format!("{dir}/Anchor.MerkleTree.Tapret.vesper",), format!("{tt}")).unwrap(); + fs::write(format!("{dir}/Anchor.MerkleTree.Tapret.vesper"), format!("{tt}")).unwrap(); let tt = sys.type_tree("BPCore.AnchorMerkleTreeOpretProof").unwrap(); - fs::write(format!("{dir}/Anchor.MerkleTree.Opret.vesper",), format!("{tt}")).unwrap(); + fs::write(format!("{dir}/Anchor.MerkleTree.Opret.vesper"), format!("{tt}")).unwrap(); let tt = sys .type_tree("BPCore.AnchorMerkleBlockTapretProof") .unwrap(); - fs::write(format!("{dir}/Anchor.MerkleBlock.Tapret.vesper",), format!("{tt}")).unwrap(); + fs::write(format!("{dir}/Anchor.MerkleBlock.Tapret.vesper"), format!("{tt}")).unwrap(); let tt = sys .type_tree("BPCore.AnchorMerkleProofTapretProof") .unwrap(); - fs::write(format!("{dir}/Anchor.MerkleProof.Tapret.vesper",), format!("{tt}")).unwrap(); + fs::write(format!("{dir}/Anchor.MerkleProof.Tapret.vesper"), format!("{tt}")).unwrap(); } diff --git a/stl/Anchor.MerkleBlock.Tapret.vesper b/stl/Anchor.MerkleBlock.Tapret.vesper index e8395f79..2f913607 100644 --- a/stl/Anchor.MerkleBlock.Tapret.vesper +++ b/stl/Anchor.MerkleBlock.Tapret.vesper @@ -1,29 +1,31 @@ AnchorMerkleBlockTapretProof rec txid bytes len=32 aka=Txid - mpcProof rec -- MerkleBlock + mpcProof rec MerkleBlock depth enum { - _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 _8=8 - _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 _16=16 - _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 _24=24 - _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 - } -- U5 + U5 _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 + _8=8 _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 + _16=16 _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 + _24=24 _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 + + } cofactor is U16 crossSection list len=0..MAX32 TreeNode union concealedNode rec tag=0 depth enum { - _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 _8=8 - _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 _16=16 - _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 _24=24 - _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 - } -- U5 + U5 _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 + _8=8 _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 + _16=16 _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 + _24=24 _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 + + } hash bytes len=32 aka=MerkleHash commitmentLeaf rec tag=1 protocolId bytes len=32 aka=ProtocolId message bytes len=32 aka=Message some is U64 option wrapped tag=1 - dbcProof rec -- TapretProof - pathProof rec -- TapretPathProof - some union option wrapped tag=1 -- TapretNodePartner - rightBranch rec wrapped tag=2 -- TapretRightBranch + dbcProof rec TapretProof + pathProof rec TapretPathProof + some union TapretNodePartner option wrapped tag=1 + rightBranch rec TapretRightBranch wrapped tag=2 nonce is U8 diff --git a/stl/Anchor.MerkleProof.Tapret.vesper b/stl/Anchor.MerkleProof.Tapret.vesper index e7e2bb7b..027b1e08 100644 --- a/stl/Anchor.MerkleProof.Tapret.vesper +++ b/stl/Anchor.MerkleProof.Tapret.vesper @@ -1,12 +1,12 @@ AnchorMerkleProofTapretProof rec txid bytes len=32 aka=Txid - mpcProof rec -- MerkleProof + mpcProof rec MerkleProof pos is U32 cofactor is U16 path list len=0..32 element bytes len=32 aka=MerkleHash - dbcProof rec -- TapretProof - pathProof rec -- TapretPathProof - some union option wrapped tag=1 -- TapretNodePartner - rightBranch rec wrapped tag=2 -- TapretRightBranch + dbcProof rec TapretProof + pathProof rec TapretPathProof + some union TapretNodePartner option wrapped tag=1 + rightBranch rec TapretRightBranch wrapped tag=2 nonce is U8 diff --git a/stl/Anchor.MerkleTree.Opret.vesper b/stl/Anchor.MerkleTree.Opret.vesper index 5d71467f..13de5143 100644 --- a/stl/Anchor.MerkleTree.Opret.vesper +++ b/stl/Anchor.MerkleTree.Opret.vesper @@ -1,12 +1,13 @@ AnchorMerkleTreeOpretProof rec txid bytes len=32 aka=Txid - mpcProof rec -- MerkleTree + mpcProof rec MerkleTree depth enum { - _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 _8=8 - _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 _16=16 - _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 _24=24 - _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 - } -- U5 + U5 _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 + _8=8 _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 + _16=16 _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 + _24=24 _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 + + } entropy is U64 cofactor is U16 messages map len=0..MAX24 diff --git a/stl/Anchor.MerkleTree.Tapret.vesper b/stl/Anchor.MerkleTree.Tapret.vesper index b42c9feb..5de7efaa 100644 --- a/stl/Anchor.MerkleTree.Tapret.vesper +++ b/stl/Anchor.MerkleTree.Tapret.vesper @@ -1,12 +1,13 @@ AnchorMerkleTreeTapretProof rec txid bytes len=32 aka=Txid - mpcProof rec -- MerkleTree + mpcProof rec MerkleTree depth enum { - _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 _8=8 - _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 _16=16 - _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 _24=24 - _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 - } -- U5 + U5 _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7 + _8=8 _9=9 _10=10 _11=11 _12=12 _13=13 _14=14 _15=15 + _16=16 _17=17 _18=18 _19=19 _20=20 _21=21 _22=22 _23=23 + _24=24 _25=25 _26=26 _27=27 _28=28 _29=29 _30=30 _31=31 + + } entropy is U64 cofactor is U16 messages map len=0..MAX24 @@ -17,8 +18,8 @@ AnchorMerkleTreeTapretProof rec value tuple _ bytes len=32 aka=ProtocolId _ bytes len=32 aka=Message - dbcProof rec -- TapretProof - pathProof rec -- TapretPathProof - some union option wrapped tag=1 -- TapretNodePartner - rightBranch rec wrapped tag=2 -- TapretRightBranch + dbcProof rec TapretProof + pathProof rec TapretPathProof + some union TapretNodePartner option wrapped tag=1 + rightBranch rec TapretRightBranch wrapped tag=2 nonce is U8 diff --git a/stl/ChainBlindSeal.vesper b/stl/ChainBlindSeal.vesper deleted file mode 100644 index 79d3e1ff..00000000 --- a/stl/ChainBlindSeal.vesper +++ /dev/null @@ -1,2 +0,0 @@ -SecretSeal commitment tagged=urn:lnp-bp:seals:secret#2024-02-03 - BlindSealTxPtr serialize diff --git a/stl/Seals.vesper b/stl/Seals.vesper new file mode 100644 index 00000000..f212aaef --- /dev/null +++ b/stl/Seals.vesper @@ -0,0 +1,29 @@ +{- + Description: Bitcoin TxO2 blind seals + Author: Dr Maxim Orlovsky + Copyright (C) 2024 LNP/BP Standards Association. All rights reserved. + License: Apache-2.0 +-} + +Seals vesper lexicon=types+commitments + +SecretSeal commitment hasher=SHA256 tagged=urn:lnp-bp:seals:secret#2024-02-03 + BlindSealTxid serialized + +SecretSeal commitment hasher=SHA256 tagged=urn:lnp-bp:seals:secret#2024-02-03 + BlindSealTxPtr serialized + +BlindSealTxid rec + method enum Method opretFirst=0 tapretFirst=1 + txid bytes len=32 aka=Txid + vout is U32 aka=Vout + blinding is U64 + +BlindSealTxPtr rec + method enum Method opretFirst=0 tapretFirst=1 + txid union TxPtr + witnessTx is Unit tag=0 + txid bytes len=32 wrapped aka=Txid tag=1 + vout is U32 aka=Vout + blinding is U64 + diff --git a/stl/SingleBlindSeal.vesper b/stl/SingleBlindSeal.vesper deleted file mode 100644 index b37e992a..00000000 --- a/stl/SingleBlindSeal.vesper +++ /dev/null @@ -1,2 +0,0 @@ -SecretSeal commitment tagged=urn:lnp-bp:seals:secret#2024-02-03 - BlindSealTxid serialize From a906aab9c87f754f14f061e4c18623be0c50c7d4 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Mon, 26 Feb 2024 18:25:48 +0100 Subject: [PATCH 15/16] chore: fix clippy lint --- dbc/src/anchor.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbc/src/anchor.rs b/dbc/src/anchor.rs index 29a5cd2b..6299db07 100644 --- a/dbc/src/anchor.rs +++ b/dbc/src/anchor.rs @@ -90,7 +90,7 @@ impl, M: DbcMethod> Anchor txid: witness_txid, mpc_proof, dbc_proof, - _method: PhantomData::default(), + _method: PhantomData, } } } From 2a7e18f678f8b99c2cf506cfd9b78c54a20daf56 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Mon, 26 Feb 2024 18:30:01 +0100 Subject: [PATCH 16/16] chore: update dependencies --- Cargo.lock | 82 +++++++++++++++++++++++++++--------------------------- Cargo.toml | 4 --- 2 files changed, 41 insertions(+), 45 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d9f80b50..0156550e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -221,9 +221,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.0" +version = "3.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f" +checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" [[package]] name = "byteorder" @@ -233,12 +233,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -262,8 +259,9 @@ dependencies = [ [[package]] name = "commit_encoding_derive" -version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=layouts#49345a16d6125af5aab58b2b4e83f3bfd222b097" +version = "0.11.0-beta.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25b4b09de08ea8530138fb8a7ca45d90b53fef8d582a944a1b08eedf3f2583e" dependencies = [ "amplify", "amplify_syn", @@ -274,8 +272,9 @@ dependencies = [ [[package]] name = "commit_verify" -version = "0.11.0-beta.3" -source = "git+https://github.com/LNP-BP/client_side_validation?branch=layouts#49345a16d6125af5aab58b2b4e83f3bfd222b097" +version = "0.11.0-beta.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00351b49be0ce72775b37cca336c3c10e958d810ca097f0712d95a63684b4f99" dependencies = [ "amplify", "commit_encoding_derive", @@ -577,22 +576,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.51", ] [[package]] @@ -618,9 +617,9 @@ dependencies = [ [[package]] name = "single_use_seals" -version = "0.11.0-beta.3" +version = "0.11.0-beta.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b14ebe6be1e12070208a6f2ceb49f946d835b1f7dfb809a4db025de8f5ffe0a" +checksum = "88382ebc20031395d2b3acd6ac70f2fc41dfcaaefa5b61836fe5753837284957" dependencies = [ "amplify_derive", ] @@ -652,7 +651,8 @@ dependencies = [ [[package]] name = "strict_types" version = "2.7.0-beta.1" -source = "git+https://github.com/strict-types/strict-types?branch=vesper#266f2d8b6e015522e9e7e72af663af9c9d3c7d2c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66de5cdf197b68e13fcac9fad7ed288f44052a319a3df3abbaba9c6e52f735b" dependencies = [ "amplify", "baid58", @@ -687,9 +687,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.49" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", @@ -713,7 +713,7 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.51", ] [[package]] @@ -771,7 +771,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.51", "wasm-bindgen-shared", ] @@ -805,7 +805,7 @@ checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.51", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -838,7 +838,7 @@ checksum = "a5211b7550606857312bba1d978a8ec75692eae187becc5e680444fffc5e6f89" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.51", ] [[package]] @@ -862,9 +862,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -877,42 +877,42 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" diff --git a/Cargo.toml b/Cargo.toml index 1eff42c1..8af31dbd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -89,7 +89,3 @@ wasm-bindgen-test = "0.3" [package.metadata.docs.rs] features = [ "all" ] - -[patch.crates-io] -strict_types = { git = "https://github.com/strict-types/strict-types", branch = "vesper" } -commit_verify = { git = "https://github.com/LNP-BP/client_side_validation", branch = "layouts" }