Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reserve bytes in anchor for the future new types and SPVs #81

Merged
merged 1 commit into from
Mar 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ getrandom = { version = "0.2", features = ["js"] }
wasm-bindgen-test = "0.3"

[package.metadata.docs.rs]
features = [ "all" ]
features = ["all"]

[patch.crates-io]
commit_verify = { git = "https://github.com/LNP-BP/client_side_validation", branch = "master" }
commit_verify = { git = "https://github.com/LNP-BP/client_side_validation", branch = "reserved" }
13 changes: 13 additions & 0 deletions dbc/src/anchor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@

use bc::{Tx, Txid};
use commit_verify::mpc::{self, Message, ProtocolId};
use commit_verify::ReservedBytes;
use strict_encoding::{StrictDumb, StrictEncode};

use crate::{DbcMethod, Method, LIB_NAME_BPCORE};
Expand Down Expand Up @@ -68,9 +69,15 @@
serde(crate = "serde_crate", rename_all = "camelCase")
)]
pub struct Anchor<L: mpc::Proof + StrictDumb, D: dbc::Proof<M>, M: DbcMethod = Method> {
/// Bytes reserved for enum tag for the future versions of anchors.
pub reserved1: ReservedBytes<1>,

/// Transaction containing deterministic bitcoin commitment.
pub txid: Txid,

/// Bytes reserved for the optional SPV information.
pub reserved2: ReservedBytes<1>,

/// Structured multi-protocol LNPBP-4 data the transaction commits to.
pub mpc_proof: L,

Expand All @@ -87,7 +94,9 @@
/// proofs.
pub fn new(witness_txid: Txid, mpc_proof: L, dbc_proof: D) -> Self {
Self {
reserved1: default!(),

Check warning on line 97 in dbc/src/anchor.rs

View check run for this annotation

Codecov / codecov/patch

dbc/src/anchor.rs#L97

Added line #L97 was not covered by tests
txid: witness_txid,
reserved2: default!(),

Check warning on line 99 in dbc/src/anchor.rs

View check run for this annotation

Codecov / codecov/patch

dbc/src/anchor.rs#L99

Added line #L99 was not covered by tests
mpc_proof,
dbc_proof,
_method: PhantomData,
Expand Down Expand Up @@ -121,7 +130,9 @@
let lnpbp4_proof =
mpc::MerkleBlock::with(&self.mpc_proof, protocol_id.into(), message.into())?;
Ok(Anchor {
reserved1: self.reserved1,

Check warning on line 133 in dbc/src/anchor.rs

View check run for this annotation

Codecov / codecov/patch

dbc/src/anchor.rs#L133

Added line #L133 was not covered by tests
txid: self.txid,
reserved2: self.reserved2,

Check warning on line 135 in dbc/src/anchor.rs

View check run for this annotation

Codecov / codecov/patch

dbc/src/anchor.rs#L135

Added line #L135 was not covered by tests
mpc_proof: lnpbp4_proof,
dbc_proof: self.dbc_proof,
_method: default!(),
Expand Down Expand Up @@ -181,7 +192,9 @@
) -> Result<Anchor<mpc::MerkleProof, D, M>, mpc::LeafNotKnown> {
let lnpbp4_proof = self.mpc_proof.to_merkle_proof(protocol.into())?;
Ok(Anchor {
reserved1: self.reserved1,

Check warning on line 195 in dbc/src/anchor.rs

View check run for this annotation

Codecov / codecov/patch

dbc/src/anchor.rs#L195

Added line #L195 was not covered by tests
txid: self.txid,
reserved2: self.reserved2,

Check warning on line 197 in dbc/src/anchor.rs

View check run for this annotation

Codecov / codecov/patch

dbc/src/anchor.rs#L197

Added line #L197 was not covered by tests
mpc_proof: lnpbp4_proof,
dbc_proof: self.dbc_proof,
_method: default!(),
Expand Down
2 changes: 1 addition & 1 deletion src/stl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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:BeAiDVK898mzgHrmWgxHtysDhmffgMEoDwBgNuZo7QeZ#connect-verona-secret";
"urn:ubideco:stl:9pKFs7Gw7gwerYGVcPCDqiCv5fa165qC6PvFxiotJjaG#rebel-herbert-tourist";

fn _bp_core_stl() -> Result<TypeLib, CompileError> {
LibBuilder::new(libname!(LIB_NAME_BPCORE), tiny_bset! {
Expand Down
2 changes: 2 additions & 0 deletions stl/Anchor.MerkleBlock.Tapret.vesper
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
AnchorMerkleBlockTapretProof rec
reserved1 bytes len=1 aka=ReservedBytes1
txid bytes len=32 aka=Txid
reserved2 bytes len=1 aka=ReservedBytes1
mpcProof rec MerkleBlock
depth enum {
U5 _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7
Expand Down
2 changes: 2 additions & 0 deletions stl/Anchor.MerkleProof.Tapret.vesper
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
AnchorMerkleProofTapretProof rec
reserved1 bytes len=1 aka=ReservedBytes1
txid bytes len=32 aka=Txid
reserved2 bytes len=1 aka=ReservedBytes1
mpcProof rec MerkleProof
pos is U32
cofactor is U16
Expand Down
2 changes: 2 additions & 0 deletions stl/Anchor.MerkleTree.Opret.vesper
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
AnchorMerkleTreeOpretProof rec
reserved1 bytes len=1 aka=ReservedBytes1
txid bytes len=32 aka=Txid
reserved2 bytes len=1 aka=ReservedBytes1
mpcProof rec MerkleTree
depth enum {
U5 _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7
Expand Down
2 changes: 2 additions & 0 deletions stl/Anchor.MerkleTree.Tapret.vesper
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
AnchorMerkleTreeTapretProof rec
reserved1 bytes len=1 aka=ReservedBytes1
txid bytes len=32 aka=Txid
reserved2 bytes len=1 aka=ReservedBytes1
mpcProof rec MerkleTree
depth enum {
U5 _0=0 _1=1 _2=2 _3=3 _4=4 _5=5 _6=6 _7=7
Expand Down
145 changes: 82 additions & 63 deletions stl/BPCore@0.1.0.sta
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
-----BEGIN STRICT TYPE LIB-----
Id: urn:ubideco:stl:BeAiDVK898mzgHrmWgxHtysDhmffgMEoDwBgNuZo7QeZ#connect-verona-secret
Id: urn:ubideco:stl:9pKFs7Gw7gwerYGVcPCDqiCv5fa165qC6PvFxiotJjaG#rebel-herbert-tourist
Name: BPCore
Dependency: 7qvjR4HCwJKF3mxE5GqsAaADces5JDRwb8ajAse9mkz3#exhibit-karate-ritual
Dependency: 7EpM1uymEteG4g4xmF5ntKYX1wXXpbQj5iLiDreH4jWa#protein-donald-cool
Dependency: DzTvt9gGhPUKD8Dkkjk9PDBhkJ4gtWxXWQjxnmUYLNrs#voyage-kimono-disco
Dependency: HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilogy
Checksum-SHA256: 64929409fba4ac73a0e4add2e174504c170ed17008f31180956f05569ceee36c
Checksum-SHA256: f7bced17d414c08d760e039a06c43277e985cc1fba332ddfe415af8a36008cb3

20~CnZ*pY=Wv;<0l-(Pe$^)UD5K7r}*s>bq5$WSxcMKAy3WKnC3`1{iZE18?WpZg
20~CnZ*pY=T(C5e*2&|@7ZL8K8p|GAt|gDDdvc%!k2x;ddcL`H3`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)
Expand All @@ -15,69 +15,88 @@ 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<az
h8d{~gylbAe9D2TWyQW>#f#{Gz8SzLEaTf~c{WkYggkPIjuQHS#3Ua|L6d7%qre2
Ut&TY<W;?3`1{iZE18?WpZg|c?SRpR`-7%<v!(6CSPt8P+`uam~C7&J!(5--hXnL
Ut&TY<W;?3`1{iZE18?WpZg|c?bXqR`-7%<v!(6CSPt8P+`uam~C7&J!(5--hXnL
)^zd;O=WUxY-Ln(Wo0mxe&!uvG+Da^2;||fJ!&Dp*8BS%F@mRg<wbPhR<R0Da&L5
RV{dFpWHmRbQ5DGQh1^p2tAX-yWl;qtQ<OqiuZa`rd(@k;(+5pub8}&5WjLNgh9?
yTI7S;;e;>sZfv!yd427@;7veO2zMB=|GYU;*a%*g5NMUnmT+QYFd;Umr-dgNEFC
uu*?Wk)@WS(Jw`th(K{eY_63r%HmYiwmgY;R+0h0#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<P;zf?W&&ld!77y98=A@kp`8#)*>u>l8sib^<6L(P5~d1+uy|a}<^FsAN
OIm<>^(0cc+l;rYfEIFVSxJaup#|`s@w=<Vq;KpZ*OJ+M^4XN(CAD)c<TE+K3MFy
S<QDhvu9)kY913xn>ag{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)O5zuE8pl-5Z+91EHM|O4)SSvKr$N>Em2?3=
*aagRpp9&E@`k{z!7(TI@Y9B6!g4sB24Po?(Fc@vtHNfU4XGWMX4ba&K>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)O5zuE8pl-5Z+91EHM|O4)
SSvKr$N>Em2?3=*aagRppo(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-Wv;<
0l-(Pe$^)UD5K7r}*s>bq5$WSxcMKAy3WKnCh0#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)O5zuE8pl-5Z+91EHM|O4)SSvKr$N>Em2?3=*aagRpoAR`-7%<v!(6CSPt
8P+`uam~C7&J!(5--hXnL)^zd+WMX4ba&K>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)O5zuE8pl-5Z+91EHM|O4)SSvKr$N>Em2?3=*aagRpoA
R`-7%<v!(6CSPt8P+`uam~C7&J!(5--hXnL)^zd+WMX4ba&K>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&<oK4xzy{V5hX&1W5Lv;vZY-w&}X>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&<oK4xzy{V5hX&1W5Lv;vZY-w&}X>Ml#00<F9c
yMfKV`+3#WnpYocu;h51_K6dWprq7WC1R>5GA>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&<oK4
xzy{V5hX&1W5Lv;{EcyMfKV`+3#WnpYocxhw?0|sqnbZBp60WP-?CAn^87TS9h9i
bhaZ&^Bcn*B*;w|~I;-PD|t>jZRoX=DQRY!hN5_Bp3Y36tDMM#=e#tGI($UA5U3K
Nx<*C>jc*f<p7l*U`|S655U7U@unG_-_ux#CFBNXjx241Z7qPc5iib0`+VYVk7oB
r%DNv+($;q`HHK!gIHa)*%m(-e#9sm3L)b@L&d6G@+l`%qd385?K@+fP1(-9sgE>
i7rMzqbp}mkbZBp60|E+faB^jIMrm?$bN~x<VQ_L~bVg}%b94a;PjGT&bWn0{Z)O
Dn0000AQ)OdvWpq<zVQd8f00#g7Kp+4SRAF#(Wpqw&WMxoca&&HGas&ea2yA6$bW
U$%WdH>M0`+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#!_}<v&iv6xp$jXMoxYtLrT$3;j1OqriHkT{)jk0t<3
!XJ~Xna$#;`XaEHP0XRQmE^$-R$RUwD%Xb~0J!Ic@@+ehVE%-)5lom~G1rJnVaB^
jIP+@dvP;zf?W(EQaaA9(EZe?;#Z)9Zv1OfmAZf|a7000011aog~WdH>M0RemmT>
wB!7L}MA7sFvK#<=RP4S#T1Vv-hhTICs&5e05<ZewKt009eBVQ_L~bWn0{Z)OGp3
2<R_Xi#!*Z)O1##8XmcC%Z%?j5}xa%));D{NyLM&t4DxfsZeKd)RymX>N37a&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
20HKbE5LJk_Il(3r%HmYiwmua&K>DllNeFa6}P}rq7L!(40)FbL%msz%JU8hqvFy
oea2o4pL=vWpZ|9WI}m#WpgpuwYiq_Rlwao{(T?aUNqayF^88E^#IUpx^^~;)zDW
6RB~lyPH$vo15<Ql0RU!LaM+Gq(Fu_0Ocz)^+@GUUoV7w&pu=F9->y0X3z7m=H4*
?DL2hGcZ*om#a%*g5LTqniYfo@;Wpq$-Z*OJ>1qpIxb7gXNWn?h|T(C5e*2&|@7Z
L8K8p|GAt|gDDdvc%!k2x;ddcL`HllNeFa6}P}rq7L!(40)FbL%msz%JU8hqvFyo
ea2o1ax?5WCHbU6JjIwIj2eqliWu}$@z+_xPw?-wb>Rw7=FYk8VaL=Li5Yl(a@n1
+Ku60FILp}Zw|!7cE!MGSxid=WmXAtWpib6c4cHT0$i{(k=DuM$QKdrry9#1TdpO
Kse5vu1&=u{+IqgZbCdUAcyL4!ji%3ykI<Y<s&nfxrNA!QlZUt8$DItgdI)WBV^D
H$Z)O5qur!g@$>Ycu5$>lN%N|><C6B3la-ao|IWF3IzPWQ;&E@`k{z!7(TI@Y9B6
!g4sB24Po?(Fc@vtHNfU4XGWMX4ba&K>D0Y^^HT+rxDK6vW;JU&?LxLM72H?wDC1
Zo}=N}D)4mmEQEV`y)3O=WUxY-K`hZ)0mzVQ_L~bWn0{Z)OGs336p~WpZ|9WHAC<
ur!g@$>Ycu5$>lN%N|><C6B3la-ao|IWF3IzPWRg_h5K%L=laq&yA1JoJ^{7>oKL
kF4~iax8KK|47hp(ba-iG0`+VYVk7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3Zs
HT^UK%K(4i9Ajp1M~R@C@!4#dQE#lUD;OiKi1Rta)tb7gXNWn?k}T(C5e*2&|@7Z
L8K8p|GAt|gDDdvc%!k2x;ddcL`HllNeFa6}P}rq7L!(40)FbL%msz%JU8hqvFyo
ea2o2yJj<P;zf?W&&KWG?CWH<H#2g?xz~d9$T&@kEwfdpaqXPF4}s&xpQ32<^FsA
NOIm<>^(0cc+l;rYfEIFVSxJaup#|`s@w=<Vq;KpZ*OJ+54IneKN{_;j(f`H9Ifk
FzO$PG<c0G$nQ(}f*%Js18$oVkXm4^&WpZn5Wl(Z&Z)Q($a%FT-a&K>D1_cRnWpi
b6c4cHS0$i{(k=DuM$QKdrry9#1TdpOKse5vu1&=u{+IqgZbCdUAcyL4!ji%3ykI
<Y<s&nfxrNA!QlZUt8$DItgdIWTMX=DQRY!hN5_Bp3Y36tDMM#=e#tGI($UA5U3K
Nx<*C>jc*f<p7l*U`|S655U7U@unG_-_ux#CFBNXjx241Z7qUa%FR6a&~28G6Gz%
G?CWH<H#2g?xz~d9$T&@kEwfdpaqXPF4}s&xpR~EV0dsu5sjwLjgQcrOsaG1F{Qv
R+LMR3-^ZN{xOxa}aAQz%Z*OJ-T(C5e*2&|@7ZL8K8p|GAt|gDDdvc%!k2x;ddcL
`Hh0#5^R?l+2>x*OcO&#*^E;5@PQ20HKbE5LJk_Il(2xMYoP;zf?W&uY|&s@;xOg
?z(`#e5a?6_IYcQ><VWCUs+6H1#nJC__mZewU~a!qA&Yiwmua&K>DRAF#(Wpq$-Z
*OJ>1qpIxb7gXNWn?h|T(C5e*2&|@7ZL8K8p|GAt|gDDdvc%!k2x;ddcL`HllNeF
a6}P}rq7L!(40)FbL%msz%JU8hqvFyoea2o1ax?5WCHbU6JjIwIj2eqliWu}$@z+
_xPw?-wb>Rw7=FYk8VaL=Li5Yl(a@n1+Ku60FILp}Zw|!7cE!MGSxid=WmXAtWpi
b6c4cHT0$i{(k=DuM$QKdrry9#1TdpOKse5vu1&=u{+IqgZbCdUAcyL4!ji%3ykI
<Y<s&nfxrNA!QlZUt8$DItgdI)WBV^DH$Z)O5qur!g@$>Ycu5$>lN%N|><C6B3la
-ao|IWF3IzPWRS(LK3V&vL%&i(~ao9rExlGMgPx_&tqtqVlwo1}@PEWMX4ba&K>D
0S~qxm_HirtB!lh<{Yi-S-!KI0_27BH<@sVme~^s3>rahV`y)3O=WUxY-Ln(Wo1u
ra%FT-a&K>D1_cRnWpib6c4cHS0$i{(k=DuM$QKdrry9#1TdpOKse5vu1&=u{+Iq
gZbCdUAcyL4!ji%3ykI<Y<s&nfxrNA!QlZUt8$DItgdIWTMX=DQRY!hN5_Bp3Y36
tDMM#=e#tGI($UA5U3KNx<*C>jc*f<p7l*U`|S655U7U@unG_-_ux#CFBNXjx241
Z7qUa%FR6a&~28G6Gz%G?CWH<H#2g?xz~d9$T&@kEwfdpaqXPF4}s&xpR~EV0dsu
5sjwLjgQcrOsaG1F{QvR+LMR3-^ZN{xOxa}aAQz%Z*OJ-T(C5e*2&|@7ZL8K8p|G
At|gDDdvc%!k2x;ddcL`H2v+xh9_2peQ6^t*6i{K#qnK@6H9cxOWZr*rnbvgj2xM
YoP;zf?W&uY|&s@;xOg?z(`#e5a?6_IYcQ><VWCUs+6H1#nJC_?lZewU~a!qA&Yi
wmya%E*yVQ_L~bWn0{Z)OGs336p~WpZ|9WHAC<ur!g@$>Ycu5$>lN%N|><C6B3la
-ao|IWF3IzPWRg_h5K%L=laq&yA1JoJ^{7>oKLkF4~iax8KK|47hp(ba-iG0`+VY
Vk7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3ZsHT^UK%K(4i9Ajp1M~R@C@!4#dQ
E#lUD;OiKi1Rta)tb7gXNWn?k}T(C5e*2&|@7ZL8K8p|GAt|gDDdvc%!k2x;ddcL
`HllNeFa6}P}rq7L!(40)FbL%msz%JU8hqvFyoea2o2yJj<P;zf?W&&KWG?CWH<H
#2g?xz~d9$T&@kEwfdpaqXPF4}s&xpN3s_kSMcKIKs+Uv3moVa}tNZCo`yYCB}!e
{z}Dbn*yfVq;KpZ*OJ+54IneKN{_;j(f`H9IfkFzO$PG<c0G$nQ(}f*%Js14nk~c
Ze&wsVQf@*P;_zz1O{zobZBp60WP-?CAn^87TS9h9ibhaZ&^Bcn*B*;w|~I;-PD|
t>jZRoX=DMh<v2MM3OK&-ZyL|O9AKqy;o<ascnBzYztQ^B5Fy<Jc5iib0`+VYVk7
oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3L)b@L&d6G@+l`%qd385?K@+fP1(-9sg
E>i7rMzqbqHc?X>Md`Zf5`h2n|APX>MdwWnpYocxhw?1O{zobZBp60WP-?CAn^87
TS9h9ibhaZ&^Bcn*B*;w|~I;-PD|t>jZRoX=DQRY!hN5_Bp3Y36tDMM#=e#tGI($
UA5U3KNx<*C>jc*f<p7l*U`|S655U7U@unG_-_ux#CFBNXjx241Z7qPc5iib0`+V
YVk7oBr%DNv+($;q`HHK!gIHa)*%m(-e#9sm3L)b@L&d6G@+l`%qd385?K@+fP1(
-9sgE>i7rMzqbqHc?X>Md`Zf5`h2oXhiaBOK~X>?O%VQf@*P;_zz0|sqnbZBp60W
P-?CAn^87TS9h9ibhaZ&^Bcn*B*;w|~I;-PD|t>jZRoX=DMh<v2MM3OK&-ZyL|O9
AKqy;o<ascnBzYztQ^B5Fy<Jc5iib0`+VYVk7oBr%DNv+($;q`HHK!gIHa)*%m(-
e#9sm3L)b@L&d6G@+l`%qd385?K@+fP1(-9sgE>i7rMzqbr3~(aBOK~X>?O%VQf@
*X=DZi25n_@Xm4ZzF1HXRxo%|^+Itiop&gxXSvq){{YhrGf57_P)SQy*1ax?5WCH
bU6JjIwIj2eqliWu}$@z+_xPw?-wb>Rw7=FYk8VaL=Li5Yl(a@n1+Ku60FILp}Zw
|!7cE!MGSxid=WmW`sZ*_D6^=uPjBlbC`N(qzPM@Gr{imSMTSY5T*7C#t%#3&jHA
>%$n#j0HLDJN5-IKgM_J7b(p+0MPGk2Gl)y2(Rz22EvjXm4Z#0t#<%a%FTzX>xOP
01I?saB^jIMrm?$bO8!aaB^jIP;zf?W(5HN000V8Wn*$>bW>$vYy|-T2LJ#-AOI0
mVQ_L~bWU$%Wl&*qbZ%vG1OosFY-MJ2PH$vo00jX8^=uPjBlbC`N(qzPM@Gr{imS
MTSY5T*7C#t%#3&jHF}tqlgo$^>um>@6G0l?pFt#Zz&53{9y57aQ#OZ(80SR(xXJ
~XxWnpFj1pxx}Y!hN5_Bp3Y36tDMM#=e#tGI($UA5U3KNx<*C>jc1tl4elKTgFI*
|CjhfZ7VH>n$b={WmS6z<Q)zIiF1e3vy{^XmmnyVQyn+00jX7I6q=8aZ}RBA(1@G
cO9QSWZ!o3C{<Z4_(nsN7ENsh4^&}ra%FT-VRUFva&K>D1_BFkVRCeCWpYk$WMu#
Z0ssVVZ*FA(00035b8l^B00jX70elBt06<F?m6#hB!(lDPxazJAe{fl1k`{GZ<r$
L^1#WL{V`TsU0Si=NaB^jIP;zf?W(EQYaA9<4P;zf?W&sn#Q&MIpyF?|7J7@IF!h
Zhz<R`b!UJw0&k1u|E*nA3UZggdGZeeUtYXbFb6JjIwIj2eqliWu}$@z+_xPw?-w
b>Rw7=FYk8Vad}gm+V(X#23g?#G%T#8*SXRQUS6KbYXtkv-?PH+T_LVQ_L~bW&+&
XmmnyVQyn+1_BIhWoC3vZ)9aiVRL8#^=uPjBlbC`N(qzPM@Gr{imSMTSY5T*7C#t
%#3&jHF}tqlgo$^>um>@6G0l?pFt#Zz&53{9y57aQ#OZ(84RUE`Xmn0*WMxQUb7%
tfY!hN5_Bp3Y36tDMM#=e#tGI($UA5U3KNx<*C>jbeyRPVjiFd`Y2QhLn&64&owk
a*miGSR>-o?7a>3`V;RCrKyas&bZ33q99Ze??GRCoXY009Jacxhw+1pxx}Y!hN5_
Bp3Y36tDMM#=e#tGI($UA5U3KNx<*C>jc*f<p7l*U`|S655U7U@unG_-_ux#CFBN
Xjx241Z7q

-----END STRICT TYPE LIB-----

Binary file modified stl/BPCore@0.1.0.stl
Binary file not shown.
41 changes: 27 additions & 14 deletions stl/BPCore@0.1.0.sty
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{-
Id: urn:ubideco:stl:BeAiDVK898mzgHrmWgxHtysDhmffgMEoDwBgNuZo7QeZ#connect-verona-secret
Id: urn:ubideco:stl:9pKFs7Gw7gwerYGVcPCDqiCv5fa165qC6PvFxiotJjaG#rebel-herbert-tourist
Name: BPCore
Version: 0.1.0
Description: Bitcoin client-side-validation library
Expand All @@ -11,13 +11,14 @@
@context
typelib BPCore

import CommitVerify#7qvjR4HCwJKF3mxE5GqsAaADces5JDRwb8ajAse9mkz3#exhibit-karate-ritual
import CommitVerify#7EpM1uymEteG4g4xmF5ntKYX1wXXpbQj5iLiDreH4jWa#protein-donald-cool
use MerkleTree#side-locate-bonus
use ProtocolId#gamma-banjo-corona
use Message#shampoo-bishop-morgan
use MerkleHash#culture-metro-modular
use MerkleBlock#miracle-antenna-moral
use MerkleProof#labor-hilton-magenta
use ReservedBytes1#joker-lemon-mental
use TreeNode#risk-opinion-orca

import Std#DzTvt9gGhPUKD8Dkkjk9PDBhkJ4gtWxXWQjxnmUYLNrs#voyage-kimono-disco
Expand All @@ -34,33 +35,45 @@ import Bitcoin#HX2UBak8vPsTokug1DGMDvTpzns3xUdwZ7QJdyt4qBA9#speed-atlanta-trilog
use XOnlyPk#evident-finance-promo


@mnemonic(promo-byte-ceramic)
data AnchorMerkleBlockOpretProof : txid Bitcoin.Txid#cowboy-diego-betty
@mnemonic(marvin-austin-fame)
data AnchorMerkleBlockOpretProof : reserved1 CommitVerify.ReservedBytes1#joker-lemon-mental
, txid Bitcoin.Txid#cowboy-diego-betty
, reserved2 CommitVerify.ReservedBytes1#joker-lemon-mental
, mpcProof CommitVerify.MerkleBlock#miracle-antenna-moral
, dbcProof OpretProof

@mnemonic(tarzan-grille-telecom)
data AnchorMerkleBlockTapretProof : txid Bitcoin.Txid#cowboy-diego-betty
@mnemonic(bottle-mozart-mimosa)
data AnchorMerkleBlockTapretProof : reserved1 CommitVerify.ReservedBytes1#joker-lemon-mental
, txid Bitcoin.Txid#cowboy-diego-betty
, reserved2 CommitVerify.ReservedBytes1#joker-lemon-mental
, mpcProof CommitVerify.MerkleBlock#miracle-antenna-moral
, dbcProof TapretProof

@mnemonic(absent-eric-armada)
data AnchorMerkleProofOpretProof : txid Bitcoin.Txid#cowboy-diego-betty
@mnemonic(flag-center-weather)
data AnchorMerkleProofOpretProof : reserved1 CommitVerify.ReservedBytes1#joker-lemon-mental
, txid Bitcoin.Txid#cowboy-diego-betty
, reserved2 CommitVerify.ReservedBytes1#joker-lemon-mental
, mpcProof CommitVerify.MerkleProof#labor-hilton-magenta
, dbcProof OpretProof

@mnemonic(harvest-biscuit-smile)
data AnchorMerkleProofTapretProof : txid Bitcoin.Txid#cowboy-diego-betty
@mnemonic(camel-mentor-taboo)
data AnchorMerkleProofTapretProof : reserved1 CommitVerify.ReservedBytes1#joker-lemon-mental
, txid Bitcoin.Txid#cowboy-diego-betty
, reserved2 CommitVerify.ReservedBytes1#joker-lemon-mental
, mpcProof CommitVerify.MerkleProof#labor-hilton-magenta
, dbcProof TapretProof

@mnemonic(gemini-france-egypt)
data AnchorMerkleTreeOpretProof : txid Bitcoin.Txid#cowboy-diego-betty
@mnemonic(clock-bazooka-cadet)
data AnchorMerkleTreeOpretProof : reserved1 CommitVerify.ReservedBytes1#joker-lemon-mental
, txid Bitcoin.Txid#cowboy-diego-betty
, reserved2 CommitVerify.ReservedBytes1#joker-lemon-mental
, mpcProof CommitVerify.MerkleTree#side-locate-bonus
, dbcProof OpretProof

@mnemonic(forward-spiral-parade)
data AnchorMerkleTreeTapretProof : txid Bitcoin.Txid#cowboy-diego-betty
@mnemonic(vacuum-fluid-acid)
data AnchorMerkleTreeTapretProof : reserved1 CommitVerify.ReservedBytes1#joker-lemon-mental
, txid Bitcoin.Txid#cowboy-diego-betty
, reserved2 CommitVerify.ReservedBytes1#joker-lemon-mental
, mpcProof CommitVerify.MerkleTree#side-locate-bonus
, dbcProof TapretProof

Expand Down
Loading