Skip to content

Commit

Permalink
operation: add support for the future computed state
Browse files Browse the repository at this point in the history
  • Loading branch information
dr-orlovsky committed Oct 19, 2024
1 parent 22be374 commit ba88557
Show file tree
Hide file tree
Showing 10 changed files with 141 additions and 97 deletions.
60 changes: 49 additions & 11 deletions src/operation/state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
use core::fmt::Debug;
use std::fmt;
use std::fmt::{Display, Formatter};
use std::ops::Deref;
use std::str::FromStr;

use amplify::confinement::SmallBlob;
Expand Down Expand Up @@ -74,20 +75,51 @@ impl Display for AttachId {
impl_serde_baid64!(AttachId);

/// Binary state data, serialized using strict type notation from the structured data type.
#[derive(Wrapper, Clone, PartialOrd, Ord, Eq, PartialEq, Hash, Debug, Default, From)]
#[wrapper(Deref, AsSlice, BorrowSlice, Index, RangeOps)]
#[derive(Clone, PartialOrd, Ord, Eq, PartialEq, Hash, Debug, From)]
#[derive(StrictType, StrictEncode, StrictDecode)]
#[strict_type(lib = LIB_NAME_RGB_COMMIT)]
#[strict_type(lib = LIB_NAME_RGB_COMMIT, tags = custom)]
#[cfg_attr(
feature = "serde",
derive(Serialize, Deserialize),
serde(crate = "serde_crate", transparent)
serde(crate = "serde_crate", tag = "type", content = "content")
)]
pub struct StateData(SmallBlob);
pub enum StateData {
#[from]
#[strict_type(tag = 0x00)]
Static(SmallBlob),
// TODO: Add computed state - RCP-240327A <https://github.com/RGB-WG/RFC/issues/6>
}

impl StrictSerialize for StateData {}
impl StrictDeserialize for StateData {}

impl AsRef<[u8]> for StateData {
fn as_ref(&self) -> &[u8] { self.as_static().as_ref() }
}

impl Default for StateData {
fn default() -> Self { Self::Static(default!()) }
}

impl Deref for StateData {
type Target = [u8];
fn deref(&self) -> &Self::Target { self.as_slice() }
}

impl Wrapper for StateData {
type Inner = SmallBlob;

fn from_inner(inner: Self::Inner) -> Self { Self::Static(inner) }

fn as_inner(&self) -> &Self::Inner { self.as_static() }

fn into_inner(self) -> Self::Inner {
match self {
StateData::Static(data) => data,
}
}
}

