Skip to content

Commit 7542450

Browse files
committed
operation: improve and document state APIs
1 parent 8267ce2 commit 7542450

12 files changed

+106
-100
lines changed

src/operation/state.rs

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ impl Display for AttachId {
6363

6464
impl_serde_baid64!(AttachId);
6565

66+
/// Binary state data, serialized using strict type notation from the structured data type.
6667
#[derive(Wrapper, Clone, PartialOrd, Ord, Eq, PartialEq, Hash, Debug, From)]
67-
#[wrapper(Deref, BorrowSlice, Index, RangeOps)]
68+
#[wrapper(Deref, AsSlice, BorrowSlice, Index, RangeOps)]
6869
#[derive(StrictType, StrictDumb, StrictEncode, StrictDecode)]
6970
#[strict_type(lib = LIB_NAME_RGB_COMMIT)]
7071
#[cfg_attr(
@@ -77,10 +78,6 @@ pub struct StateData(SmallBlob);
7778
impl StrictSerialize for StateData {}
7879
impl StrictDeserialize for StateData {}
7980

80-
impl AsRef<[u8]> for StateData {
81-
fn as_ref(&self) -> &[u8] { self.0.as_slice() }
82-
}
83-
8481
impl StateData {
8582
pub fn from_checked(vec: Vec<u8>) -> Self { Self(SmallBlob::from_checked(vec)) }
8683

@@ -95,46 +92,55 @@ impl StateData {
9592
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize), serde(crate = "serde_crate"))]
9693
pub struct State {
9794
pub reserved: ReservedBytes<1>,
98-
pub value: StateData,
95+
pub data: StateData,
9996
pub attach: Option<AttachId>,
10097
}
10198

