Skip to content

Commit

Permalink
Merge pull request #267 from RGB-WG/nonce
Browse files Browse the repository at this point in the history
Further improvements to consensus ordering
  • Loading branch information
dr-orlovsky authored Aug 28, 2024
2 parents 333b3b1 + 1f6e982 commit 4f67584
Show file tree
Hide file tree
Showing 14 changed files with 81 additions and 59 deletions.
6 changes: 2 additions & 4 deletions _typos.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ Atack = "Atack"

[default]
extend-ignore-re = [
# Don't correct RGB address
"[0-9A-Za-z]{7}-[0-9A-Za-z]{9}-[0-9A-Za-z]{9}-[0-9A-Za-z]{9}-[0-9A-Za-z]{9}-[0-9A-Za-z]{6}",
"rgb:[0-9A-Za-z-]+",
"[0-9A-Za-z]{49}"
# Don't correct URIs
"([a-z]+:)*[$!0-9A-Za-z-]+",
]
4 changes: 2 additions & 2 deletions src/operation/commit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ pub enum TypeCommitment {
#[commit_encode(strategy = strict, id = OpId)]
pub struct OpCommitment {
pub ffv: Ffv,
pub nonce: u8,
pub nonce: u64,
pub op_type: TypeCommitment,
pub metadata: StrictHash,
pub globals: MerkleHash,
Expand All @@ -287,7 +287,7 @@ impl Genesis {
};
OpCommitment {
ffv: self.ffv,
nonce: u8::MAX,
nonce: u64::MAX,
op_type: TypeCommitment::Genesis(base),
metadata: self.metadata.commit_id(),
globals: MerkleHash::merklize(&self.globals),
Expand Down
12 changes: 6 additions & 6 deletions src/operation/operations.rs
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ pub trait Operation {

/// Returns nonce used in consensus ordering of state transitions and
/// extensions.
fn nonce(&self) -> u8;
fn nonce(&self) -> u64;

/// Returns [`Option::Some`]`(`[`TransitionType`]`)` for transitions or
/// [`Option::None`] for genesis and extension operation types
Expand Down Expand Up @@ -383,7 +383,7 @@ impl StrictDeserialize for Genesis {}
pub struct Extension {
pub ffv: Ffv,
pub contract_id: ContractId,
pub nonce: u8,
pub nonce: u64,
pub extension_type: ExtensionType,
pub metadata: Metadata,
pub globals: GlobalState,
Expand Down Expand Up @@ -416,7 +416,7 @@ impl PartialOrd for Extension {
pub struct Transition {
pub ffv: Ffv,
pub contract_id: ContractId,
pub nonce: u8,
pub nonce: u64,
pub transition_type: TransitionType,
pub metadata: Metadata,
pub globals: GlobalState,
Expand Down Expand Up @@ -519,7 +519,7 @@ impl Operation for Genesis {
fn contract_id(&self) -> ContractId { ContractId::from_inner(self.id().into_inner()) }

#[inline]
fn nonce(&self) -> u8 { u8::MAX }
fn nonce(&self) -> u64 { u64::MAX }

#[inline]
fn transition_type(&self) -> Option<TransitionType> { None }
Expand Down Expand Up @@ -564,7 +564,7 @@ impl Operation for Extension {
fn contract_id(&self) -> ContractId { self.contract_id }

#[inline]
fn nonce(&self) -> u8 { self.nonce }
fn nonce(&self) -> u64 { self.nonce }

#[inline]
fn transition_type(&self) -> Option<TransitionType> { None }
Expand Down Expand Up @@ -609,7 +609,7 @@ impl Operation for Transition {
fn contract_id(&self) -> ContractId { self.contract_id }

#[inline]
fn nonce(&self) -> u8 { self.nonce }
fn nonce(&self) -> u64 { self.nonce }

#[inline]
fn transition_type(&self) -> Option<TransitionType> { Some(self.transition_type) }
Expand Down
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:eKthGp7I-52YYwm!-nkAFB7$-0X9zHac-f5pAUKf-V01EhSc#pretend-carpet-caesar";
"stl:ZMTVCU25-QDo98xR-wI91wcu-ydb7kui-QfZbF$n-0KDS2ow#tuna-safari-design";
/// Strict types id for the library providing data types for RGB consensus.
pub const LIB_ID_RGB_LOGIC: &str =
"stl:Pyd01gNn-B3o3lfj-4y6pZ5a-qSgCE1x-0J7gL!C-raacTJs#memphis-martin-jump";
"stl:bioTBozT-NqelHGE-SPbnpMA-XBNSbXZ-6X0dANE-WHVirL8#explain-marvin-bless";

fn _rgb_commit_stl() -> Result<TypeLib, CompileError> {
LibBuilder::new(libname!(LIB_NAME_RGB_COMMIT), tiny_bset! {
Expand Down
2 changes: 1 addition & 1 deletion src/validation/consignment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ impl<'op> Operation for OpRef<'op> {
}
}

fn nonce(&self) -> u8 {
fn nonce(&self) -> u64 {
match self {
Self::Genesis(op) => op.nonce(),
Self::Transition(op) => op.nonce(),
Expand Down
30 changes: 23 additions & 7 deletions src/vm/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -170,11 +170,13 @@ impl<'op> OrdOpRef<'op> {
OrdOpRef::Genesis(_) => OpOrd::Genesis,
OrdOpRef::Transition(op, _, witness_ord) => OpOrd::Transition {
witness: *witness_ord,
ty: op.transition_type,
nonce: op.nonce,
opid: op.id(),
},
OrdOpRef::Extension(op, _, witness_ord) => OpOrd::Extension {
witness: *witness_ord,
ty: op.extension_type,
nonce: op.nonce,
opid: op.id(),
},
Expand Down Expand Up @@ -215,7 +217,7 @@ impl<'op> Operation for OrdOpRef<'op> {
}
}

fn nonce(&self) -> u8 {
fn nonce(&self) -> u64 {
match self {
OrdOpRef::Genesis(op) => op.nonce(),
OrdOpRef::Transition(op, ..) => op.nonce(),
Expand Down Expand Up @@ -415,15 +417,15 @@ pub enum OpOrd {
#[strict_type(tag = 0x01)]
Extension {
witness: WitnessOrd,
// TODO: Consider using extension type here
nonce: u8,
ty: ExtensionType,
nonce: u64,
opid: OpId,
},
#[strict_type(tag = 0xFF)]
Transition {
witness: WitnessOrd,
// TODO: Consider using transition type here
nonce: u8,
ty: TransitionType,
nonce: u64,
opid: OpId,
},
}
Expand Down Expand Up @@ -465,20 +467,34 @@ impl GlobalOrd {
idx,
}
}
pub fn transition(opid: OpId, idx: u16, nonce: u8, witness: WitnessOrd) -> Self {
pub fn transition(
opid: OpId,
idx: u16,
ty: TransitionType,
nonce: u64,
witness: WitnessOrd,
) -> Self {
Self {
op_ord: OpOrd::Transition {
witness,
ty,
nonce,
opid,
},
idx,
}
}
pub fn extension(opid: OpId, idx: u16, nonce: u8, witness: WitnessOrd) -> Self {
pub fn extension(
opid: OpId,
idx: u16,
ty: ExtensionType,
nonce: u64,
witness: WitnessOrd,
) -> Self {
Self {
op_ord: OpOrd::Extension {
witness,
ty,
nonce,
opid,
},
Expand Down
2 changes: 1 addition & 1 deletion stl/AnchoredBundle.vesper
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ TransitionBundle rec
value rec Transition
ffv is U16 aka=Ffv
contractId bytes len=32 aka=ContractId
nonce is U8
nonce is U64
transitionType is U16 aka=TransitionType
metadata map len=0..MAX8 aka=Metadata
key is U16 aka=MetaType
Expand Down
14 changes: 7 additions & 7 deletions stl/RGBCommit@0.1.0.sta
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
-----BEGIN STRICT TYPE LIB-----
Id: stl:eKthGp7I-52YYwm!-nkAFB7$-0X9zHac-f5pAUKf-V01EhSc#pretend-carpet-caesar
Id: stl:ZMTVCU25-QDo98xR-wI91wcu-ydb7kui-QfZbF$n-0KDS2ow#tuna-safari-design
Name: RGBCommit
Dependencies:
StrictTypes#century-comrade-chess,
Expand All @@ -8,7 +8,7 @@ Dependencies:
BPCore#totem-holiday-helena,
Std#ralph-blue-lucky,
Bitcoin#signal-color-cipher
Check-SHA256: 8447a453dc6b4effc5ed991125084965c4e0b44a09b757502765c9ab2909be75
Check-SHA256: bca1c6f36dad26f2d0a6f0c23ed8bd7a3c2584bf1f60a4f1ded87de9f8fafa87

2~tNwLvL+uX><lf>Z4!V_T!KNI`QJ|h6;Zj^jB$MPK+?7Lu3>C`4HI)Q*?4^V{}w`aAk91a5aA+<>R2X
hQO_4{AcS-HH^7AVzASV8M4NYxyCjHL2PwaO?m?z-)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@OCJaMw
Expand Down Expand Up @@ -135,7 +135,7 @@ x`Tq%|A_kfK&ST81_yLyb98QHbOOpO9&dx0-7pM3Z=O*v*GCA9fL-<|HrZsA`NnJlR3~AEBGG%U@MZ$v
b#7;AVr*pw0t#bqZEb0EZDnqB0Z6?XZWsH8I~II?C0;dW+k!*yDqgzlqQwf$39g<|8VYh@Zf9jsa&K>D
0Z6?XZWsH8I~II?C0;dW+k!*yDqgzlqQwf$39g<|8VW;iZgg^CV{}Pm1pxpD002NB00~54bYW9;VRU5$
0RRX906+i$000000096000000000R^cywiMb7^mG1`7jbW_AJEn^6;37FKqUhx?i3R+Mr!fY&(;2BFL(
m@EZk_srD_V{dMBa$#e1Nn`<^2rNlD$O59e#ogQsB77jPl+<X%NY5HtA>h5j^*S;IZf|a5WdHyH4P|(A
m@EZk_srD_V{dMBa$#e1Nn`<^2rNlD$O59e#ogQsB77jPl+<X%NY5HtA>h5j^*S;IZf|a5WdHyO4P|(A
Wo~n6Z*Ek1aAg5xbsj>g6`?#s5rWnKhSeO?L~x^!;Y#eFP|P}0Z%Ez<ZDn*}WMOn+0rh%KI9Y!AFx9LC
k8@hQXE7w+qW3^C%eTEp@#^?_H3w&GZ(?C=a{=BXk!z-`g4hv-$6z_YxoLZ_neUP>BpbEf7FA*KKfDWJ
b8~5DZf#|5baMe=>KFFSbgda38zdDXQ<FRLb|SiQ9VaZ73zs1JxzuV1a%E&?Wo>0-0pHK5k@bh=O+>c=
Expand Down Expand Up @@ -184,7 +184,7 @@ pBQVuYc|6e9yzoWyQ=2m0000000000|Nj60000002~A~WX<<}(aAgAl17U7?{|HTGbYWC^aAgGn0006B
O=WapR$**)Wd#8M2mk;;0000000000|Nj60000002u)>lVPs)+VFdvI3ITQGP59r=ivk<fM#zkxBxA|e
=9ERQ^Kdtnr}W_o38DcMB|MH$#iox7(epK^GJZz3uq*Cb2l>R6Lh9EroO>_;0000000030000000000B
Ph(?sa&l#EV`Xy&0t0PnZU6uR18re=0006EPjEwTZEb0EZDnqB1`7jbW_AJEn^6;37FKqUhx?i3R+Mr!
fY&(;2BFL(m@EZk_srD=Zf|a5WdHyH25)dwd2nR`=kby$tK%HuPpRtMKe5+wDRP}k(QuARKUbDjTz^bE
fY&(;2BFL(m@EZk_srD=Zf|a5WdHyO25)dwd2nR`=kby$tK%HuPpRtMKe5+wDRP}k(QuARKUbDjTz^bE
2yJC_VPs)+VFG#s9p7nv%krpqN<S4B4FOa*Q}elon<QJ-4E`#`(<W`Nt;O}HAO^^zqT0%g+nC0;-MWK<
)&Ge4`aq}l(*_4;Y;R&=Y;yv710COKearHwcS=7M7YzYaI8*bvhMOc?)(rkC#nUD@o<oKw6$Lm(8(DuJ
#T0?AO#cjpum%_6G=9FD72-1nX>M?JbaMiF10COKearHwcS=7M7YzYaI8*bvhMOc?)(rkC#nUD@o<oKw
Expand Down Expand Up @@ -221,7 +221,7 @@ baG*Cb7^#GZ*Fq{3IQ}y53UoI8eY9A{1GERg--GiI0S#x1is&)M%fmnGH3yIwHs)QqWhh6&a)9BiaoJZ
>PY!h`6Z9%SYt5l1;p3@00000000300000000008a%FR6a&~280(t`--)Viz@~C%8KNS}Z0aQ3s^SOqb
BwN-D{wl@OCjNpJN#A(BKKz&v`r;e6DUv<<*U}c<e%g}v1+@9m9tcxoXk~3-Nn`~900#g7Kp+4LRB~Z%
b7^#GZ*B$)17>D+0ot2U6Id2jc94hrndMfLayEe1ISdA&%p{mB1!VWk)e2*8Zgg^CV{}Pm0iOsgNjk^^
qPoT1+zTRnAg`3vXv9d*8d@RXy~6c6G6imLZewKt009nka$#<BX>@6CZd7@2WdSr&53UoI8eY9A{1GER
qPoT1+zTRnAg`3vXv9d*8d@RXy~6c6G6imLZewKt00<6ra$#<BX>@6CZd7@2WdSr&53UoI8eY9A{1GER
g--GiI0S#x1is&)M%fmnGH3{GWprU=VRT^u^?FS>S$_F2)vN@Mb6UJ-F(lri_dqerx4lR4>iBsz2WM<=
Vqt7^0p25#Yo@G%*b#-tU^&3KX?w7l?~*Sh8@1jRRblZzyas7*aCLNZ0jZ*TSChz_$|Xx}eRkFNAr%^e
Ll(1e@}~9=0-ijXfD2)Bb7^O8ZDnqBa{)s3lIz?v1U>x&T2C;PAKlCCveQ{N4udSh#@3Dqj&%ukVQgh?
Expand All @@ -230,8 +230,8 @@ R5(-fxrUo0Th<KzD#g<#llNeFa6}P}rq7L!(40)FbL%msz%JU8hqvFyoea2o2X|?7Ze??G0(t`--)Viz
@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@OCd;@jJLYKfb7gWS-+`&{Sr=ykNJ#YFTr_BQwWqKF0T5JjVQzD2
bZKvHLUnFrY-I)m3uA0=b7f6sbZBp60;XBAP%ncq!=bH)!l@Cw+&ABgf({>*%N~j&hfyEy&@Q(SCAn^8
7TS9h9ibhaZ&^Bcn*B*;w|~I;-PD|t>j-IXaCLM|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{868FUcln*p#G+NdC
Gjy~AR_gVLaFF}DZ0SlZTU?PU0ls0E0RR9100000|Nj60000005L9wuZgXjLX>V>*V`yb<VFm^WZDn*}
^ZSSpYi@6MZd7t%ZgXjLX>V?G015$>$mV(;bz)!CmQ_M(k?Vd!kfCo{nDM?)_qK{868FUc))-~W22H5+
SDrhMohTRsfLT>C1dS{r3#^{o?N>fE0RR9100000|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?~`!+pRSq0(b70UrO!8D=zpn(&o-7tVWUa<1Q{n`|;)uYyv!)~4r
GOBq100000000300000000006X>M?JbaMa-0f+wLWmt%8=p4R=gtK{LClh6Z#kObxUW*hKHnBv9xdAr8
Expand Down
Binary file modified stl/RGBCommit@0.1.0.stl
Binary file not shown.
14 changes: 7 additions & 7 deletions stl/RGBCommit@0.1.0.sty
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{-
Id: stl:eKthGp7I-52YYwm!-nkAFB7$-0X9zHac-f5pAUKf-V01EhSc#pretend-carpet-caesar
Id: stl:ZMTVCU25-QDo98xR-wI91wcu-ydb7kui-QfZbF$n-0KDS2ow#tuna-safari-design
Name: RGBCommit
Version: 0.1.0
Description: Consensus commitment layer for RGB smart contracts
Expand Down Expand Up @@ -211,10 +211,10 @@ data ContractId : [Byte ^ 32]
@mnemonic(short-noise-postal)
data DataState : [Byte]
@mnemonic(felix-random-mineral)
@mnemonic(reform-garden-ballet)
data Extension : ffv Ffv
, contractId ContractId
, nonce U8
, nonce U64
, extensionType ExtensionType
, metadata Metadata
, globals GlobalState
Expand Down Expand Up @@ -309,9 +309,9 @@ data Metadata : {MetaType -> ^ ..0xff MetaValue}
@mnemonic(source-olga-mirage)
data Occurrences : min U16, max U16
@mnemonic(chamber-provide-veteran)
@mnemonic(survive-citizen-harris)
data OpCommitment : ffv Ffv
, nonce U8
, nonce U64
, opType TypeCommitment
, metadata CommitVerify.StrictHash
, globals CommitVerify.MerkleHash
Expand Down Expand Up @@ -371,10 +371,10 @@ data Schema : ffv Ffv
@mnemonic(ramirez-patron-simon)
data SchemaId : [Byte ^ 32]
@mnemonic(abraham-think-brother)
@mnemonic(michael-exact-eric)
data Transition : ffv Ffv
, contractId ContractId
, nonce U8
, nonce U64
, transitionType TransitionType
, metadata Metadata
, globals GlobalState
Expand Down
34 changes: 19 additions & 15 deletions stl/RGBLogic@0.1.0.sta
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
-----BEGIN STRICT TYPE LIB-----
Id: stl:Pyd01gNn-B3o3lfj-4y6pZ5a-qSgCE1x-0J7gL!C-raacTJs#memphis-martin-jump
Id: stl:bioTBozT-NqelHGE-SPbnpMA-XBNSbXZ-6X0dANE-WHVirL8#explain-marvin-bless
Name: RGBLogic
Dependencies:
RGBCommit#pretend-carpet-caesar,
RGBCommit#tuna-safari-design,
BPCore#totem-holiday-helena,
Bitcoin#signal-color-cipher
Check-SHA256: 2e22050f901819f9ce12a582e13f6119579e01693ebf5921521cd1ca7529137d
Check-SHA256: b4f6b967a70e12d12c5831aa223bd85052f40dbc2bfd5ab3f739e1aa37242f31

2vSEvOmAmtV*_}rVH%#u=VlnfZ>Nv}LGS$+_c7XW{%HY1pI1#pg(nG8M?ynyZEb0ErdhI3FM~0|p{<6(
2vSEvOmAmtV*_Nw)d@|xKsr716mTQmaB}ROZ@Dgs2ia_2=g^?i+KdTOM?ynyZEb0ErdhI3FM~0|p{<6(
sS&)~H{Xkb4j+}v9*QG}Q6KKm20~CnZ*pbzY!hN5_Bp3Y36tDMM#=e#tGI($UA5U3KNx<*C>ja}LTPkk
Z)t7=20~CnZ*pY?00DdlT>wB!7L}MA7sFvK#<=RP4S#T1Vv-hhTICs&5fM~jaB^jIPH$voP+@X(Ze?;0
wjY>38tto&d&=e<t?OC7vzr3sh4VL=aEO-K69^0oRAF#(Wpq$-Z*OK3#8XmcC%Z%?j5}xa%));D{NyLM
Expand All @@ -17,17 +17,21 @@ Wpq+$XJ~Xna$#;`Xh%-ZT+rxDK6vW;JU&?LxLM72H?wDC1Zo}=N}D)4mkLjCa%FT-a&K>D2SRCdV{d70
DJ{*3f84s>#k$1lf7uIEVQ@}wWMxQUb7)_z*=^-NPQ?`2v5jYd+6t@dEhY>7H!Y*UdZb-BpG^u(WnpGh
V{&P5bg6}ecT=8d`>?<6$C@F;S3|*6`1-v+nBdcqJ?FPKcnV2wbY*gGVQf%qwlfK-7{9iX4Q|L-q$GzU
Mp|h<azh8d{~gylbAe9D2TWyQW>#f#{Gz8SzLEaTf~c{WkYggkPIjuQHS#3Ua|L6d7%qre2Ut&TY<W;?
2~tNwLvL+uX><VqmB{9L9(7`0)Rt93YLV-HLXe?vTA1;^Q1`ZqBog<<1W#~DWCZ{SL}Fu5a&K>D1OfpD
bYXCEWpn@q0RpC3vQRIBF~gy)hQg^4yxce6i-HaxmCGKABZpBR?$8gmADBNH?W>M^%H|xc>sh|Dn*!v8
^Ea7rh?dzC2n+%RZ*X#DbN~eb0;XBAP%ncq!=bH)!l@Cw+&ABgf({>*%N~j&hfyEy&__<sT+rxDK6vW;
JU&?LxLM72H?wDC1Zo}=N}D)4mkCE~Z(?C=PjX}i0tIhyPjX}d5^!ZWmqRVqY#fz=E*t7rNLnhuswFP-
RvR}GCb>Ok18HP<00067PjF9iWCQ~M2WMq&WpinB0000131xV6Wo~n6Z*Bkv0|$3$bZ%vHa{=}XBbpbB
LK#dEwxUFHJ){RjtgLvL_X>0rou@Knb#Vo5Z*F5{00035Z*Xa30(h%o8lK4KW*EY6r;q_b@BJ6|G1_td
X#ql?S4~8PCzZ(NdLDIRU(}XWLTZugenOC;Z(5k~zEJnJiX;;E#s3O)a$#<BX>@6CZU6=Y2X|?7Ze??G
0rm?cniq>g8B7tjqC|5&qz6Q-tazCB3Um~mr!r)9aRqK~ZewKt009JVaA{-$c&lL=p2+8B7{YI-kO4vO
{TKH!+HwAA0YaZwO+<w!mB{9L9(7`0)Rt93YLV-HLXe?vTA1;^Q1`ZqBog<<3Rh`#Ze??GPjX}g0{{qN
a${&|c4cG$00036ZE0?0WB>&L0S>>o?Kom?q=ULN^A!11b?H{wM>P}NCm0qyW47Umu>uKnWo~p~bZK^F
0000AS7~%^Wpi^-Z*v9$254nzXJ~W)00aqiX>Db5bYX39002k
2~tNwLvL+uX><bsG*S<)6P6lYy(#<=BR_>s@(?%#f7ArN-=Rj?7Ns(14peesZgXjLX>V>+d2nT9bsj>g
6`?#s5rWnKhSeO?L~x^!;Y#eFP|P}0Z%Ez^MR;^&ZgXjGZd7@2WtGV0dLDIRU(}XWLTZugenOC;Z(5k~
zEJnJiX;;E#RN}qNn`~82t;CIP;zf?W&{EO26SO?a%FS?1pxx4S+Y<sgE7OQt%ky>5xm?t-;06{AC=1<
iX(?nAMVf(wjY>38tto&d&=e<t?OC7vzr3sh4VL=aEO-K69^0f1#fV2Wpn@q0RpC3vQRIBF~gy)hQg^4
yxce6i-HaxmCGKABZpBR?$Ae0&s@;xOg?z(`#e5a?6_IYcQ><VWCUs+6H1#nJC_MZY;R&=Y)^7z1_A|d
a8Gh%0iv75<3GB=m3W}HNi~P4iw~1OQOpPH6tgc2l8S+x4g+aqcmMzb1y68Ka%2Pp00(DfZe??6a{vGU
0SRSzbY*UHX>V=-1_TFpX>@L7b8`Xq3nQ8ri$WPp5w@a4b3LR7M69fMnD+{F6rHCsWOZ=@ba?_~#MKE+
xj;HS^AvC+-Eea3oo~4=i3iziU+2)E(%Ot<bsj>g6`?#s5rWnKhSeO?L~x^!;Y#eFP|P}0Z%Ez+Zf|a5
WdHyO1aEL@WCCQw)d@|xKsr716mTQmaB}ROZ@Dgs2ia_2=g^?i+KiRR=6W7=VqesjRYGc!>wZFzp>JB4
@xD;^wu&SY_r?DTbaG*Cb7^#GZ*Bkv1P6C%bZ%vHa{=}XBbpbBLK#dEwxUFHJ){RjtgLvL_X>0rou@Kn
b#Vf8c>-j_)d@|xKsr716mTQmaB}ROZ@Dgs2ia_2=g^?i+Ke<(53UoI8eY9A{1GERg--GiI0S#x1is&)
M%fmnGH3;EZ*F5{000OCZ*Xa30%XM12~D{`Iz96ga3kGta_pUNxh{zZ*=%3u(4f-VjFrgddLDIRU(}XW
LTZugenOC;Z(5k~zEJnJiX;;E#R^wxbZ%vHb5C+)1OosFVRB<=X?A5~000011#M|=Wn=&a0Raxbxa~M%
Zlr^{H1ibsRCVcA*+(@K+$R_oJY%-uiLn9+bY*UIVRUJBWdHyG3Rh`#Ze??GP;YYv0tRShX=iA3000CD
bZKp6b97;CZ~y>E

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

Binary file modified stl/RGBLogic@0.1.0.stl
Binary file not shown.
14 changes: 9 additions & 5 deletions stl/RGBLogic@0.1.0.sty
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{-
Id: stl:Pyd01gNn-B3o3lfj-4y6pZ5a-qSgCE1x-0J7gL!C-raacTJs#memphis-martin-jump
Id: stl:bioTBozT-NqelHGE-SPbnpMA-XBNSbXZ-6X0dANE-WHVirL8#explain-marvin-bless
Name: RGBLogic
Version: 0.1.0
Description: Consensus logic layer for RGB smart contracts
Expand All @@ -11,7 +11,9 @@
@context
typelib RGBLogic

import RGBCommit#pretend-carpet-caesar
import RGBCommit#tuna-safari-design
use TransitionType#picture-reflex-brigade
use ExtensionType#apropos-scoop-viva
use OpId#picnic-single-gloria

import BPCore#totem-holiday-helena
Expand All @@ -37,13 +39,15 @@ data DbcProof : tapret#1 BPCore.TapretProof
@mnemonic(east-sunset-extra)
data GlobalOrd : opOrd OpOrd, idx U16

@mnemonic(heroic-right-pepper)
@mnemonic(combat-henry-flood)
data OpOrd : genesis ()
| extension (witness WitnessOrd
, nonce U8
, ty RGBCommit.ExtensionType
, nonce U64
, opid RGBCommit.OpId)
| transition#255 (witness WitnessOrd
, nonce U8
, ty RGBCommit.TransitionType
, nonce U64
, opid RGBCommit.OpId)

@mnemonic(orange-john-cyclone)
Expand Down
4 changes: 2 additions & 2 deletions stl/Transition.vesper
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ OpId commitment hasher=SHA256 tagged=urn:lnp-bp:rgb:operation#2024-02-03

OpCommitment rec
ffv is U16 aka=Ffv
nonce is U8
nonce is U64
opType union TypeCommitment
genesis rec BaseCommitment wrapped tag=0
flags bytes len=1 aka=ReservedBytes1
Expand Down Expand Up @@ -40,7 +40,7 @@ OpCommitment rec
Transition rec
ffv is U16 aka=Ffv
contractId bytes len=32 aka=ContractId
nonce is U8
nonce is U64
transitionType is U16 aka=TransitionType
metadata map len=0..MAX8 aka=Metadata
key is U16 aka=MetaType
Expand Down

0 comments on commit 4f67584

Please sign in to comment.