diff --git a/_typos.toml b/_typos.toml index 0f78bf10..0c6e78b7 100644 --- a/_typos.toml +++ b/_typos.toml @@ -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-]+", ] diff --git a/src/operation/commit.rs b/src/operation/commit.rs index 30f88b4a..2a84b383 100644 --- a/src/operation/commit.rs +++ b/src/operation/commit.rs @@ -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, @@ -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), diff --git a/src/operation/operations.rs b/src/operation/operations.rs index c7087c6c..e4ed6cf2 100644 --- a/src/operation/operations.rs +++ b/src/operation/operations.rs @@ -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 @@ -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, @@ -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, @@ -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 { None } @@ -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 { None } @@ -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 { Some(self.transition_type) } diff --git a/src/stl.rs b/src/stl.rs index d798097c..6063f0ba 100644 --- a/src/stl.rs +++ b/src/stl.rs @@ -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 { LibBuilder::new(libname!(LIB_NAME_RGB_COMMIT), tiny_bset! { diff --git a/src/validation/consignment.rs b/src/validation/consignment.rs index edfd7af9..9499d2e1 100644 --- a/src/validation/consignment.rs +++ b/src/validation/consignment.rs @@ -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(), diff --git a/src/vm/contract.rs b/src/vm/contract.rs index 508bc8e3..9bf0e2f5 100644 --- a/src/vm/contract.rs +++ b/src/vm/contract.rs @@ -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(), }, @@ -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(), @@ -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, }, } @@ -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, }, diff --git a/stl/AnchoredBundle.vesper b/stl/AnchoredBundle.vesper index b32b9ce0..70188880 100644 --- a/stl/AnchoredBundle.vesper +++ b/stl/AnchoredBundle.vesper @@ -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 diff --git a/stl/RGBCommit@0.1.0.sta b/stl/RGBCommit@0.1.0.sta index 2d4f2908..bddb58fd 100644 --- a/stl/RGBCommit@0.1.0.sta +++ b/stl/RGBCommit@0.1.0.sta @@ -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, @@ -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>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 @@ -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+h5j^*S;IZf|a5WdHyH4P|(A +m@EZk_srD_V{dMBa$#e1Nn`<^2rNlD$O59e#ogQsB77jPl+h5j^*S;IZf|a5WdHyO4P|(A Wo~n6Z*Ek1aAg5xbsj>g6`?#s5rWnKhSeO?L~x^!;Y#eFP|P}0Z%EzBpbEf7FA*KKfDWJ b8~5DZf#|5baMe=>KFFSbgda38zdDXQ0-0pHK5k@bh=O+>c= @@ -184,7 +184,7 @@ pBQVuYc|6e9yzoWyQ=2m0000000000|Nj60000002~A~WX<<}(aAgAl17U7?{|HTGbYWC^aAgGn0006B O=WapR$**)Wd#8M2mk;;0000000000|Nj60000002u)>lVPs)+VFdvI3ITQGP59r=ivkR6Lh9EroO>_;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%krpqNM?JbaMiF10COKearHwcS=7M7YzYaI8*bvhMOc?)(rkC#nUD@oPY!h`6Z9%SYt5l1;p3@00000000300000000008a%FR6a&~280(t`--)Viz@~C%8KNS}Z0aQ3s^SOqb BwN-D{wl@OCjNpJN#A(BKKz&v`r;e6DUv<<*U}cD+0ot2U6Id2jc94hrndMfLayEe1ISdA&%p{mB1!VWk)e2*8Zgg^CV{}Pm0iOsgNjk^^ -qPoT1+zTRnAg`3vXv9d*8d@RXy~6c6G6imLZewKt009nka$#@6CZd7@2WdSr&53UoI8eY9A{1GER +qPoT1+zTRnAg`3vXv9d*8d@RXy~6c6G6imLZewKt00<6ra$#@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? @@ -230,8 +230,8 @@ R5(-fxrUo0Th*%N~j&hfyEy&@Q(SCAn^8 7TS9h9ibhaZ&^Bcn*B*;w|~I;-PD|t>j-IXaCLM|VQ>KznP+6nwW~k}RP!NmuV?G015$>$mV(;bz)!CmQ_M(k?Vd!kfCo{nDM?)_qK{868FUcln*p#G+NdC -Gjy~AR_gVLaFF}DZ0SlZTU?PU0ls0E0RR9100000|Nj60000005L9wuZgXjLX>V>*V`ybV?G015$>$mV(;bz)!CmQ_M(k?Vd!kfCo{nDM?)_qK{868FUc))-~W22H5+ +SDrhMohTRsfLT>C1dS{r3#^{o?N>fE0RR9100000|Nj60000005L9wuZgXjLX>V>*V`ybM?JbaMa-0f+wLWmt%8=p4R=gtK{LClh6Z#kObxUW*hKHnBv9xdAr8 diff --git a/stl/RGBCommit@0.1.0.stl b/stl/RGBCommit@0.1.0.stl index 1a5f499f..1ffee9d2 100644 Binary files a/stl/RGBCommit@0.1.0.stl and b/stl/RGBCommit@0.1.0.stl differ diff --git a/stl/RGBCommit@0.1.0.sty b/stl/RGBCommit@0.1.0.sty index e27705ff..cf78d5c5 100644 --- a/stl/RGBCommit@0.1.0.sty +++ b/stl/RGBCommit@0.1.0.sty @@ -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 @@ -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 @@ -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 @@ -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 diff --git a/stl/RGBLogic@0.1.0.sta b/stl/RGBLogic@0.1.0.sta index e4f9de4f..4fb6ec11 100644 --- a/stl/RGBLogic@0.1.0.sta +++ b/stl/RGBLogic@0.1.0.sta @@ -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&=eD2SRCdV{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#f#{Gz8SzLEaTf~c{WkYggkPIjuQHS#3Ua|L6d7%qre2Ut&TYD1OfpD -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&__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$#@6CZU6=Y2X|?7Ze??G -0rm?cniq>g8B7tjqC|5&qz6Q-tazCB3Um~mr!r)9aRqK~ZewKt009JVaA{-$c&lL=p2+8B7{YI-kO4vO -{TKH!+HwAA0YaZwO+&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>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+Y5xm?t-;06{AC=1< +iX(?nAMVf(wjY>38tto&d&=eV=-1_TFpX>@L7b8`Xq3nQ8ri$WPp5w@a4b3LR7M69fMnD+{F6rHCsWOZ=@ba?_~#MKE+ +xj;HS^AvC+-Eea3oo~4=i3iziU+2)E(%Otg6`?#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----- diff --git a/stl/RGBLogic@0.1.0.stl b/stl/RGBLogic@0.1.0.stl index d5f211b9..8cf2fe5f 100644 Binary files a/stl/RGBLogic@0.1.0.stl and b/stl/RGBLogic@0.1.0.stl differ diff --git a/stl/RGBLogic@0.1.0.sty b/stl/RGBLogic@0.1.0.sty index dea21734..150de4d6 100644 --- a/stl/RGBLogic@0.1.0.sty +++ b/stl/RGBLogic@0.1.0.sty @@ -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 @@ -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 @@ -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) diff --git a/stl/Transition.vesper b/stl/Transition.vesper index 600ed68b..a612053c 100644 --- a/stl/Transition.vesper +++ b/stl/Transition.vesper @@ -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 @@ -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