10299
impl From<StateData> for State {
103-
fn from(value: StateData) -> Self {
100+
/// Constructs new state object using the provided pre-serialized binary data. Sets attachment
101+
/// to `None`.
102+
fn from(data: StateData) -> Self {
104103
State {
105104
reserved: default!(),
106-
value,
105+
data,
107106
attach: None,
108107
}
109108
}
110109
}
111110

112111
impl State {
112+
/// Constructs new state object by performing strict serialization of the provided structured
113+
/// data type. Sets attachment to `None`.
114+
///
115+
/// The data type must implement [`StrictSerialize`].
116+
///
117+
/// # NB
118+
///
119+
/// Use the function carefully, since the common pitfall here is to perform double serialization
120+
/// of an already serialized data type, like `SmallBlob`. This produces an invalid state object
121+
/// which can't be properly parsed later.
122+
///
113123
/// # Panics
114124
///
115125
/// If the size of the serialized value exceeds 0xFFFF bytes.
116-
pub fn new(value: impl StrictSerialize) -> Self {
126+
pub fn from_serialized(typed_data: impl StrictSerialize) -> Self {
117127
State {
118128
reserved: default!(),
119-
value: value
129+
data: typed_data
120130
.to_strict_serialized::<U16MAX>()
121131
.expect("unable to fit in the data")
122132
.into(),
123133
attach: None,
124134
}
125135
}
126136

127-
/// # Panics
128-
///
129-
/// If the size of the serialized value exceeds 0xFFFF bytes.
130-
pub fn with(value: impl StrictSerialize, attach: AttachId) -> Self {
137+
/// Constructs new state object using the provided pre-serialized binary data and attachment
138+
/// information.
139+
pub fn with(data: StateData, attach_id: AttachId) -> Self {
131140
State {
132141
reserved: default!(),
133-
value: value
134-
.to_strict_serialized::<U16MAX>()
135-
.expect("unable to fit in the data")
136-
.into(),
137-
attach: Some(attach),
142+
data,
143+
attach: Some(attach_id),
138144
}
139145
}
140146
}

src/stl.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ use crate::{
3737

3838
/// Strict types id for the library providing data types for RGB consensus.
3939
pub const LIB_ID_RGB_COMMIT: &str =
40-
"stl:r43G92Ru-4TQgKzY-eeZQr$e-k0DccV0-6d0mlAI-Dil$Hr4#printer-window-alpine";
40+
"stl:ez6C2mcp-R$E5xSD-Svibf8j-6BOqvf9-p65bBKl-FzWb$aw#trident-rover-tape";
4141
/// Strict types id for the library providing data types for RGB consensus.
4242
pub const LIB_ID_RGB_LOGIC: &str =
43-
"stl:51OgjzV6-F5XuTyt-FMJe4k6-opdtsQd-cptXuc4-FqM7npk#ohio-electra-dilemma";
43+
"stl:LfHcR$Q$-tHON4hL-lwtJ1pT-!gCSP4i-C3fw2FZ-X!HGkwE#leonid-melody-quick";
4444

4545
fn _rgb_commit_stl() -> Result<TypeLib, CompileError> {
4646
LibBuilder::new(libname!(LIB_NAME_RGB_COMMIT), tiny_bset! {

src/validation/logic.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,7 @@ impl OwnedStateSchema {
512512
) -> validation::Status {
513513
let mut status = validation::Status::new();
514514
if type_system
515-
.strict_deserialize_type(self.sem_id, assign.as_state().value.as_ref())
515+
.strict_deserialize_type(self.sem_id, assign.as_state().data.as_ref())
516516
.is_err()
517517
{
518518
status.add_failure(validation::Failure::SchemaInvalidOwnedValue(

src/vm/op_contract.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ impl<S: ContractStateAccess> InstructionSet for ContractOp<S> {
239239
else {
240240
fail!()
241241
};
242-
regs.set_s(*reg, Some(state.value.as_inner()));
242+
regs.set_s(*reg, Some(state.data.as_inner()));
243243
}
244244
ContractOp::LdS(state_type, reg_32, reg) => {
245245
let Some(reg_32) = *regs.get_n(RegA::A16, *reg_32) else {
@@ -255,7 +255,7 @@ impl<S: ContractStateAccess> InstructionSet for ContractOp<S> {
255255
else {
256256
fail!()
257257
};
258-
regs.set_s(*reg, Some(state.value.into_inner()));
258+
regs.set_s(*reg, Some(state.data.into_inner()));
259259
}
260260
ContractOp::LdG(state_type, reg_8, reg_s) => {
261261
let Some(reg_32) = *regs.get_n(RegA::A8, *reg_8) else {

stl/AnchoredBundle.vesper

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ TransitionBundle rec
5555
liquid bytes len=32 wrapped aka=SecretSeal tag=1
5656
state rec State
5757
reserved bytes len=1 aka=ReservedBytes1
58-
value bytes len=0..MAX16 aka=StateData
58+
data bytes len=0..MAX16 aka=StateData
5959
some bytes len=32 option wrapped aka=AttachId tag=1
6060
lock bytes len=2 aka=ReservedBytes2
6161
revealed rec tag=1
@@ -76,7 +76,7 @@ TransitionBundle rec
7676
blinding is U64
7777
state rec State
7878
reserved bytes len=1 aka=ReservedBytes1
79-
value bytes len=0..MAX16 aka=StateData
79+
data bytes len=0..MAX16 aka=StateData
8080
some bytes len=32 option wrapped aka=AttachId tag=1
8181
lock bytes len=2 aka=ReservedBytes2
8282
valencies set len=0..MAX8 aka=Valencies

stl/[email protected]

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
-----BEGIN STRICT TYPE LIB-----
2-
Id: stl:r43G92Ru-4TQgKzY-eeZQr$e-k0DccV0-6d0mlAI-Dil$Hr4#printer-window-alpine
2+
Id: stl:ez6C2mcp-R$E5xSD-Svibf8j-6BOqvf9-p65bBKl-FzWb$aw#trident-rover-tape
33
Name: RGBCommit
44
Dependencies:
55
StrictTypes#century-comrade-chess,
@@ -8,7 +8,7 @@ Dependencies:
88
CommitVerify#miller-pancake-elastic,
99
Std#ralph-blue-lucky,
1010
Bitcoin#signal-color-cipher
11-
Check-SHA256: 9784117eff575534fd00f2c58a4b7e77f7295eb5152e4034fe3b50c9693a9fad
11+
Check-SHA256: a2b07d103862ce1af940fc108bc66785e882bee82491a164259acd89af95c594
1212

1313
2~tNwLvL+uX><lf>Z4!V_T!KNI`QJ|h6;Zj^jB$MPK+?7Lu3>C`4HI)Q*?4^V{}w`aAk8=6V}(%hjW>8
1414
uUwNXi!t*yd7K}=K!`A`1OPgv%fUznLQq3*a%Ez0HGd)H<Dj;Nz^!EbXX{KgjJY{tu+xnhvc`|O#x?~(
@@ -30,20 +30,20 @@ Xt{%a=RmHK6WZ%EWRm@*ULd%lgGoFTxU<Z3$DN1yuMa_NaA;veVQ_OyZ)9O}XbV$xa%p39RC#b^a{>TU
3030
76^nC$%1sKzB<;EQA|)S-x88IWKN#S$#@T&w`gPtRC#b^PGN0jYXqYdo~D%m7H6OD0<^0n_2##VWXRdj
3131
y=DB@qgYOj1yf~hNn|nr2|;XhOksItaxnt|25f0@b!lV)3_)ykOksItaxqh7bOiwb2?5A!f_n>Eea4Xl
3232
By!~<Cy&t2#Tr*=pi4ihF+dwUej@+?000000093000000000z0b8~5DZbEEnZe&wsVQf@*P;_zx0sstS
33-
Z*FF3WMyu2X<=*t1_K0hWnpXq+lpEmf)o&SDDwD>KtpQ8M_qJyiO1VIUJ=H=)@ii_1#@&^bY%ge?_#fa
34-
>f2YbpqsWJ=H5;$3iFlwr`bMCi{X7L`pc*UY;R+00(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@O
33+
Z*FF3WMyu2X<=*t1_K0hWnpXq+lpEmf)o&SDDwD>KtpQ8M_qJyiO1VIUJ=H=)@ii_1#@&^bY%f%nDE%V
34+
j@4G$n60<C!L?VEU3>8NVcXT~JH<YIB$7}BY;R+00(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@O
3535
Cd;@jJLYKfb7gWS-+`&{Sr=ykNJ#YFTr_BQwWqKF0RaedWp-s@Y-MBs1_K0hWnpXqkGsO?N19ILP2yc~
36-
f4%w>xYW^+v~7{W03rq(;firJ1#@&^bY%ge?_#fa>f2YbpqsWJ=H5;$3iFlwr`bMCi{X7L`pc*UY;R+0
36+
f4%w>xYW^+v~7{W03rq(;firJ1#@&^bY%f%nDE%Vj@4G$n60<C!L?VEU3>8NVcXT~JH<YIB$7}BY;R+0
3737
0(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@OCd;@jJLYKfb7gWS-+`&{Sr=ykNJ#YFTr_BQwWqKF
3838
0TV%Ub7^O8LTqVnWK(5fY*ct@WCQ{L3}bI@W@%()Zggp3YybuW1aoC!YysPfS{i~B5OpZ>_>4e9YQ#rf
39-
ba;u!+d5tm#=h2RwFCuobYXO50iy3>uXpO(SFxa*wjk!-PAm%ZmHVgJK1_?@eJc9Ps03_pV`~C>10COK
39+
ba;u!+d5tm#=h2RwFCuobYXO50cM!+*u0L_R@#`Yx46NzSCn0Q@b_Wc)$2ROK7AyTPy}pmV`~C>10COK
4040
earHwcS=7M7YzYaI8*bvhMOc?)(rkC#nUFsxGg*8X!CPrawgw_sqk4BX8}k^^xj-FXm+)yumJ%92y$h1
41-
WnpY(WB>*O1aoC!YypA{4X<ncGy!)gsJ>Egn0epQk*PX+nL>xOm%pK>soMo}bYXO50iy3>uXpO(SFxa*
42-
wjk!-PAm%ZmHVgJK1_?@eJc9Ps03_pV`~C>10COKearHwcS=7M7YzYaI8*bvhMOc?)(rkC#nUFsxGg*8
41+
WnpY(WB>*O1aoC!YypA{4X<ncGy!)gsJ>Egn0epQk*PX+nL>xOm%pK>soMo}bYXO50cM!+*u0L_R@#`Y
42+
x46NzSCn0Q@b_Wc)$2ROK7AyTPy}pmV`~C>10COKearHwcS=7M7YzYaI8*bvhMOc?)(rkC#nUFsxGg*8
4343
X!CPrawgw_sqk4BX8}k^^xj-FXm+)yumJ%ML349yXKrm}Zgf<6aAgGn0006RL349yXKrm}Zgg`(Y-w&}
44-
Q)OXnRCrKyas>eZ3IT`y;$>KfZ0H=mhJ>?uV<!`3gT=OJ0bYv~7B;a&hq(bC!B|E=f}1WXbe`j>AsRK~
45-
st@E%Ar$n40xlXfv!=HI0000000030000000000OL349yXKrm}Zgg`(Y-w&}Q)OXnRCsA*1pxpG0f+wL
46-
Wmt%8=p4R=gtK{LClh6Z#kObxUW*hKHnBv9xdAPU1yT{R3NT&J#qI*G?@;-zlsy+C*oqxc5$cZNpSS=3
44+
Q)OXnRCrKyas>eZ3IT`y;$>KfZ0H=mhJ>?uV<!`3gT=OJ0bYv~7B;a&hq(c=b0B+_A}OcS<+P>xMf>Z^
45+
#E~58SS7t910|t=tEdzJ0000000030000000000OL349yXKrm}Zgg`(Y-w&}Q)OXnRCsA*1pxpG0f+wL
46+
Wmt%8=p4R=gtK{LClh6Z#kObxUW*hKHnBv9xdF_0+y@=_hs4$+_m31+K7j??AsV?cDZDS+`&s+{eNO-Y
4747
000000093000000000O<baY{3Xh~!R0RRU806-uB4nkpbWkYXmZE19EWo~o^1_fqpVP|s!dIKHbX?@G`
4848
sCP;~6&DQwR5(-fxrUo0Th<KzD#g<#llNeFa6}P}rq7L!(40)FbL%msz%JU8hqvFyoea2o2y<g-Wo=<e
4949
WC4^?)7t~9tEf?*r}jS36zkMYeK9}${s8)2BzjZ?kPr!UX>Db5bYX39002k^X>)URWpV;~10COKearHw
@@ -54,7 +54,7 @@ gM!uni2C|Kr}onZ3PW#hbaG*1bV+0d0RRU806-uB2}O8xWo~n6Z*B$)17>D+0ot2U6Id2jc94hrndMfL
5454
ayEe1ISdA&%p{mB1!VWk)e2*8Zgg^CV{}Pm0iOsgNjk^^qPoT1+zTRnAg`3vXv9d*8d@RXy~6c6G6imL
5555
ZewKt00<3bcywiMb7^mGRC#b^0c3R^La7y@JVOzJ)&GXo9MeQ_qmbcB?4VH0I#X{*-Uw}FbYWy+bYTJY
5656
dQCW4e)%xftOSp9TD)g5B;KO;Krzd=y+`rt_<1!4XKZg`VQg~&O52Yl{1bRQGoj1vG8y|VVR3azgI)JH
57-
kXXAwA#*Yd3t@9}X=iS2Wo~qH0UkorY&|`T=JxJ{DhEwJsrs=qdkG&zANZZNzDirSR|s-tWMyS-Wn=;0
57+
kXXAwA#*Yd3t@9}X=iS2Wo~qH0c#!yN4Y1HHF~AQa2DnK&76y)h*t7i3?~q0FzzNYX9#j-WMyS-Wn=;0
5858
&#961hviK~w*eJg04e;HYn$=SsX>loIF_owDud_=c42H~ZewX>a{=9jW&m$tWDykZj`7#3_zANbB(SO{
5959
shhGe=&H{tM@<QKVQgt+VRUbD0(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@OCX@GIcyL4!ji%3y
6060
kI<Y<s&nfxrNA!QlZUt8$DItgdIxuDbZ%vHa{_t;9p7nv%krpqN<S4B4FOa*Q}elon<QJ-4E`#`(<aNf
@@ -73,7 +73,7 @@ Wpi|4ZEyepNCs(hb9H5M0k-IXh8!q$B6|*YuiTY;OURW8#d%1{rxIXtTaY^?oCkDeb98QHbOOpO9&dx0
7373
-7pM3Z=O*v*GCA9fL-<|HrZsA`NnJlR3~AEBGG%U@MZ$v=XJ?|;InIPy66cFfOYp#JM2r7_Du?5Y;;Uv
7474
d1Z2QF##l3QrKmH@SMtOBR5nML?B>%qbz^!%<&Wu0B;HjDvStiWprU=VRT^u^?FS>S$_F2)vN@Mb6UJ-
7575
F(lri_dqerx4lR4>iBsz2WM<=Vqt7^0ZQACB>WS2JTsxo?J^nrEn#tWN`qbZIFMMoKp}H73kzX$b7^O8
76-
ZDnqBa{(Sg(`-FGi{|$3genJ3KdJh$GkXaiL?8H_w!TVRw^s>vVQgh?V`*h`0o{dW0B>Pr5ftu@@z<*O
76+
ZDnqBa{+4}2S>RllQnv!#Bdhn{LP$;qli}WS_~%;XE5$2GG_^PVQgh?V`*h`0o{dW0B>Pr5ftu@@z<*O
7777
39}j`u&O7io3b$Is?RA$O$l~kY-wa+bZ>G3dIKHbX?@G`sCP;~6&DQwR5(-fxrUo0Th<KzD#g<#llNeF
7878
a6}P}rq7L!(40)FbL%msz%JU8hqvFyoea2o4M$~eWpinBQ)6glZD9rl2yJC_VPs)+VE_pMb>vO>-_DBy
7979
8`Vb0jGrW9$=2qSMXvL3H<hRK;Ry+%0000000000{{R30000002WM<=Vqt7^015%s?vf5kh_h+&YE#h%
@@ -130,47 +130,47 @@ X>$P>NY&HCT(P)^FVARS*Zg3m2dUS*m(weL9PhQe$_)hyWq5RDZgXjGZgT(%0c3R^La7y@JVOzJ)&GXo
130130
J+V~kNcmIwC6DJ=V=(On#Ml4;000000093000000000PbWpib6c4cG&dIKHbX?@G`sCP;~6&DQwR5(-f
131131
xrUo0Th<KzD#g<#{(=@s-*~=0{Fo5>;v2Uql0Ev@(iYu*+LHGLwE58<2vcKdWo=<eWCZ~L2LJ#-AOHnZ
132132
bYXO51_KCkWpib6c4cG&dIKHbX?@G`sCP;~6&DQwR5(-fxrUo0Th<KzD#g<#llNeFa6}P}rq7L!(40)F
133-
bL%msz%JU8hqvFyoea2o1$JR<b!7p2A5<M*HlSpR+ga^-RcV4|hJjNEezf9*8z>uv7J8lrVRUq1V`u;b
134-
0ssVVZ*FA(00035b8l^B00jX7gmDd%EKc;pw+KsVi?D}qDSkO*B!5Mb*xG|_(S5o&2~%`obY(<gbYTSn
135-
00;m8KmY&$000000RR6000000018xcVQzD2bZKvH1`7jbW_AJEn^6;37FKqUhx?i3R+Mr!fY&(;2BFL(
136-
m@EZk_srD_V{dMBa$#e1Nn`<^2rNlD$O59e#ogQsB77jPl+<X%NY5HtA>h5j^*S;IZf|a5WdHyO4s>#1
137-
ZgXjLX>V>+d2nR`G*S<)6P6lYy(#<=BR_>s@(?%#f7ArN-=Rj?7Ns(12yJC_VPs)+VFC4eO*mP8`7qV2
138-
1dnrCyk{{a-lF$FG0V5TNAc?Tc{K-TY;R&=Y;yrh+m9st6L>r`q08+u8T&0^adk?AUH3SUSi3+Wb21AC
139-
X>M?JbaMfzqIy@8$eYR~OKp92)%PJ48iGR>vvBgJ_74J{JehzCVRLh7XKrm}Zgg`2Bu=h_EO)*NS%rSp
140-
v4mPy6JFi@(#futLQ(C9G=~)f33g#@Wo~0>Wpe@Dg=PS6VPp{$?vC--s`v@B8YHl)C#jpVFzBk!DMw8S
141-
c42I3WMOn~asqk-9p7nv%krpqN<S4B4FOa*Q}elon<QJ-4E`#`(<YPmV0dsu5sjwLjgQcrOsaG1F{QvR
142-
+LMR3-^ZN{xOxY7X>@L7b8`ZE10COKearHwcS=7M7YzYaI8*bvhMOc?)(rkC#nUFsxGg*8X!CPrawgw_
143-
sqk4BX8}k^^xj-FXm+)yumJ%ORB~Z%b7^#GZ*D?$Ze(m_1_KLYY;SXAO=WawZ)5^i6V}(%hjW>8uUwNX
144-
i!t*yd7K}=K!`A`1OPgv%fU!4w-6<{Ze<qQdlVg^9i4AkI(VA>NoKcy!1~?PoRaGZX>M?JbWLG!0Tr2N
145-
WXrXyKnGOwA#t$mH2bG7pQ)aE=^FQF!@KkQh!AUTZ+C7~a$#<BX>@6CZgT(%0hP$+dLDIRU(}XWLTZug
146-
enOC;Z(5k~zEJnJiX;;E#R0X!j3e@x49J7-$e)m(YP9>st-=HVoW2NPFF^ESoNWOB000000096000000
147-
000nFa$#<BX>@6CZc}4uWo=;w1_*6sbYWy+bYTDq0d?d}_}|Wp0vpvv$c&#PW69R$ltr%da5t5w^x+8!
148-
q5uE@000000RI300000000(DmZ(?C=a{vkf)$WoGNr<y)@oH1i2TJ?3BlyQsaUT0NJyux-;p7#|0XD%j
149-
q57bK6Q|uUfIMEX^1}Vv6tLB!)|10-o)0prc>n+a000000RI300000000wDpaCLNZ015$z{^Dg=h-~N_
150-
zJ`Red1EINWrM}GXaQb}6c#qIM2EQnHo-KZ`k;Xmr`<4sJYKN!!u{G5u+^j1lf!PF4>GEG0000000000
151-
{{R30000003t@9}X=iS2Wo~qH015$z{^Dg=h-~N_zJ`Red1EINWrM}GXaQb}6c#qIM2EQnHo-KZ`k;Xm
152-
r`<4sJYKN!!u{G5u+^j1lf!PF4>GEG0000000000{{R300000033g#@Wo~0>Wpe-t0Y>fS!w4MxxaL=+
153-
DqP^k2!wz9AHH68xp8!<%Jqp^&Hw-a000000RI3000000010+sY-wa+bZ>G11OfmAZf|a7000011aog~
154-
WdH>M0%CAAe<9`Lptgp<tz`UX>r6F_xjAC6(~TLj#*ewiHf`^rCgHqw;r~cW`-Q<Y(F`)&j2=MXX-gc|
155-
r|aC@VGdMsVQzD2bZKvHRC#b^1pxp60uEGpaAiYpZEb0EZDnqB1OosEXJu|>b7^w`1pxtim~&=Cp;L$k
156-
#4|@ZG;J>@L!7U2nt=TXSSGZuDr~+13UqQ|ZgXjLX>V=-1p)z|2rNlD$O59e#ogQsB77jPl+<X%NY5Ht
157-
A>h5j^*S;EG*S<)6P6lYy(#<=BR_>s@(?%#f7ArN-=Rj?7Ns(10tsb!bY*UHX>V=-1p)z|2rNlD$O59e
158-
#ogQsB77jPl+<X%NY5HtA>h5j^*S;EWOW`wsTH9-LlJ`2|Ay5Z(?oEikl{+~pis;@Q*TJ#8dQ03Wn@8f
159-
b7^O8b3$xsZe&wsVQf@*P;_zy0RRXA^kxOk)8wnFJ~qgG_mnJ`4d1kf-}lUzo0o;!g8L|50RR9100000
160-
|Nj60000008B}?2Wn@8fb7^O8b3$xsZe&wsVQf@*X=DWf00;rKKxR=x(r+y-Fkm*P|A!o~FgsmRKz6D!
161-
>O{MSF6ABp0000000030{{R3000009R$**qZewX>a|Hna2?0j!=EDda{kY~=q$*tC#t4Le{2#tvcDZqM
162-
smk?<S<V0e000000093000000000YCVQgh?V|i40aAgGn0006MSVL%GX>LMnX>MdwWnpYocu;h51OfmD
163-
Vrg_^Z)t7-1pxw96V}(%hjW>8uUwNXi!t*yd7K}=K!`A`1OPgv%fU!SC#Wt^wA&hNfbvI8l{tqo-}{|d
164-
jZ8YAkJtUQVz<=+25f0@b!lV(1pxw96V}(%hjW>8uUwNXi!t*yd7K}=K!`A`1OPgv%fU!SC#Wt^wA&hN
165-
fbvI8l{tqo-}{|djZ8YAkJtUQVz<>3SVL%GX>LMnX>MdwWnpYocxhw=0sseMX>?<6X>I@o0RmPN*4NaB
166-
bD49mT$3z|G4nQgoFBhHh%l@K06L}1!AP*iaju4Y+v8xG!`|yM#YZ<B0M5p`QE^diRnUc7&+7pOY-w?I
167-
X=DHe0RmPN*4NaBbD49mT$3z|G4nQgoFBhHh%l@K06L}1!AP*iaju4Y+v8xG!`|yM#YZ<B0M5p`QE^di
168-
RnUc7&+8CaLug@XZc}Ara%FT=WnpXt0sseMX>?<6X>I@o0RmPN*4NaBbD49mT$3z|G4nQgoFBhHh%l@K
169-
06L}1!ANKs>%7&o7^|1Fn59cLW!>7R25;!;B<BNQsg$$522KG6Y-w?IX=DHe0RmPN*4NaBbD49mT$3z|
170-
G4nQgoFBhHh%l@K06L}1!ANKs>%7&o7^|1Fn59cLW!>7R25;!;B<BNQsg$$522KiCLug@XZd7<_WCQ{L
171-
2V!Y-V{d7000jX8^=uPjBlbC`N(qzPM@Gr{imSMTSY5T*7C#t%#3&jHqk=;7%h%D+p%U7S;b1RT)c9`>
172-
#Kd;Rz-U=aO9W+B0S0Voadl~A00jX8^=uPjBlbC`N(qzPM@Gr{imSMTSY5T*7C#t%#3&jHqk=;7%h%D+
173-
p%U7S;b1RT)c9`>#Kd;Rz-U=aO9W+B
133+
bL%msz%JU8hqvFyoea2o1Y}`!VF7y|R2^S7pk#{MS?zgMX@X{kfl~;6wBm#tC>w<qdY%ShbaY{3XaEEP
134+
00eGtZe;)f009JZZ*64&1pxtsaSf9!PV~dK2uo>;u!nFdemP_$e?^hl+JkM;eY!XaQ*>c;Wkg|gVFdvI
135+
2mk;;0000000000|Nj60000003RH4oZgXjLX>V=@3j=0mb^+R(Q4?4eR(6nw`<dldlyWwJ*EtLZq0A(h
136+
ECpou%+(5GZ*FvQVPkYjWC5QDEJ-@Z0;0Ob-P{Wzd?2rs)M&&=&l*}G;Jw22Ix+=rZ*F5{000OMbaG*C
137+
b7^#GZ*Ek1aAg5BQV*^ZmKt8YDf|&5KZQ>65I6*X)C9iYp+?yjr7~y;ZDn*}WMOn+0rh%KI9Y!AFx9LC
138+
k8@hQXE7w+qW3^C%eTEp@#^?_H3w&GZ(?C=a{)@*k0ksPcsw(q%k455`z>K{bxMO>_c)MPyFejxG7AQ2
139+
Zg6#Ua{;NMdRLRko603iZGCpt_aPM;f<qRwaPp@14+5S%nScvnb8~5DZf#|5baMfGPWPl;STfUi2sMWa
140+
ls~2?Z9S;i{Z&{JUi|!FKM~#uc42H~ZewX>a{=9jW&m$tWDykZj`7#3_zANbB(SO{shhGe=&H{tM@<QK
141+
VQgt+VRUbD0(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@OCX@GIcyL4!ji%3ykI<Y<s&nfxrNA!Q
142+
lZUt8$DItgdIxuDbZ%vHa{_t;9p7nv%krpqN<S4B4FOa*Q}elon<QJ-4E`#`(<aNfEj#9D^K)f#Cf|Xn
143+
@L3mU0Z2&n-dr?jcD1Ll0Ra$Ha$#<BX>@6CZbEf#WNc*y0}EqpZ*yf$Wprq7WCB(b*4NaBbD49mT$3z|
144+
G4nQgoFBhHh%l@K06L}1!ALH*5GA>8Wft0d6dj=*oo`t>c$)o5X19O9`rXu=lIsX*Zg6#UO<`~W6`5yb
145+
%eAXO2UPPRaj@((`=>9Tsh)f38uw_!yYu^q5NmF4cWzX2VQzD2bZKvHa{vkfmB{9L9(7`0)Rt93YLV-H
146+
LXe?vTA1;^Q1`ZqBog<<0pcigOKR#SP>4wkiJRXIg{}t6=)Px3WG)ysOdc1(Edc-k000000RR6000000
147+
01#AiVQzD2bZKvHQ)6glZD9rm2yJC_VPs)+VE_pMb>vO>-_DBy8`Vb0jGrW9$=2qSMXvL3H<hRK;Ry+%
148+
0000000000{{R30000002WM<=Vqt7^015%s?vf5kh_h+&YE#h%O8d1V_{UOl9{V;uR#^q%<Q2;SHo-KZ
149+
`k;Xmr`<4sJYKN!!u{G5u+^j1lf!PF4>GEG0000000000{{R300000025D|^b#!w83IT`y;$>KfZ0H=m
150+
hJ>?uV<!`3gT=OJ0bYv~7B;a&hq(bZ!8D=zpn(&o-7tVWUa<1Q{n`|;)uYyv!)~4rGOBq10000000030
151+
000000000BVRLh7XKrm}Zgg`13IT`y;$>KfZ0H=mhJ>?uV<!`3gT=OJ0bYv~7B;a&hq(bZ!8D=zpn(&o
152+
-7tVWUa<1Q{n`|;)uYyv!)~4rGOBq100000000300000000009c42H~ZewX>a{vheM(yUq2ps*m=2xUD
153+
T;RqCgn#@WzFu~@adfH5^@&-|0000000000{{R300000033g#@X=Gt^Z*l+x0ssVVZ*FA(00035b8l^B
154+
00jX8VsJHoA?4$swuZp1Wc+9AOf`(TIbyKWjTy4WkGaM+ZSSEb;k<R>|42*wg~2q@3^Lq|9zft}OB~jx
155+
>)hO74peesZgXjLX>V>+d2nR~0RR934pez?WkYXmZE19EWo~o?0{{nSWo~72X>$Mt0ReiLb7n-LQ-}t{
156+
Ge<czZ7(N7oUd}4fc*$qCbX|AY`y^sbaG*Cb7^#GZ*Bku0s)^0EJ-@Z0;0Ob-P{Wzd?2rs)M&&=&l*}G
157+
;Jw22Ix+z?QV*^ZmKt8YDf|&5KZQ>65I6*X)C9iYp+?yjr7~y&31xV6Wo~n6Z*Bku0s)^0EJ-@Z0;0Ob
158+
-P{Wzd?2rs)M&&=&l*}G;Jw22Ix+!dbsj>g6`?#s5rWnKhSeO?L~x^!;Y#eFP|P}0Z%E!6RC#b^WI=Ot
159+
X=iS8LTqVnWK(5fY*ctqbaDj&00;poG~Qz4rf|COpMQA6DFZhcbS+pFfT9t%(h@vS@2O@10000000030
160+
{{R300000PRC#b^WI=OtX=iS8LTqVnWK(5fY*ct@WCZ~L2mz=z@3K-cx{@*T>hUYl8SF$_`kcru$Cs9L
161+
Ei|vY;iCZn000000096000000000SAVQgh?V`*h`1pxpF0Y>fS!w4MxxaL=+DqP^k2!wz9AHH68xp8!<
162+
%Jqp^&Hw-a000000RI300000001H-OY-Mg^c~p6DWd#8M00I<PLug@XZbEEnZe&wsVQf@*P;_zx0sseM
163+
X>?<6X>I@o0RmPN*4NaBbD49mT$3z|G4nQgoFBhHh%l@K06L}1!AM3Ys4h^n+Zt?u@<&aTIfpUd`<+;g
164+
Ogf;C*Zs6&x77g#Y-w?IX=DHe0RmPN*4NaBbD49mT$3z|G4nQgoFBhHh%l@K06L}1!AM3Ys4h^n+Zt?u
165+
@<&aTIfpUd`<+;gOgf;C*Zs6&x78C^Lug@XZbEEnZe&wsVQf@*X=DTf00&}ebYpL6ZU6-V0#*~&*VKn|
166+
nRBmPlPrrd^EP>$AHP6|FsuXsI;G3ONU+9nu7-Qt<6xS@-s>{OM>iY*&c?b?aZznm(1lyi>j4IAX>oOF
167+
WB>&L0#*~&*VKn|nRBmPlPrrd^EP>$AHP6|FsuXsI;G3ONU+9nu7-Qt<6xS@-s>{OM>iY*&c?b?aZznm
168+
(1lyi>kwE&Xklq?Q)OdvWpq<zVQd5f00&}ebYpL6ZU6-V0#*~&*VKn|nRBmPlPrrd^EP>$AHP6|FsuXs
169+
I;G3ONN5@Byw$T9tCzEwrAszt-P)%HZ|LbH=L2A=l(W4CP5}mNX>oOFWB>&L0#*~&*VKn|nRBmPlPrrd
170+
^EP>$AHP6|FsuXsI;G3ONN5@Byw$T9tCzEwrAszt-P)%HZ|LbH=L2A=l(W4CP6}8<Xklq?RCsA*1OfmD
171+
Vrg_^Z)t7-1pxx}Y!hN5_Bp3Y36tDMM#=e#tGI($UA5U3KNx<*C>jc*f<p7l*U`|S655U7U@unG_-_ux
172+
#CFBNXjx241Z7qM25f0@b!lV(1pxx}Y!hN5_Bp3Y36tDMM#=e#tGI($UA5U3KNx<*C>jc*f<p7l*U`|S
173+
655U7U@unG_-_ux#CFBNXjx241Z7q
174174

175175
-----END STRICT TYPE LIB-----
176176

stl/[email protected]

-1 Bytes
Binary file not shown.

stl/[email protected]

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{-
2-
Id: stl:r43G92Ru-4TQgKzY-eeZQr$e-k0DccV0-6d0mlAI-Dil$Hr4#printer-window-alpine
2+
Id: stl:ez6C2mcp-R$E5xSD-Svibf8j-6BOqvf9-p65bBKl-FzWb$aw#trident-rover-tape
33
Name: RGBCommit
44
Version: 0.1.0
55
Description: Consensus commitment layer for RGB smart contracts
@@ -221,9 +221,9 @@ data Schema : ffv Ffv
221221
@mnemonic(ramirez-patron-simon)
222222
data SchemaId : [Byte ^ 32]
223223

224-
@mnemonic(trapeze-gustav-shoe)
224+
@mnemonic(logo-plato-shadow)
225225
data State : reserved CommitVerify.ReservedBytes1
226-
, value StateData
226+
, data StateData
227227
, attach AttachId?
228228

229229
@mnemonic(nissan-pattern-inside)

0 commit comments

Comments
 (0)