impl StateData {
/// Constructs new state data by performing strict serialization of the provided structured
/// data type.
Expand All @@ -106,12 +138,12 @@ impl StateData {
pub fn from_serialized(typed_data: &impl StrictSerialize) -> Result<Self, SerializeError> {
typed_data
.to_strict_serialized::<STATE_DATA_MAX_LEN>()
.map(Self)
.map(Self::Static)
}

pub fn from_checked(vec: Vec<u8>) -> Self { Self(SmallBlob::from_checked(vec)) }
pub fn from_checked(vec: Vec<u8>) -> Self { Self::Static(SmallBlob::from_checked(vec)) }

pub fn as_slice(&self) -> &[u8] { self.0.as_slice() }
pub fn as_slice(&self) -> &[u8] { self.as_static().as_slice() }

fn to_base64(&self) -> String {
let alphabet =
Expand All @@ -125,7 +157,13 @@ impl StateData {
Alphabet::new(STATE_DATA_BASE32_ALPHABET).expect("invalid state data alphabet");
let engine = GeneralPurpose::new(&alphabet, NO_PAD);
let data = engine.decode(s)?;
Ok(Self(SmallBlob::try_from(data)?))
Ok(Self::Static(SmallBlob::try_from(data)?))
}

pub fn as_static(&self) -> &SmallBlob {
match self {
StateData::Static(data) => data,
}
}
}

Expand Down Expand Up @@ -328,8 +366,8 @@ mod test {

let data = StateData::from_serialized(&MaxData::default()).unwrap();
assert_eq!(data.len(), STATE_DATA_MAX_LEN);
for byte in data.0 {
assert_eq!(byte, 0xAC)
for byte in data.as_static() {
assert_eq!(*byte, 0xAC)
}
}
}
4 changes: 2 additions & 2 deletions src/stl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ use crate::{

/// Strict types id for the library providing data types for RGB consensus.
pub const LIB_ID_RGB_COMMIT: &str =
"stl:ez6C2mcp-R$E5xSD-Svibf8j-6BOqvf9-p65bBKl-FzWb$aw#trident-rover-tape";
"stl:pRLMM7OS-$w8IXpK-!Jl$Sf4-3SrX$vn-OQi9Uzx-USWTXJY#cake-banjo-legend";
/// Strict types id for the library providing data types for RGB consensus.
pub const LIB_ID_RGB_LOGIC: &str =
"stl:LfHcR$Q$-tHON4hL-lwtJ1pT-!gCSP4i-C3fw2FZ-X!HGkwE#leonid-melody-quick";
"stl:rBp7sjZK-WyD4iXW-itLfRey-JguuaFA-ACsLvk2-$P6V0ok#rose-match-almanac";

fn _rgb_commit_stl() -> Result<TypeLib, CompileError> {
LibBuilder::new(libname!(LIB_NAME_RGB_COMMIT), tiny_bset! {
Expand Down
9 changes: 6 additions & 3 deletions stl/AnchoredBundle.vesper
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ TransitionBundle rec
globals map len=0..MAX8 aka=GlobalState
key is U16 aka=GlobalStateType
value list len=1..MAX16 aka=GlobalValues
element bytes len=0..MAX16 aka=StateData
StateData union
static bytes len=0..MAX16 wrapped tag=0
inputs set len=0..MAX16 aka=Inputs
Input rec
prevOut rec Opout
Expand All @@ -55,7 +56,8 @@ TransitionBundle rec
liquid bytes len=32 wrapped aka=SecretSeal tag=1
state rec State
reserved bytes len=1 aka=ReservedBytes1
data bytes len=0..MAX16 aka=StateData
data union StateData
static bytes len=0..MAX16 wrapped tag=0
some bytes len=32 option wrapped aka=AttachId tag=1
lock bytes len=2 aka=ReservedBytes2
revealed rec tag=1
Expand All @@ -76,7 +78,8 @@ TransitionBundle rec
blinding is U64
state rec State
reserved bytes len=1 aka=ReservedBytes1
data bytes len=0..MAX16 aka=StateData
data union StateData
static bytes len=0..MAX16 wrapped tag=0
some bytes len=32 option wrapped aka=AttachId tag=1
lock bytes len=2 aka=ReservedBytes2
valencies set len=0..MAX8 aka=Valencies
Expand Down
120 changes: 60 additions & 60 deletions stl/[email protected]
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
-----BEGIN STRICT TYPE LIB-----
Id: stl:ez6C2mcp-R$E5xSD-Svibf8j-6BOqvf9-p65bBKl-FzWb$aw#trident-rover-tape
Id: stl:pRLMM7OS-$w8IXpK-!Jl$Sf4-3SrX$vn-OQi9Uzx-USWTXJY#cake-banjo-legend
Name: RGBCommit
Dependencies:
StrictTypes#century-comrade-chess,
Expand All @@ -8,7 +8,7 @@ Dependencies:
CommitVerify#miller-pancake-elastic,
Std#ralph-blue-lucky,
Bitcoin#signal-color-cipher
Check-SHA256: a2b07d103862ce1af940fc108bc66785e882bee82491a164259acd89af95c594
Check-SHA256: 38b8f23c84e63b75c8821c0af26956c73850df520dff0c6fccc8ee6e09bc437e

2~tNwLvL+uX><lf>Z4!V_T!KNI`QJ|h6;Zj^jB$MPK+?7Lu3>C`4HI)Q*?4^V{}w`aAk8=6V}(%hjW>8
uUwNXi!t*yd7K}=K!`A`1OPgv%fUznLQq3*a%Ez0HGd)H<Dj;Nz^!EbXX{KgjJY{tu+xnhvc`|O#x?~(
Expand All @@ -30,20 +30,20 @@ Xt{%a=RmHK6WZ%EWRm@*ULd%lgGoFTxU<Z3$DN1yuMa_NaA;veVQ_OyZ)9O}XbV$xa%p39RC#b^a{>TU
76^nC$%1sKzB<;EQA|)S-x88IWKN#S$#@T&w`gPtRC#b^PGN0jYXqYdo~D%m7H6OD0<^0n_2##VWXRdj
y=DB@qgYOj1yf~hNn|nr2|;XhOksItaxnt|25f0@b!lV)3_)ykOksItaxqh7bOiwb2?5A!f_n>Eea4Xl
By!~<Cy&t2#Tr*=pi4ihF+dwUej@+?000000093000000000z0b8~5DZbEEnZe&wsVQf@*P;_zx0sstS
Z*FF3WMyu2X<=*t1_K0hWnpXq+lpEmf)o&SDDwD>KtpQ8M_qJyiO1VIUJ=H=)@ii_1#@&^bY%f%nDE%V
j@4G$n60<C!L?VEU3>8NVcXT~JH<YIB$7}BY;R+00(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@O
Z*FF3WMyu2X<=*t1_K0hWnpXq+lpEmf)o&SDDwD>KtpQ8M_qJyiO1VIUJ=H=)@ii_1#@&^bY%gl9|{AI
iBXS>x{dh6%v!mOA{=H?DCT=p%;*%}eo4IqY;R+00(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@O
Cd;@jJLYKfb7gWS-+`&{Sr=ykNJ#YFTr_BQwWqKF0RaedWp-s@Y-MBs1_K0hWnpXqkGsO?N19ILP2yc~
f4%w>xYW^+v~7{W03rq(;firJ1#@&^bY%f%nDE%Vj@4G$n60<C!L?VEU3>8NVcXT~JH<YIB$7}BY;R+0
f4%w>xYW^+v~7{W03rq(;firJ1#@&^bY%gl9|{AIiBXS>x{dh6%v!mOA{=H?DCT=p%;*%}eo4IqY;R+0
0(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@OCd;@jJLYKfb7gWS-+`&{Sr=ykNJ#YFTr_BQwWqKF
0TV%Ub7^O8LTqVnWK(5fY*ct@WCQ{L3}bI@W@%()Zggp3YybuW1aoC!YysPfS{i~B5OpZ>_>4e9YQ#rf
ba;u!+d5tm#=h2RwFCuobYXO50cM!+*u0L_R@#`Yx46NzSCn0Q@b_Wc)$2ROK7AyTPy}pmV`~C>10COK
ba;u!+d5tm#=h2RwFCuobYXO50jVDf1CWVPkBhpE_{7Xwxr`zlW>P5TdsEEl6yAPGy##D;V`~C>10COK
earHwcS=7M7YzYaI8*bvhMOc?)(rkC#nUFsxGg*8X!CPrawgw_sqk4BX8}k^^xj-FXm+)yumJ%92y$h1
WnpY(WB>*O1aoC!YypA{4X<ncGy!)gsJ>Egn0epQk*PX+nL>xOm%pK>soMo}bYXO50cM!+*u0L_R@#`Y
x46NzSCn0Q@b_Wc)$2ROK7AyTPy}pmV`~C>10COKearHwcS=7M7YzYaI8*bvhMOc?)(rkC#nUFsxGg*8
WnpY(WB>*O1aoC!YypA{4X<ncGy!)gsJ>Egn0epQk*PX+nL>xOm%pK>soMo}bYXO50jVDf1CWVPkBhpE
_{7Xwxr`zlW>P5TdsEEl6yAPGy##D;V`~C>10COKearHwcS=7M7YzYaI8*bvhMOc?)(rkC#nUFsxGg*8
X!CPrawgw_sqk4BX8}k^^xj-FXm+)yumJ%ML349yXKrm}Zgf<6aAgGn0006RL349yXKrm}Zgg`(Y-w&}
Q)OXnRCrKyas>eZ3IT`y;$>KfZ0H=mhJ>?uV<!`3gT=OJ0bYv~7B;a&hq(c=b0B+_A}OcS<+P>xMf>Z^
#E~58SS7t910|t=tEdzJ0000000030000000000OL349yXKrm}Zgg`(Y-w&}Q)OXnRCsA*1pxpG0f+wL
Wmt%8=p4R=gtK{LClh6Z#kObxUW*hKHnBv9xdF_0+y@=_hs4$+_m31+K7j??AsV?cDZDS+`&s+{eNO-Y
Q)OXnRCrKyas>eZ3IT`y;$>KfZ0H=mhJ>?uV<!`3gT=OJ0bYv~7B;a&hq(bPi9uWTR-~OAy#cPM+eZLj
JF*8(jUFI+a$>Z*V)X6+0000000030000000000OL349yXKrm}Zgg`(Y-w&}Q)OXnRCsA*1pxpG0f+wL
Wmt%8=p4R=gtK{LClh6Z#kObxUW*hKHnBv9xdA(lIh$*g@T?;tu#}^5p4x8lu;-}qT<G@)Pp`ZSoRk0n
000000093000000000O<baY{3Xh~!R0RRU806-uB4nkpbWkYXmZE19EWo~o^1_fqpVP|s!dIKHbX?@G`
sCP;~6&DQwR5(-fxrUo0Th<KzD#g<#llNeFa6}P}rq7L!(40)FbL%msz%JU8hqvFyoea2o2y<g-Wo=<e
WC4^?)7t~9tEf?*r}jS36zkMYeK9}${s8)2BzjZ?kPr!UX>Db5bYX39002k^X>)URWpV;~10COKearHw
Expand All @@ -53,8 +53,8 @@ $}AplgPGkh3_fq3Q7_j=2#kPT_9!;lWR>~GYywm#VTK~nd#><i0^jF#$$;RqYi_#e2@QaC_fb3SOOy6Z
gM!uni2C|Kr}onZ3PW#hbaG*1bV+0d0RRU806-uB2}O8xWo~n6Z*B$)17>D+0ot2U6Id2jc94hrndMfL
ayEe1ISdA&%p{mB1!VWk)e2*8Zgg^CV{}Pm0iOsgNjk^^qPoT1+zTRnAg`3vXv9d*8d@RXy~6c6G6imL
ZewKt00<3bcywiMb7^mGRC#b^0c3R^La7y@JVOzJ)&GXo9MeQ_qmbcB?4VH0I#X{*-Uw}FbYWy+bYTJY
dQCW4e)%xftOSp9TD)g5B;KO;Krzd=y+`rt_<1!4XKZg`VQg~&O52Yl{1bRQGoj1vG8y|VVR3azgI)JH
kXXAwA#*Yd3t@9}X=iS2Wo~qH0c#!yN4Y1HHF~AQa2DnK&76y)h*t7i3?~q0FzzNYX9#j-WMyS-Wn=;0
dQCW4e)%xftOSp9TD)g5B;KO;Krzd=y+`rt_<1!4XKZg`VQg~&@lU8jE(OD@jIn+&V5Enw)!?q_7&g|X
@-dvAm{Q*e3t@9}X=iS2Wo~qH0qOIB?vN#-Vw&c`EaZ`bmE6P*s>H+AYtSdOxTqwM0SIzsWMyS-Wn=;0
&#961hviK~w*eJg04e;HYn$=SsX>loIF_owDud_=c42H~ZewX>a{=9jW&m$tWDykZj`7#3_zANbB(SO{
shhGe=&H{tM@<QKVQgt+VRUbD0(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@OCX@GIcyL4!ji%3y
kI<Y<s&nfxrNA!QlZUt8$DItgdIxuDbZ%vHa{_t;9p7nv%krpqN<S4B4FOa*Q}elon<QJ-4E`#`(<aNf
Expand All @@ -72,8 +72,8 @@ X?@G`sCP;~6&DQwR5(-fxrUo0Th<KzD#g<#llNeFa6}P}rq7L!(40)FbL%msz%JU8hqvFyoea2o33O>~
Wpi|4ZEyepNCs(hb9H5M0k-IXh8!q$B6|*YuiTY;OURW8#d%1{rxIXtTaY^?oCkDeb98QHbOOpO9&dx0
-7pM3Z=O*v*GCA9fL-<|HrZsA`NnJlR3~AEBGG%U@MZ$v=XJ?|;InIPy66cFfOYp#JM2r7_Du?5Y;;Uv
d1Z2QF##l3QrKmH@SMtOBR5nML?B>%qbz^!%<&Wu0B;HjDvStiWprU=VRT^u^?FS>S$_F2)vN@Mb6UJ-
F(lri_dqerx4lR4>iBsz2WM<=Vqt7^0ZQACB>WS2JTsxo?J^nrEn#tWN`qbZIFMMoKp}H73kzX$b7^O8
ZDnqBa{+4}2S>RllQnv!#Bdhn{LP$;qli}WS_~%;XE5$2GG_^PVQgh?V`*h`0o{dW0B>Pr5ftu@@z<*O
F(lri_dqerx4lR4>iBsz2WM<=Vqt7^0r5|$LoNlwtBkRJFkqyIt<~VJ=@>TFrt&eIo|sbK2n%6zb7^O8
ZDnqBa{=k|f$oqcqGFon!7SvFf|cCF4ywe%)@#rww794wkO2vHVQgh?V`*h`0o{dW0B>Pr5ftu@@z<*O
39}j`u&O7io3b$Is?RA$O$l~kY-wa+bZ>G3dIKHbX?@G`sCP;~6&DQwR5(-fxrUo0Th<KzD#g<#llNeF
a6}P}rq7L!(40)FbL%msz%JU8hqvFyoea2o4M$~eWpinBQ)6glZD9rl2yJC_VPs)+VE_pMb>vO>-_DBy
8`Vb0jGrW9$=2qSMXvL3H<hRK;Ry+%0000000000{{R30000002WM<=Vqt7^015%s?vf5kh_h+&YE#h%
Expand All @@ -82,12 +82,12 @@ O8d1V_{UOl9{V;uR#^q%<Q2;SHo-KZ`k;Xmr`<4sJYKN!!u{G5u+^j1lf!PF4>GEG0000000000{{R30
JYKN!!u{G5u+^j1lf!PF4>GEG0000000000{{R300000033g#@Wo~0>Wpe-t0Y>fS!w4MxxaL=+DqP^k
2!wz9AHH68xp8!<%Jqp^&Hw-a000000RI3000000010+sY-wa+bZ>G11OfmAZf|a7000011aog~WdH>M
0%CAAe<9`Lptgp<tz`UX>r6F_xjAC6(~TLj#*ewiHf`^rCgHqw;r~cW`-Q<Y(F`)&j2=MXX-gc|r|aC@
VGBoWZ(?C=Q*>c;Wd#8M3IWybk`76TvuW{aQ_%-X`?VwZ$5L?~`!+pRSq0(b70Ut6(?HNf)KK|r_7bGK
6|;}@4mz~X`tFe`+ka89>Z%z40000000030000000000HM{I9mVQf=$VRU6vV`yb<VFm*Ta%FR6a&~28
VGBoWZ(?C=Q*>c;Wd#8M3IWybk`76TvuW{aQ_%-X`?VwZ$5L?~`!+pRSq0(b70UsGkaHMtG~~f>{%bk}
jqU2U-ioF~K?Z%o$(J+YA{RFR0000000030000000000HM{I9mVQf=$VRU6vV`yb<VFm*Ta%FR6a&~28
0(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@OCX@GIcyL4!ji%3ykI<Y<s&nfxrNA!QlZUt8$DItg
dIfW3ZAoMTMe3tp+xFv-0Xp&G?S=|}9rRaeU`~uMrbA>C`}q*rYXqYdo~D%m7H6OD0<^0n_2##VWXRdj
y=DB@qgYOj2yJ0_Npxjxa{vGX4@YcoVqt7kbYXO5RC#b^1pxp60t`oNZ(?C=R$**)Wpf1q00;qlA5<M*
HlSpR+ga^-RcV4|hJjNEezf9*8z>uv7J8lm0000000030{{R3000008Nn~YibZK;X1pxpB0s_h`9&dx0
y=DB@qgYOj2yJ0_Npxjxa{vGX4@YcoVqt7kbYXO5RC#b^1pxp60t`oNZ(?C=R$**)Wpf1q00;q0Qx7!C
PXFHOo2KrE{Y|r^`i&$e4;$+}oNEKWWM*^$0000000030{{R3000008Nn~YibZK;X1pxpB0s_h`9&dx0
-7pM3Z=O*v*GCA9fL-<|HrZsA`NnJlR3}KjBNr;@ghiU?gEXK9KMDE{F?;HZBRuDVqlk6qmbd^20?I5N
Z-bfLFbqC#o>4E?M+l67UG^w8*<_XZ#%uyqCrG{{7b@t4MVjY>G@u4Q3HlB(d+LiLJm-R=h;`?dxBvhE
000000RImF0000000l{IaCLMB0taw%Wp+<>bODnPynwMZT8l5kSW@l}O=!>^xB4~9n`Dx!RtcK)nwJQ2
Expand Down Expand Up @@ -130,47 +130,47 @@ X>$P>NY&HCT(P)^FVARS*Zg3m2dUS*m(weL9PhQe$_)hyWq5RDZgXjGZgT(%0c3R^La7y@JVOzJ)&GXo
J+V~kNcmIwC6DJ=V=(On#Ml4;000000093000000000PbWpib6c4cG&dIKHbX?@G`sCP;~6&DQwR5(-f
xrUo0Th<KzD#g<#{(=@s-*~=0{Fo5>;v2Uql0Ev@(iYu*+LHGLwE58<2vcKdWo=<eWCZ~L2LJ#-AOHnZ
bYXO51_KCkWpib6c4cG&dIKHbX?@G`sCP;~6&DQwR5(-fxrUo0Th<KzD#g<#llNeFa6}P}rq7L!(40)F
bL%msz%JU8hqvFyoea2o1Y}`!VF7y|R2^S7pk#{MS?zgMX@X{kfl~;6wBm#tC>w<qdY%ShbaY{3XaEEP
00eGtZe;)f009JZZ*64&1pxtsaSf9!PV~dK2uo>;u!nFdemP_$e?^hl+JkM;eY!XaQ*>c;Wkg|gVFdvI
2mk;;0000000000|Nj60000003RH4oZgXjLX>V=@3j=0mb^+R(Q4?4eR(6nw`<dldlyWwJ*EtLZq0A(h
ECpou%+(5GZ*FvQVPkYjWC5QDEJ-@Z0;0Ob-P{Wzd?2rs)M&&=&l*}G;Jw22Ix+=rZ*F5{000OMbaG*C
b7^#GZ*Ek1aAg5BQV*^ZmKt8YDf|&5KZQ>65I6*X)C9iYp+?yjr7~y;ZDn*}WMOn+0rh%KI9Y!AFx9LC
k8@hQXE7w+qW3^C%eTEp@#^?_H3w&GZ(?C=a{)@*k0ksPcsw(q%k455`z>K{bxMO>_c)MPyFejxG7AQ2
Zg6#Ua{;NMdRLRko603iZGCpt_aPM;f<qRwaPp@14+5S%nScvnb8~5DZf#|5baMfGPWPl;STfUi2sMWa
ls~2?Z9S;i{Z&{JUi|!FKM~#uc42H~ZewX>a{=9jW&m$tWDykZj`7#3_zANbB(SO{shhGe=&H{tM@<QK
VQgt+VRUbD0(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@OCX@GIcyL4!ji%3ykI<Y<s&nfxrNA!Q
lZUt8$DItgdIxuDbZ%vHa{_t;9p7nv%krpqN<S4B4FOa*Q}elon<QJ-4E`#`(<aNfEj#9D^K)f#Cf|Xn
@L3mU0Z2&n-dr?jcD1Ll0Ra$Ha$#<BX>@6CZbEf#WNc*y0}EqpZ*yf$Wprq7WCB(b*4NaBbD49mT$3z|
G4nQgoFBhHh%l@K06L}1!ALH*5GA>8Wft0d6dj=*oo`t>c$)o5X19O9`rXu=lIsX*Zg6#UO<`~W6`5yb
%eAXO2UPPRaj@((`=>9Tsh)f38uw_!yYu^q5NmF4cWzX2VQzD2bZKvHa{vkfmB{9L9(7`0)Rt93YLV-H
LXe?vTA1;^Q1`ZqBog<<0pcigOKR#SP>4wkiJRXIg{}t6=)Px3WG)ysOdc1(Edc-k000000RR6000000
01#AiVQzD2bZKvHQ)6glZD9rm2yJC_VPs)+VE_pMb>vO>-_DBy8`Vb0jGrW9$=2qSMXvL3H<hRK;Ry+%
0000000000{{R30000002WM<=Vqt7^015%s?vf5kh_h+&YE#h%O8d1V_{UOl9{V;uR#^q%<Q2;SHo-KZ
`k;Xmr`<4sJYKN!!u{G5u+^j1lf!PF4>GEG0000000000{{R300000025D|^b#!w83IT`y;$>KfZ0H=m
hJ>?uV<!`3gT=OJ0bYv~7B;a&hq(bZ!8D=zpn(&o-7tVWUa<1Q{n`|;)uYyv!)~4rGOBq10000000030
000000000BVRLh7XKrm}Zgg`13IT`y;$>KfZ0H=mhJ>?uV<!`3gT=OJ0bYv~7B;a&hq(bZ!8D=zpn(&o
-7tVWUa<1Q{n`|;)uYyv!)~4rGOBq100000000300000000009c42H~ZewX>a{vheM(yUq2ps*m=2xUD
T;RqCgn#@WzFu~@adfH5^@&-|0000000000{{R300000033g#@X=Gt^Z*l+x0ssVVZ*FA(00035b8l^B
00jX8VsJHoA?4$swuZp1Wc+9AOf`(TIbyKWjTy4WkGaM+ZSSEb;k<R>|42*wg~2q@3^Lq|9zft}OB~jx
>)hO74peesZgXjLX>V>+d2nR~0RR934pez?WkYXmZE19EWo~o?0{{nSWo~72X>$Mt0ReiLb7n-LQ-}t{
Ge<czZ7(N7oUd}4fc*$qCbX|AY`y^sbaG*Cb7^#GZ*Bku0s)^0EJ-@Z0;0Ob-P{Wzd?2rs)M&&=&l*}G
;Jw22Ix+z?QV*^ZmKt8YDf|&5KZQ>65I6*X)C9iYp+?yjr7~y&31xV6Wo~n6Z*Bku0s)^0EJ-@Z0;0Ob
-P{Wzd?2rs)M&&=&l*}G;Jw22Ix+!dbsj>g6`?#s5rWnKhSeO?L~x^!;Y#eFP|P}0Z%E!6RC#b^WI=Ot
X=iS8LTqVnWK(5fY*ctqbaDj&00;poG~Qz4rf|COpMQA6DFZhcbS+pFfT9t%(h@vS@2O@10000000030
{{R300000PRC#b^WI=OtX=iS8LTqVnWK(5fY*ct@WCZ~L2mz=z@3K-cx{@*T>hUYl8SF$_`kcru$Cs9L
Ei|vY;iCZn000000096000000000SAVQgh?V`*h`1pxpF0Y>fS!w4MxxaL=+DqP^k2!wz9AHH68xp8!<
%Jqp^&Hw-a000000RI300000001H-OY-Mg^c~p6DWd#8M00I<PLug@XZbEEnZe&wsVQf@*P;_zx0sseM
X>?<6X>I@o0RmPN*4NaBbD49mT$3z|G4nQgoFBhHh%l@K06L}1!AM3Ys4h^n+Zt?u@<&aTIfpUd`<+;g
Ogf;C*Zs6&x77g#Y-w?IX=DHe0RmPN*4NaBbD49mT$3z|G4nQgoFBhHh%l@K06L}1!AM3Ys4h^n+Zt?u
@<&aTIfpUd`<+;gOgf;C*Zs6&x78C^Lug@XZbEEnZe&wsVQf@*X=DTf00&}ebYpL6ZU6-V0#*~&*VKn|
nRBmPlPrrd^EP>$AHP6|FsuXsI;G3ONU+9nu7-Qt<6xS@-s>{OM>iY*&c?b?aZznm(1lyi>j4IAX>oOF
WB>&L0#*~&*VKn|nRBmPlPrrd^EP>$AHP6|FsuXsI;G3ONU+9nu7-Qt<6xS@-s>{OM>iY*&c?b?aZznm
(1lyi>kwE&Xklq?Q)OdvWpq<zVQd5f00&}ebYpL6ZU6-V0#*~&*VKn|nRBmPlPrrd^EP>$AHP6|FsuXs
I;G3ONN5@Byw$T9tCzEwrAszt-P)%HZ|LbH=L2A=l(W4CP5}mNX>oOFWB>&L0#*~&*VKn|nRBmPlPrrd
^EP>$AHP6|FsuXsI;G3ONN5@Byw$T9tCzEwrAszt-P)%HZ|LbH=L2A=l(W4CP6}8<Xklq?RCsA*1OfmD
Vrg_^Z)t7-1pxx}Y!hN5_Bp3Y36tDMM#=e#tGI($UA5U3KNx<*C>jc*f<p7l*U`|S655U7U@unG_-_ux
#CFBNXjx241Z7qM25f0@b!lV(1pxx}Y!hN5_Bp3Y36tDMM#=e#tGI($UA5U3KNx<*C>jc*f<p7l*U`|S
655U7U@unG_-_ux#CFBNXjx241Z7q
bL%msz%JU8hqvFyoea2o1Y}`!VF6524>Zb7|K94GrtXLRO|zu>jU*-y8|yusYXiSzW^@K&baY{3XaEEP
00eGtZe;)f009JZZ*64&1pxtsaSf9!PV~dK2uo>;u!nFdemP_$e?^hl+JkM;eY!XaQ*>c;Wkg|gVFUpH
26J>_bZKJ%1pxpE002M$0000000030{{R300000ARB~Z%b7^#GZ*B$)17>D+0ot2U6Id2jc94hrndMfL
ayEe1ISdA&%p{mB1!VWk)e2*8Zgg^CV{}Pm0iOsgNjk^^qPoT1+zTRnAg`3vXv9d*8d@RXy~6c6G6imL
ZewKt00<6ra$#<BX>@6CZd7@2WdSr&53UoI8eY9A{1GERg--GiI0S#x1is&)M%fmnGH3{GWprU=VRT^u
^?FS>S$_F2)vN@Mb6UJ-F(lri_dqerx4lR4>iBsz2WM<=Vqt7^0r5|$LoNlwtBkRJFkqyIt<~VJ=@>TF
rt&eIo|sbK2nK0xaCLNZ0jZ*TSChz_$|Xx}eRkFNAr%^eLl(1e@}~9=0-ijXfD2)Bb7^O8ZDnqBa{;OS
3~HQXW-oGm^~73C5-+!jGthNMriE}%x)if3>_`cAVQgh?V`*h`0o{dW0B>Pr5ftu@@z<*O39}j`u&O7i
o3b$Is?RA$O$l~kY-wa+bZ>G3dIKHbX?@G`sCP;~6&DQwR5(-fxrUo0Th<KzD#g<#llNeFa6}P}rq7L!
(40)FbL%msz%JU8hqvFyoea2o2X|?7Ze??G0(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@OCd;@j
JLYKfb7gWS-+`&{Sr=ykNJ#YFTr_BQwWqKF0T5JjVQzD2bZKvHLUnFrY-I)m3uA0=b7f6sbZBp60#*~&
*VKn|nRBmPlPrrd^EP>$AHP6|FsuXsI;G3ONG`V!CAn^87TS9h9ibhaZ&^Bcn*B*;w|~I;-PD|t>j-IX
aCLM|VQ>KznP+6nwW~k}RP!Nmu<SJZr!SwWo_pyU_h`er^ZSSpYi@6MZd7t%ZgXjLX>V?G015$>$mV(;
bz)!CmQ_M(k?Vd!kfCo{nDM?)_qK{868FUc?=1|{x^#*6Zw4O&>qKuQcuX_U9cUaeX|w?en#w1#0RR91
00000|Nj60000005L9wuZgXjLX>V>*V`yb<VFm^WZDn*}WMOn+00{wg<W2bB&Wi#Y)kesSpCn_+*5;H&
uJdp=m8bOK2??SA00000000300000000007XKZg`VQg~%3IWybk`76TvuW{aQ_%-X`?VwZ$5L?~`!+pR
Sq0(b70UrO!8D=zpn(&o-7tVWUa<1Q{n`|;)uYyv!)~4rGOBq100000000300000000006X>M?JbaMa-
0f+wLWmt%8=p4R=gtK{LClh6Z#kObxUW*hKHnBv9xdAr8G@<&SffJ|QFn~N>u=2wF+7z(Wqt=tdZk`V^
s(Ana000000093000000000YNb8~5DZf#|5baMa-0f+wLWmt%8=p4R=gtK{LClh6Z#kObxUW*hKHnBv9
xdAr8G@<&SffJ|QFn~N>u=2wF+7z(Wqt=tdZk`V^s(Ana000000093000000000SgVQgh?V`*h`00{v`
?dHP>9R0ZFSEMRj;Km4qfBYZ5UUs>0bg9bqiCNA700000000300000000009c42I3WMOn~asUJZ00eGt
Ze;)f009JZZ*64&1pxwLa5aA+<>R2XhQO_4{AcS-HH^7AVzASV8M4NYxyCka@1Z8)ymjIKNK5;L!8Fkf
GTe+FK;UUh9M-4n+}vRfRB~Z%b7^#GZ*Ek1aAgGn0006GRC#b^LvL+uX>@I6Zgd0#00(DfZe??6a{vVa
0eYBoW<;S=hz7(nM>#ZYFDFBsuX37z{Rmhlw67{`z5xn!a$#<BX>@6CZU6-W0iOsgNjk^^qPoT1+zTRn
Ag`3vXv9d*8d@RXy~6c6G66JF53UoI8eY9A{1GERg--GiI0S#x1is&)M%fmnGH3z`Wq5RDZgXjGZU6-W
0iOsgNjk^^qPoT1+zTRnAg`3vXv9d*8d@RXy~6c6G67_D9zv-Vp*%wog4O?q)g04AaHEjnO6;Ie%sNwV
NZuM$d2nT9L349yXKr&sY-w&}Q)OXnRCrKyas>eZ2mx*8kYNN3&UdX>dj91(yDQyg{VADB)^$BaZ2p8B
wp0NC000000096000000000?Od2nT9L349yXKr&sY-w&}Q)OXnRCsA*1pxpE0at2fNM5hbe(pA;ULH_<
)qgA={!)0DVov#r-kv=fkpTbz000000RR600000000~xMY-Mg^X=QT-0RRaBM(yUq2ps*m=2xUDT;RqC
gn#@WzFu~@adfH5^@&-|0000000000{{R30000003szxlWo~16RC#b^1pxp60u)$7Xklq?LTqVnWK(5f
Y*ctqbaDg&00&}ebYpL6ZU6-V0#*~&*VKn|nRBmPlPrrd^EP>$AHP6|FsuXsI;G3ONJb~9E>N`F8f<{_
M@^MEhcVy#omh=bI-rl&{j_4Y)d2=<X>oOFWB>&L0#*~&*VKn|nRBmPlPrrd^EP>$AHP6|FsuXsI;G3O
NJb~9E>N`F8f<{_M@^MEhcVy#omh=bI-rl&{j_4Y)e~4lXklq?LTqVnWK(5fY*ct@WCQ{L2V!Y-V{d70
00jX8Ruk6O)Q5AKbFW;JEQ>MoHhG*Mzd(pEtONi$rOUxcu*Pw&hI`xNV4B0;>oUbhHyi-Y#=22)QEgSw
g<H?-0S0Voadl~A00jX8Ruk6O)Q5AKbFW;JEQ>MoHhG*Mzd(pEtONi$rOUxcu*Pw&hI`xNV4B0;>oUbh
Hyi-Y#=22)QEgSwg<H?-5LiQKVQFqtWn*$>bW>$vYy<)T2V!Y-V{d7000jX8Ruk6O)Q5AKbFW;JEQ>Mo
HhG*Mzd(pEtONi$rOUxcXc_Cg)w39@m$R6qOEzWQ+NTC@=;<Wq17N9?v%LmR0S0Voadl~A00jX8Ruk6O
)Q5AKbFW;JEQ>MoHhG*Mzd(pEtONi$rOUxcXc_Cg)w39@m$R6qOEzWQ+NTC@=;<Wq17N9?v%LmR3RpvE
VQFqucxhw=0sseMX>?<6X>I@o0Rr`G6JjIwIj2eqliWu}$@z+_xPw?-wb>Rw7=FYk8VaL=Li5Yl(a@n1
+Ku60FILp}Zw|!7cE!MGSxid=WmW+OY-w?IX=DHe0Rr`G6JjIwIj2eqliWu}$@z+_xPw?-wb>Rw7=FYk
8VaL=Li5Yl(a@n1+Ku60FILp}Zw|!7cE!MGSxid=WmW

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

Binary file modified stl/[email protected]
Binary file not shown.
6 changes: 3 additions & 3 deletions stl/[email protected]
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{-
Id: stl:ez6C2mcp-R$E5xSD-Svibf8j-6BOqvf9-p65bBKl-FzWb$aw#trident-rover-tape
Id: stl:pRLMM7OS-$w8IXpK-!Jl$Sf4-3SrX$vn-OQi9Uzx-USWTXJY#cake-banjo-legend
Name: RGBCommit
Version: 0.1.0
Description: Consensus commitment layer for RGB smart contracts
Expand Down Expand Up @@ -226,8 +226,8 @@ data State : reserved CommitVerify.ReservedBytes1
, data StateData
, attach AttachId?
@mnemonic(nissan-pattern-inside)
data StateData : [Byte]
@mnemonic(pasta-pardon-hazard)
data StateData : static [Byte] | (|)
@mnemonic(michael-exact-eric)
data Transition : ffv Ffv
Expand Down
Loading

0 comments on commit ba88557

Please sign in to comment.