From cf409211698a1c0461d2408964d008cb9c3fd9b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zoe=20Faltib=C3=A0?= Date: Wed, 4 Dec 2024 11:05:40 +0100 Subject: [PATCH] remove support for alt layers --- doc/Commitments.md | 8 +- src/operation/commit.rs | 2 - src/operation/mod.rs | 4 +- src/operation/operations.rs | 20 +- src/operation/xchain.rs | 42 +--- src/stl.rs | 4 +- src/validation/validator.rs | 13 +- stl/RGBCommit@0.1.0.sta | 469 ++++++++++++++++++------------------ stl/RGBCommit@0.1.0.stl | Bin 16309 -> 16103 bytes stl/RGBCommit@0.1.0.sty | 15 +- stl/RGBLogic@0.1.0.sta | 26 +- stl/RGBLogic@0.1.0.stl | Bin 1659 -> 1659 bytes stl/RGBLogic@0.1.0.sty | 14 +- stl/Transition.vesper | 1 - 14 files changed, 286 insertions(+), 332 deletions(-) diff --git a/doc/Commitments.md b/doc/Commitments.md index 9eb90d18..2c789f4c 100644 --- a/doc/Commitments.md +++ b/doc/Commitments.md @@ -201,10 +201,9 @@ assignments are concealed before the merklization, and range proofs are removed from the commitment, such that an aggregation of the historical proofs can be applied without changing the operation ids. -To ensure succinctness, other types of collections, such as redeemed and -defined valencies and list of alternate layer 1 in genesis are not merklized -and strict-serialized producing `StrictHash`, which participates in the final -`OpCommitment` structure. +To ensure succinctness, other types of collections, such as redeemed and +defined valencies in genesis are not merklized and strict-serialized producing +`StrictHash`, which participates in the final `OpCommitment` structure. ```mermaid flowchart LR @@ -222,7 +221,6 @@ flowchart LR subgraph "Genesis" schemaId --> BaseCommitment testnet --> BaseCommitment - altLayers1 -- StrictHash --> BaseCommitment end subgraph "Transition" diff --git a/src/operation/commit.rs b/src/operation/commit.rs index 93796a4d..88d77de9 100644 --- a/src/operation/commit.rs +++ b/src/operation/commit.rs @@ -237,7 +237,6 @@ pub struct BaseCommitment { pub timestamp: i64, pub issuer: StrictHash, pub testnet: bool, - pub alt_layers1: StrictHash, pub asset_tags: StrictHash, } @@ -281,7 +280,6 @@ impl Genesis { schema_id: self.schema_id, timestamp: self.timestamp, testnet: self.testnet, - alt_layers1: self.alt_layers1.commit_id(), issuer: self.issuer.commit_id(), asset_tags: self.asset_tags.commit_id(), }; diff --git a/src/operation/mod.rs b/src/operation/mod.rs index c13450be..61a04c77 100644 --- a/src/operation/mod.rs +++ b/src/operation/mod.rs @@ -60,6 +60,6 @@ pub use seal::{ }; pub use state::{ConcealedState, ConfidentialState, ExposedState, RevealedState, StateType}; pub use xchain::{ - AltLayer1, AltLayer1Set, Impossible, Layer1, XChain, XChainParseError, XOutpoint, - XCHAIN_BITCOIN_PREFIX, XCHAIN_LIQUID_PREFIX, + Impossible, Layer1, XChain, XChainParseError, XOutpoint, XCHAIN_BITCOIN_PREFIX, + XCHAIN_LIQUID_PREFIX, }; diff --git a/src/operation/operations.rs b/src/operation/operations.rs index e4ed6cf2..29018a46 100644 --- a/src/operation/operations.rs +++ b/src/operation/operations.rs @@ -37,10 +37,10 @@ use strict_encoding::{RString, StrictDeserialize, StrictEncode, StrictSerialize} use crate::schema::{self, ExtensionType, OpFullType, OpType, SchemaId, TransitionType}; use crate::{ - AltLayer1Set, AssetTag, Assign, AssignmentIndex, AssignmentType, Assignments, AssignmentsRef, + AssetTag, Assign, AssignmentIndex, AssignmentType, Assignments, AssignmentsRef, ConcealedAttach, ConcealedData, ConcealedValue, ContractId, DiscloseHash, ExposedState, Ffv, - GenesisSeal, GlobalState, GraphSeal, Metadata, OpDisclose, OpId, SecretSeal, TypedAssigns, - VoidState, XChain, LIB_NAME_RGB_COMMIT, + GenesisSeal, GlobalState, GraphSeal, Layer1, Metadata, OpDisclose, OpId, SecretSeal, + TypedAssigns, VoidState, XChain, LIB_NAME_RGB_COMMIT, }; #[derive(Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug, Display)] @@ -360,7 +360,6 @@ pub struct Genesis { pub timestamp: i64, pub issuer: Identity, pub testnet: bool, - pub alt_layers1: AltLayer1Set, pub asset_tags: AssetTags, pub metadata: Metadata, pub globals: GlobalState, @@ -372,6 +371,19 @@ pub struct Genesis { impl StrictSerialize for Genesis {} impl StrictDeserialize for Genesis {} +impl Genesis { + pub fn layer1(&self) -> Option { + if let Some((_, typed_assigns)) = self.assignments.iter().next() { + typed_assigns + .to_confidential_seals() + .first() + .map(|cs| cs.layer1()) + } else { + None + } + } +} + #[derive(Clone, PartialEq, Eq, Debug)] #[derive(StrictType, StrictDumb, StrictEncode, StrictDecode)] #[strict_type(lib = LIB_NAME_RGB_COMMIT)] diff --git a/src/operation/xchain.rs b/src/operation/xchain.rs index 91a606a1..8178aaaf 100644 --- a/src/operation/xchain.rs +++ b/src/operation/xchain.rs @@ -26,9 +26,8 @@ use std::fmt::{Debug, Display, Formatter}; use std::str::FromStr; use std::{fmt, io}; -use amplify::confinement::TinyOrdSet; use bp::{Bp, Outpoint}; -use commit_verify::{Conceal, StrictHash}; +use commit_verify::Conceal; use strict_encoding::{ DecodeError, DefineUnion, ReadTuple, ReadUnion, StrictDecode, StrictDumb, StrictEncode, StrictEnum, StrictSum, StrictType, StrictUnion, TypedRead, TypedWrite, VariantError, @@ -105,31 +104,6 @@ mod _serde { } } -#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Display)] -#[display(lowercase)] -#[derive(StrictType, StrictDumb, StrictEncode, StrictDecode)] -#[strict_type(lib = LIB_NAME_RGB_COMMIT, tags = repr, into_u8, try_from_u8)] -#[cfg_attr( - feature = "serde", - derive(Serialize, Deserialize), - serde(crate = "serde_crate", rename_all = "camelCase") -)] -#[repr(u8)] -pub enum AltLayer1 { - #[strict_type(dumb)] - Liquid = 1, - // Abraxas = 0x10, - // Prime = 0x11, -} - -impl AltLayer1 { - pub fn layer1(&self) -> Layer1 { - match self { - AltLayer1::Liquid => Layer1::Liquid, - } - } -} - #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] #[cfg_attr( feature = "serde", @@ -180,20 +154,6 @@ impl FromStr for Impossible { fn from_str(_: &str) -> Result { panic!("must not be parsed") } } -#[derive(Wrapper, WrapperMut, Clone, PartialEq, Eq, Hash, Debug, Default, From)] -#[wrapper(Deref)] -#[wrapper_mut(DerefMut)] -#[derive(StrictType, StrictEncode, StrictDecode)] -#[strict_type(lib = LIB_NAME_RGB_COMMIT)] -#[derive(CommitEncode)] -#[commit_encode(strategy = strict, id = StrictHash)] -#[cfg_attr( - feature = "serde", - derive(Serialize, Deserialize), - serde(crate = "serde_crate", transparent) -)] -pub struct AltLayer1Set(TinyOrdSet); - #[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)] #[cfg_attr( feature = "serde", diff --git a/src/stl.rs b/src/stl.rs index bbc97c6f..98bbfee7 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:IFcnrPeI-TANxLfZ-feJax6Q-1TUM4Hq-AjI161s-3tbmxak#harvest-person-orion"; + "stl:bJ8Swut6-fEFixNt-bJuRY6D-ZNyYV2D-aNfTFnN-68w5Ngk#point-ariel-kinetic"; /// Strict types id for the library providing data types for RGB consensus. pub const LIB_ID_RGB_LOGIC: &str = - "stl:mqltqlPk-O9$pYOd-BACRI70-DOMJ6cp-TFvhcK1-ibrOI9U#import-boxer-seminar"; + "stl:lvwcOo0a-!8WJfTD-eeERZkb-hZFG$r5-W2uKv!P-Oujw$hM#regular-moment-north"; fn _rgb_commit_stl() -> Result { LibBuilder::new(libname!(LIB_NAME_RGB_COMMIT), tiny_bset! { diff --git a/src/validation/validator.rs b/src/validation/validator.rs index 941bc14f..e0c25234 100644 --- a/src/validation/validator.rs +++ b/src/validation/validator.rs @@ -36,8 +36,8 @@ use crate::vm::{ ContractStateAccess, ContractStateEvolve, OrdOpRef, WitnessOrd, XWitnessId, XWitnessTx, }; use crate::{ - validation, AltLayer1, BundleId, ContractId, Layer1, OpId, OpType, Operation, Opout, Schema, - SchemaId, TransitionBundle, XChain, XOutpoint, XOutputSeal, + validation, BundleId, ContractId, Layer1, OpId, OpType, Operation, Opout, Schema, SchemaId, + TransitionBundle, XChain, XOutpoint, XOutputSeal, }; #[derive(Clone, PartialEq, Eq, Debug, Display, Error, From)] @@ -134,7 +134,7 @@ pub struct Validator< schema_id: SchemaId, contract_id: ContractId, - layers1: BTreeSet, + layer1: Option, contract_state: Rc>, validated_op_seals: RefCell>, @@ -164,15 +164,14 @@ impl< // Prevent repeated validation of single-use seals let validated_op_seals = RefCell::new(BTreeSet::::new()); - let mut layers1 = bset! { Layer1::Bitcoin }; - layers1.extend(genesis.alt_layers1.iter().map(AltLayer1::layer1)); + let layer1 = genesis.layer1(); Self { consignment, status: RefCell::new(status), schema_id, contract_id, - layers1, + layer1, validated_op_seals, resolver: CheckedWitnessResolver::from(resolver), contract_state: Rc::new(RefCell::new(S::init(context))), @@ -581,7 +580,7 @@ impl< }); continue; } - if !self.layers1.contains(&seal.layer1()) { + if self.layer1 != Some(seal.layer1()) { self.status .borrow_mut() .add_failure(Failure::SealLayerMismatch(seal.layer1(), seal)); diff --git a/stl/RGBCommit@0.1.0.sta b/stl/RGBCommit@0.1.0.sta index 67979284..6d9e7b7f 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:IFcnrPeI-TANxLfZ-feJax6Q-1TUM4Hq-AjI161s-3tbmxak#harvest-person-orion +Id: stl:bJ8Swut6-fEFixNt-bJuRY6D-ZNyYV2D-aNfTFnN-68w5Ngk#point-ariel-kinetic Name: RGBCommit Dependencies: StrictTypes#century-comrade-chess, @@ -8,7 +8,7 @@ Dependencies: CommitVerify#miller-pancake-elastic, Std#ralph-blue-lucky, Bitcoin#signal-color-cipher -Check-SHA256: 1d68b2a0bcfecf99effcecd7c9c35f870a1300e71a3ce3da8144587537895235 +Check-SHA256: 82a24c15af2ab669424b2ec84616a7e10732d416be18db9d5eb70b1ce9711603 2~tNwLvL+uX>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)Hmb;*F>vukd; =m`ygb@x#_>`RmOO$0)3Z)}yry~#}iVEJ)s5j^%uEnQ9{n2s|9Fa^ps+HG#`XS5DMY;b5{PIYZeZ)9O} Xt{%a=RmHK6WZ%EWRm@*ULd%lgGoFTxUTU 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 +6&DQwR5(-fxrUo0ThEiz^#2Wm1QOk9#fajy(iy +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 -6oKLk -F4~iax8KK|47hp+cWHEPWpi@^dIKHbX?@G`sCP;~6&DQwR5(-fxrUo0Thxis%Ku=2wF+7z(Wqt=tdZk`V^s(Ana000000093000000000Ma -Wn^V#ZF2w#0Y>fS!w4MxxaL=+DqP^k2!wz9AHH68xp8!<%Jqp^&Hw-a000000RI300000001IJrb7^O8 -ZDnqBa{vkfhyLPaScq)s9KMExvw34D6J>+NwrBxfixd_%u|$Wt0XD%jq57bK6Q|uUfIMEX^1}Vv6tLB! -)|10-o)0prc>n+a000000RI3000000010+sY-Mg^X=QT&2?0j!=EDda{kY~=q$*tC#t4Le{2#tvcDZqM -smk?aU=OZ$bvG|>z)+>9PT;Au-7)~D;-++htxcywiMb7^mG -RC#b^1pxp60s}^7b_D?d00Iq0b#7;AVr*qobYXO51OW&JVrg`9HZ%YQ0RR993`TWsXK7+=WmI`^Wdi{X -b#8NMXKrO=HZ($MbO;AWWo~72X>$e*17>D+0ot2U6Id2jc94hrndMfLayEe1ISdA&%p{mB1!VWk)d+KA -Xk~3-Nn`<(Qq$W5tE;F{pQrXd&=l*`O?@#x{Qdy?T_k!`1dtE~W^7?+a{_t;9p7nv%krpqNDb5bYX39002k^X>)UR -WpV+w=zxYCD0L!x4tB5Hm3vFbl?lapNXe%XU~*fKJ0+Y4bY*jNZe?@=$}AplgPGkh3_fq3Q7_j=2#kPT -_9!;lWR>~GYywm#VTK~nd#>BpbEf7FA*KKfDWJb8~5DZf#|5baMe=>KFFSbgda38zdDXQa{=9jW&m$tWDykZj`7#3_zANbB(SO{shhGe=&H{tM@n+a000000RI300000001IJrb7^O8ZDnqBa{vkfhyLPaScq)s9KMExvw34D -6J>+NwrBxfixd_%u|$Wt0XD%jq57bK6Q|uUfIMEX^1}Vv6tLB!)|10-o)0prc>n+a000000RI3000000 -010+sY-Mg^X=QT&2?0j!=EDda{kY~=q$*tC#t4Le{2#tvcDZqMsmk?aU=OZ$bvG|>z)+>9PT;Au-7)~D;-++hnxY;R&=Y*Tb$bY%qr015%s?vf5kh_h+&YE#h%O8d1V -_{UOl9{V;uR#^q%$8ES^HwOl>wiJc;WmI`^ -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 -R5(-fxrUo0Th$AHP6|FsuXsI;G3ONG`V!CAn^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{868FUc))-~W22H5+ -SDrhMohTRsfLT>C1dS{r3#^{o?N>fE0RR9100000|Nj60000005L9wuZgXjLX>V>*V`ybMdwWnpYocxhw=1ONKtpQ8M_qJyiO1VIUJ=H=)@ii_1#@&^bY%f9vZekPz%WEGnBZKS8(M7E9_@AwVcyGt +Cevi|7U8=DY;R+00(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@OCd;@jJLYKfb7gWS-+`&{Sr=yk +NJ#YFTr_BQwWqKF0Ra(XZ*FF3WMyu2X<=+rbYXO500sjDb7f&{0fGz-uWS7@0e2{MdwWnpYocu;h51pxpG0f+wLWmt%8=p4R=gtK{L +Clh6Z#kObxUW*hKHnBv9xdD5!HElq4!)_b{H>!()nCt8iM0hjp5N|z=I>OKHojw2n000000093000000 +000<4b8~5DZf#|5baO&%X>MdwWnpYocxhw>0RRdChyLPaScq)s9KMExvw34D6J>+NwrBxfixd_%u|$Wt +0a|Zqvn9UYMO^sD;_GhXtp2ftG%R;OfdN~vO`zH70ssI2000000RI300000000=>JbYWv?Nn`~900#g7 +Kp+4ML3DIsV`x)!VRU5%0s?7d0fcc4lPpg3!?y@aX^XIja4CK{WF&t@k=WXUZP9(YI0Db5bYX39002k^X>)URWpV;~10COKearHw +cS=7M7YzYaI8*bvhMOc?)(rkC#nUEjudT)PryvH%qoUf%jN6#Tx81sfg4O?s`uaep_R|IjbY*jNZe?@= +$}AplgPGkh3_fq3Q7_j=2#kPT_9!;lWR>~GYywm#VTK~nd#>@I6Zgc@iy&7&8`-VFfe10Wf +HD}v`L+>hHy6d9F3e5?wo>3YKa$#;~Wl(Z&Z)O2Vy&7&8`-VFfe10WfHD}v`L+>hHy6d9F3e5?wo>3YK +LvL<$a$#e1Nn`~900#g7Kp+4KL}7GcQ*>c;Wd#8M2mk;;0000000000|Nj60000002}O8xWo~n6Z*B$) +17>D+0ot2U6Id2jc94hrndMfLayEe1ISdA&%p{mB1!VWk)e2*8Zgg^CV{}Pm0iOsgNjk^^qPoT1+zTRn +Ag`3vXv9d*8d@RXy~6c6G6imLZewKt00<3bcywiMb7^mGRC#b^0c3R^La7y@JVOzJ)&GXo9MeQ_qmbcB +?4VH0I#X{*-Uw}FbYWy+bYTJYdQCW4e)%xftOSp9TD)g5B;KO;Krzd=y+`rt_<1!4XKZg`VQg~&-XoD~ +rmTY45rxNKIl#GTd$5`Bk}o71wcZw0Vevn_3t@9}X=iS2Wo~qH0b%MF_RVyy866uW6(UoUJMwlSx^W#R +ES3wGAo{t~Y6x;=WMyS-Wn=;0ρhviK~w*eJg04e;HYn$=SsX>loIF_owDud_=c42H~ZewX>a{=9j +W&m$tWDykZj`7#3_zANbB(SO{shhGe=&H{tM@vO>-_DBy8`Vb0jGrW9$=2qSMXvL3HGEG0000000000{{R30000002XbX(Wo2!100{v`?dHP>9R0ZFSEMRj;Km4qfBYZ5UUs>0 +bg9bqiCNA70000000030000000000BVRLh7XKrm}Zgg`13IT`y;$>KfZ0H=mhJ>?uV +a{vheM(yUq2ps*m=2xUDT;RqCgn#@WzFu~@adfH5^@&-|0000000000{{R300000033g#@X=Gt^Z*l+x +0ssVVZ*FA(00035b8l^B00jX8VsJHoA?4$swuZp1Wc+9AOf`(TIbyKWjTy4WkGaM+ZSSEb;k|42*w +g~2q@3^Lq|9zft}OB~jx>)hO74Mli#Wo~n6Z*Ek1aAgGn00065MrL*e0RR934MuftXK7+=Wm9xvbY%nq +2nJ$lbaOT|00jX600<05b#7;AVr*qpd2nR|0S$F-b7^O8Wn?xqLTPje2S;UYWpinB1`GpcW_AJEn^6;3 +7FKqUhx?i3R+Mr!fY&(;2BFL(m@EZk_srD@b7N>_ZDC1d0hChH+XJhss8OG%_CC-Q>(otsF+cqN0Qy}d +dQ=3E5CvvzVP|s!dIKHbX?@G`sCP;~6&DQwR5(-fxrUo0Th~Wpi|4ZEyepNCs(hb9H5M0k-IXh8!q$B6|*YuiTY;OURW8#d%1{rxIXtTaY^? +oCkDeb98QHbOOpO9&dx0-7pM3Z=O*v*GCA9fL-<|HrZsA`NnJlR3~AEBGG%U@MZ$v=XJ?|;InIPy66cF +fOYp#JM2r7_Du<4b8}^MRAFax0VyR82Em!ld>cVuZ*8Se%j3y;5n>eohpw0DA7$}d%m{5|bYWy+bYTJY +dQCW4e)%xftOSp9TD)g5B;KO;Krzd=y+`rt_<1!4XKZg`VQg~&-XoD~rmTY45rxNKIl#GTd$5`Bk}o71 +wcZw0Vevn_3t@9}X=iS2Wo~qH0b%MF_RVyy866uW6(UoUJMwlSx^W#RES3wGAo{t~Y6*5>Y-Mg^X=QT( +-GycVZ((E+6z-1k*Q)plvl=9@swb(NvM}hX&nZVu33g#@X=Gt^Z*l^910COKearHwcS=7M7YzYaI8*bv +hMOc?)(rkC#nUE}_h5K%L=laq&yA1JoJ^{7>oKLkF4~iax8KK|47hp?M`dnhb7^x^V`ybVZDn*} WMOn+00{wgM?JbaMa-0f+wLWmt%8=p4R=gtK{LClh6Z#kObxUW*hKHnBv9xdAr8 -G@<&SffJ|QFn~N>u=2wF+7z(Wqt=tdZk`V^s(Ana000000093000000000YNb8~5DZf#|5baMa-0f+wL -Wmt%8=p4R=gtK{LClh6Z#kObxUW*hKHnBv9xdAr8G@<&SffJ|QFn~N>u=2wF+7z(Wqt=tdZk`V^s(Ana -000000093000000000SgVQgh?V`*h`00{v`?dHP>9R0ZFSEMRj;Km4qfBYZ5UUs>0bg9bqiCNA700000 -000300000000009c42I3WMOn~asUJZ00eGtZe;)f009JZZ*64&1pxwLa5aA+<>R2XhQO_4{AcS-HH^7A -VzASV8M4NYxyCka@1Z8)ymjIKNK5;L!8FkfGTe+FK;UUh9M-4n+}vRfRB~Z%b7^#GZ*Ek1aAgGn0006G -RC#b^LvL+uX>@I6Zgd0#00(DfZe??6a{vVa0W)M-Q2pM493%15wcJ8Z{z5k9VD)f0JnAj^7J5MZ9{~z< -a$#@6CZU6-W0iOsgNjk^^qPoT1+zTRnAg`3vXv9d*8d@RXy~6c6G66JF53UoI8eY9A{1GERg--Gi -I0S#x1is&)M%fmnGH3z`Wq5RDZgXjGZU6-W0iOsgNjk^^qPoT1+zTRnAg`3vXv9d*8d@RXy~6c6G67_D -9zv-Vp*%wog4O?q)g04AaHEjnO6;Ie%sNwVNZuM$d2nT9L349yXKr&sY-w&}Q)OXnRCrKyas&hb3uI+u -Y+-U?bZK^F00jX62mv`K^WREqS2tt~EBII@xVqZNcP`ond^UU-JbUWd$~FK100000009600000000039 -W_507X<}?;00jX62m#u~=^e=I{=p`1zMng|0+NmwUpUW`Z@54^_oW>WVpRYD0000000960000000006C -b98cbV{~&L00;qEk8=qnO(R<<%JIK< -1B78x*e6}1oxDzJ3ElvocGBqp0000000030{{R30000303So3~VPj}*Wo~o;1pxpE0aMUzRzj^*Tk1C) -pGbjYG7000000RR600000000~xMY-Mg^X=QT-0RRaBM(yUq2ps*m=2xUD -T;RqCgn#@WzFu~@adfH5^@&-|0000000000{{R30000003szxlWo~16RC#b^1pxp60tr@cX=GD$VRU5$ -0RR916j(!OVQFqcY-w&}Q)OXnRCrKyas&bZ2V!Y-V{d7000jX8Ruk6O)Q5AKbFW;JEQ>MoHhG*Mzd(pE -tONi$rOUxcMklB)P_)|`Y=H7dO_e!^G2i>0SdC0NppV!6v|_i_0S0Voadl~A00jX8Ruk6O)Q5AKbFW;J -EQ>MoHhG*Mzd(pEtONi$rOUxcMklB)P_)|`Y=H7dO_e!^G2i>0SdC0NppV!6v|_i_6IerNVQFqcY-w&} -Q)OXnRCsA*1OfmDVrg_^Z)t7-1pxw96V}(%hjW>8uUwNXi!t*yd7K}=K!`A`1OPgv%fU#n#&NEOd)wn+ -n#11fGQ~$X901P7x>0daZB@{PThHqO25f0@b!lV(1pxw96V}(%hjW>8uUwNXi!t*yd7K}=K!`A`1OPgv -%fU#n#&NEOd)wn+n#11fGQ~$X901P7x>0daZB@{PThHqdSVL%GX>L8uUwNXi!t*yd7K}=K!`A`1OPgv%fU!!8SA{&vly$FvzVnzHf7z~rv`86=_Ka^V5yX| -y#`JJ25f0@b!lV(1pxw96V}(%hjW>8uUwNXi!t*yd7K}=K!`A`1OPgv%fU!!8SA{&vly$FvzVnzHf7z~ -rv`86=_Ka^V5yX|y#`JSSVL%GX>L?_X=DTf00&}ebYpL6ZU6-V0`+VYVk7oBr%DNv+($;q`HHK!gIHa) -*%m(-e#9sm3ZsHT^UK%K(4i9Ajp1M~R@C@!4#dQE#lUD;OiKi1RsjZVX>oOFWB>&L0`+VYVk7oBr%DNv -+($;q`HHK!gIHa)*%m(-e#9sm3ZsHT^UK%K(4i9Ajp1M~R@C@!4#dQE#lUD;OiKi1Rs +GOBq10000000030000000000BVRLh7XKrm}Zgg`13IT`y;$>KfZ0H=mhJ>?uVa{vhe +M(yUq2ps*m=2xUDT;RqCgn#@WzFu~@adfH5^@&-|0000000000{{R300000033g#@X=Gt^Z*l+x0ssVV +Z*FA(00035b8l^B00jX8VsJHoA?4$swuZp1Wc+9AOf`(TIbyKWjTy4WkGaM+ZSSEb;k|42*wg~2q@ +3^Lq|9zft}OB~jx>)hO73rB2kVqt7kbYXO51pxpG0oCr34oQf!Y4K`P(FaQVwIle)QgI&pHa%8Z1>xis +%K-|*_9BKowP1qopf1fvG|`fdOK000000093000000000q3Y;R&=Y*Tb$bY)Xx +Xk~3-1_KCkWpib6c4cG&dIKHbX?@G`sCP;~6&DQwR5(-fxrUo0ThNn`>=>Z4!V_T!KNI`QJ|h6;Zj^jB$MPK+?7Lu3>C`4HJ_1fvw5rj-B| +XP@r^w5ufb=C_Ju$l1`nW&GEpSWb-yZDDvxbY*RG0009IM{I9mVQf=$VRU6wd2nR~0RR933`cBlVqt7n +VQh6}a|Hna2mvylR#67|O%*Grnxkw0HI;&$`LH+T3zWkAaKFZV1cd@r70RRO80?I5NZ-bfLFbqC#o>4E?M+l67UG^w8*<_XZ#%uyqCrG{{7b@t4MVjY>G@u4Q3HlB(d+LiL +Jm-R=h;`?dxBv(O$}AplgPGkh3_fq3Q7_j=2#kPT_9!;lWR>~GYywm#NWLQ%D(Hkon&*Qwpawq)`VKLB +>Wd>h=Ype%b?2720000000000{|^8F000001xapjb#w*-2XJy_c29M50h18CfUz`Mi!Z}iQtl5;XwV(E +`Zdd&WRj~^37Yhpmk4rYb7gXNWn=<+10COKearHwcS=7M7YzYaI8*bvhMOc?)(rkC#nUFsxGg*8X!CPr +awgw_sqk4BX8}k^^xj-FXm+)yumJ%GNp5g;bWLG!1pxpG0`+VYVk7oBr%DNv+($;q`HHK!gIHa)*%m(- +e#9sm3L)b@L&d6G@+l`%qd385?K@+fP1(-9sgE>i7rMzqbpe&g=6W7=VqesjRYGc!>wZFzp>JB4@xD;^ +wu&SY_r(DK000000096000000000I_Zg6#Ua|Hna2?5oOUkD7Ff~JZGMgrhZ&rP2gYrktY!x$bpv=qCl +=HdVV000000096000000000S1Wn^h#RC#b^0|5hJZh8L*O=WapRC#b^1pxp60troJbYWIuY;|P?0RRX9 +06+i$000000096000000000P0WprU=VRT^y0RRdCb>vO>-_DBy8`Vb0jGrW9$=2qSMXvL3Hj|@I6Zgd6<17>D+0ot2U6Id2jc94hrndMfLayEe1ISdA&%p{mB1!VWk +)dg;EZewKt00;(ea8!A4WdYSb4B3PHh|WkAY6xeVK8Ndn*Q3fqTpm6dMbjJNIZg;|WprU=VRT^vdIKHb +X?@G`sCP;~6&DQwR5(-fxrUo0ThsZfv!yd427@;7veO2 +zMB=|GX`mHaCLNZ0(t`--)Viz@~C%8KNS}Z0aQ3s^SOqbBwN-D{wl@OCODo$h9?yTI7S;;e;>sZfv!yd +427@;7veO2zMB=|GYesJb7^O8ZDnqBa{_t;9p7nv%krpqNWpe_010COKearHwcS=7M7YzYa +I8*bvhMOc?)(rkC#nUEjudT)PryvH%qoUf%jN6#Tx81sfg4O?s`uaep_R|IjcWHEPWpi@^dIKHbX?@G` +sCP;~6&DQwR5(-fxrUo0ThClv)aMjKgwAH@`bu1x<7g|G$};xvA~n-$_S33g#@X=Gt^ +Z*l^910COKearHwcS=7M7YzYaI8*bvhMOc?)(rkC#nUEjudT)PryvH%qoUf%jN6#Tx81sfg4O?s`uaep +_R|IgPjE?O1pxpD002NB00mEQZ*_DA0|IYw0hP$+dLDIRU(}XWLTZugenOC;Z(5k~zEJnJiX;;E#R7DB +0f+wLWmt%8=p4R=gtK{LClh6Z#kObxUW*hKHnBv9xdLu)0006IPj_x*WK(oubY)XxXk~3-1OxyJWMyM) +VRB(~X?A4*00039W_507X<}?;00jX7`Sh#^X0AbZX4L%*5q$))*;M@wXI>IJVg&1PPwC}G0t$0L +b#i5700jX8Me3tp+xFv-0Xp&G?S=|}9rRaeU`~uMrbA>C`}q*rYXqYdo~D%m7H6OD0<^0n_2##VWXRdj +y=DB@qgYOj0}5eubYWv?ZDnqB00jX7LNH;4h{)8d6ed8&{mBRDiWpZ<6 +ZbNTvZE19EWo~o@0RRU806-xC2vTKaWo2z;WCZ~L3IRs#=EDda{kY~=q$*tC#t4Le{2#tvcDZqMsmk?< +SMl$g}C@DyY!@{4YR*L +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 +smk?c;Wd#8M000zNLug@XZbEEn +Ze&wsVQf@*P;_zx0sseMX>?<6X>I@o0RmPN*4NaBbD49mT$3z|G4nQgoFBhHh%l@K06L}1!AM3Ys4h^n ++Zt?u@<&aTIfpUd`<+;gOgf;C*Zs6&x77g#Y-w?IX=DHe0RmPN*4NaBbD49mT$3z|G4nQgoFBhHh%l@K +06L}1!AM3Ys4h^n+Zt?u@<&aTIfpUd`<+;gOgf;C*Zs6&x78C^Lug@XZbEEnZe&wsVQf@*X=DTf00&}e +bYpL6ZU6-V0#*~&*VKn|nRBmPlPrrd^EP>$AHP6|FsuXsI;G3ONU+9nu7-Qt<6xS@-s>{OM>iY*&c?b? +aZznm(1lyi>j4IAX>oOFWB>&L0#*~&*VKn|nRBmPlPrrd^EP>$AHP6|FsuXsI;G3ONU+9nu7-Qt<6xS@ +-s>{OM>iY*&c?b?aZznm(1lyi>kwE&Xklq?Q)OdvWpq$AHP6|FsuXsI;G3ONN5@Byw$T9tCzEwrAszt-P)%HZ|LbH=L2A=l(W4CP5}mNX>oOFWB>&L +0#*~&*VKn|nRBmPlPrrd^EP>$AHP6|FsuXsI;G3ONN5@Byw$T9tCzEwrAszt-P)%HZ|LbH=L2A=l(W4C +P6}8jc*fjc*fC6j$4@3WXB2nQh5J`CA|{D{s-6>11)nm&i?f7heRLtGv{8Aa0@ x;yF&Uz$@JiAoY?D0SxZ85si_pxMhH9pMR%K?)7+bCIvMdqJX)Fjw_yuFlI~o80 delta 283 zcmaD}yS08pA4|9!1E*t7iBDo>YLOu`BU?^pVQFRxBM)3GIJJb8k%5!(M0Qg(cU0}M zi7YBbPnFdBFPuLr6`rxc+kTaygS1VZG6NL+htQk*Sr&>jvTrt&;b-LLN`%@_Y&f}5 zOmT9*j>2XK*;3ZYj0S3xZ!5jmK~lh|5*~CTwc*2@Q(4O9Awn(+2{ns#>ffFDC?dd+ z&&8?Lv-y-V2fOC;kCQZ4KbCpuzw*@``;FHNHH+qYT`cJHvJamY8dL9M&5@g0l9-ZM zk_fd>akH)VBwhvMl*oX;_ZnrCKVIH?$I0)Xli9O`uLYJiuXKNkRXO~T-~8U<2P*)j C{%R8d diff --git a/stl/RGBCommit@0.1.0.sty b/stl/RGBCommit@0.1.0.sty index 2f28c663..f44fef37 100644 --- a/stl/RGBCommit@0.1.0.sty +++ b/stl/RGBCommit@0.1.0.sty @@ -1,5 +1,5 @@ {- - Id: stl:IFcnrPeI-TANxLfZ-feJax6Q-1TUM4Hq-AjI161s-3tbmxak#harvest-person-orion + Id: stl:bJ8Swut6-fEFixNt-bJuRY6D-ZNyYV2D-aNfTFnN-68w5Ngk#point-ariel-kinetic Name: RGBCommit Version: 0.1.0 Description: Consensus commitment layer for RGB smart contracts @@ -44,13 +44,6 @@ import Bitcoin#signal-color-cipher use Txid#shallow-light-reverse -@mnemonic(edison-survive-nitro) -data AltLayer1 : liquid#1 | (|) - - -@mnemonic(almond-office-pulse) -data AltLayer1Set : {AltLayer1 ^ ..0xff} - @mnemonic(slang-amber-club) data AssetTag : [Byte ^ 32] @@ -184,13 +177,12 @@ data AttachId : [Byte ^ 32] @mnemonic(harvard-burma-bicycle) data AttachState : id AttachId, mediaType MediaType -@mnemonic(amadeus-sunday-casino) +@mnemonic(needle-minute-harvest) data BaseCommitment : flags CommitVerify.ReservedBytes1 , schemaId SchemaId , timestamp I64 , issuer CommitVerify.StrictHash , testnet Std.Bool - , altLayers1 CommitVerify.StrictHash , assetTags CommitVerify.StrictHash @mnemonic(animal-plume-minus) @@ -245,14 +237,13 @@ data FungibleState : bits64#8 U64 | (|) data FungibleType : unsigned64Bit#8 | (|) -@mnemonic(fashion-delta-polka) +@mnemonic(gossip-daniel-under) data Genesis : ffv Ffv , schemaId SchemaId , flags CommitVerify.ReservedBytes1 , timestamp I64 , issuer Identity , testnet Std.Bool - , altLayers1 AltLayer1Set , assetTags AssetTags , metadata Metadata , globals GlobalState diff --git a/stl/RGBLogic@0.1.0.sta b/stl/RGBLogic@0.1.0.sta index b84bc9fd..801484bb 100644 --- a/stl/RGBLogic@0.1.0.sta +++ b/stl/RGBLogic@0.1.0.sta @@ -1,14 +1,14 @@ -----BEGIN STRICT TYPE LIB----- -Id: stl:mqltqlPk-O9$pYOd-BACRI70-DOMJ6cp-TFvhcK1-ibrOI9U#import-boxer-seminar +Id: stl:lvwcOo0a-!8WJfTD-eeERZkb-hZFG$r5-W2uKv!P-Oujw$hM#regular-moment-north Name: RGBLogic Dependencies: - RGBCommit#harvest-person-orion, BPCore#austin-story-retro, + RGBCommit#point-ariel-kinetic, Bitcoin#signal-color-cipher -Check-SHA256: 1c7df052c1790167b3a2f4748d4a8d602f3c8473195826c02efa6efc43b7f396 +Check-SHA256: 0f523c2ad78b34ba09423c41e6c93499f38a3ae3e23c24ae9b3f8a55a6ec4ebb -2vSEvOmAmtV*?;pC#?5~OapN(_Fs6GvFQy{P|gRa2*}s1Y~I%9#iMoHhG*Mzd(pEtONi$rOUxc20~CnZ*pbzY!hN5_Bp3Y36tDMM#=e#tGI($UA5U3KNx<*C>ja}LTPkk +2vSEvOmAmtV*^$b*4NaBbD49mT$3z|G4nQgoFBhHh%l@K06L}1!AJ%|P(yEWWo(}k!s~i`L1M()TPEaK +=r&Esg?0_2Urbre>&!Ve2?ja}LTPkk Z)t7=20~CnZ*pY?00DdlT>wB!7L}MA7sFvK#<=RP4S#T1Vv-hhTICs&5fM~jaB^jIPH$voP+@X(Ze?;0 wjY>38tto&d&=eG4cRAF#( @@ -24,15 +24,15 @@ iRT*14O40w5C%+Pd1Z1jmB{9L9(7`0)Rt93YLV-HLXe?vTA1;^Q1`ZqBog<<1W#~DWCZ{SL}Fu5a&K>D n*!v8^Ea7rh?dzC2n+%RZ*X#DbN~eb0#*~&*VKn|nRBmPlPrrd^EP>$AHP6|FsuXsI;G3ONJmc3T+rxD K6vW;JU&?LxLM72H?wDC1Zo}=N}D)4mkCE~Z(?C=PjX}i0tIhyPjX}d{&9|4h)I8ST&b@+9Xb*9;C#?5~OapN(_Fs6GvFQy{P|gRa2*}s1Y~I%9 -#i?X<9zv-Vp*%wog4O?q)g04AaHEjnO6;Ie%sNwVNZti*Z*F5{000OCZ*Xa30w7l>toMja192_(UwD?W -=?zm*&IhOn$k(lG-qz;Dsg=m)dLDIRU(}XWLTZugenOC;Z(5k~zEJnJiX;;E#s3O)a$#@6CZU6=Z -2X|?7Ze??G0dl)S$QV;yG0%+u`Lqfm#|FpRuujhTP8r)T_J?np;R1Ad0w7l>toMja192_(UwD?W=?zm* -&IhOn$k(lG-qz;DsWeg#t`n9TUcD*&5hFi^PVx{q1b@^7zTcrn*%qZTXa#O>ZewKt00;zcaA{-$AXg`> -_lQgbaV_>=c$Ts04O39g2dD_h*R5>c*5<{jmB{9L9(7`0)Rt93YLV-HLXe?vTA1;^Q1`ZqBog<<3Rh`# +LdY0XT`|v$|M|2EBF6^D+OST}`A!+zFZPFTn&AR;c>-*o62j|xd_iKw+gm2&Sm-uQ$%S?eqhCx}&FjoL +HVI^P9zv-Vp*%wog4O?q)g04AaHEjnO6;Ie%sNwVNZti*Z*F5{000OCZ*Xa30&JfW!s~i`L1M()TPEaK +=r&Esg?0_2Urbre>&!Ve36;p^dLDIRU(}XWLTZugenOC;Z(5k~zEJnJiX;;E#s3O)a$#@6CZU6=Z +2X|?7Ze??G0dl)S$QV;yG0%+u`Lqfm#|FpRuujhTP8r)T_J?np;R1Ad0&JfW!s~i`L1M()TPEaK=r&Es +g?0_2Urbre>&!Ve2{cjZewKt00;zcaA{-$Y@ZUs +>w0`aV#M29CgfP?HciQeb`7InOj*tA%sDm*mB{9L9(7`0)Rt93YLV-HLXe?vTA1;^Q1`ZqBog<<3Rh`# Ze??GPjX}g0{{qNa${&|c4cG$00036ZE0?0WB>&L0bJY;BNZ=sBHM?<`J6+Fr=A_lQgbaV_>=c$Ts04O39g2dD_h*R5>c -*5<{jdBoUB2y8Zom7+;NN8Xgkb3WeV)QDb*=NiflQ)(Iz254nzXJ~W)00aqiX>Db5bYX39002k +5&{WyWo~p~bZK^F0000AS7~%^Wpi^-Z*v9%25ez@WpXhBY@ZUs>w0`aV#M29CgfP?HciQeb`7InOj*tA +%sDm*dBoUB2y8Zom7+;NN8Xgkb3WeV)QDb*=NiflQ)(Iz254nzXJ~W)00aqiX>Db5bYX39002k -----END STRICT TYPE LIB----- diff --git a/stl/RGBLogic@0.1.0.stl b/stl/RGBLogic@0.1.0.stl index 24ed32dcaf2d1780f0739aa2747b186da33cf42c..4cb4f049131be20ef1330ad5d5892dcc3319b9ba 100644 GIT binary patch delta 281 zcmey(^P7i@Bgoy!CqF$inR&7wvw|U;Q-E`RQEJY7p+m2$Y8;b}+>Taz67j;!_hf4s z@8Wo$$g{7{SekKi0(Cj(=jLXXY>Z}SQ6Qvz@@^&teb&7EyyR2{1`d||g3J^qf_g5p e#1J;vmsOvzqKhmFllQP@5LWn-NpW&2n-~DRFL@gP delta 281 zcmey(^P9(nBgoy!CqF$inOPxRea-g{ALc^cZ}An=HooKy4miiYg5$*XwK?~$Jv+LR z6R6TTKQ}kCWU?Q#0y~>ifOCFP>c(hx76n3DC+}ub&}Yrd&r42aVBlcMFUU+`BB