@@ -19,7 +19,7 @@ pub struct ChunkWitness {
1919 /// The code version specify the chain spec
2020 pub fork_name : ForkName ,
2121 /// The compression ratios for each block in the chunk.
22- pub compression_ratios : Vec < Vec < U256 > > ,
22+ pub compression_infos : Vec < Vec < ( U256 , usize ) > > ,
2323 /// Validium encrypted txs and secret key if this is a validium chain.
2424 pub validium : Option < ValidiumInputs > ,
2525}
@@ -33,6 +33,23 @@ pub struct ValidiumInputs {
3333 pub secret_key : Box < [ u8 ] > ,
3434}
3535
36+ /// The witness type accepted by last version chunk-circuit.
37+ #[ derive( Clone , Debug , serde:: Serialize , serde:: Deserialize ) ]
38+ pub struct ChunkWitnessUpgradeCompact {
39+ /// Version byte as per [version][types_base::version].
40+ pub version : u8 ,
41+ /// The block witness for each block in the chunk.
42+ pub blocks : Vec < BlockWitness > ,
43+ /// The on-chain rolling L1 message queue hash before enqueueing any L1 msg tx from the chunk.
44+ pub prev_msg_queue_hash : B256 ,
45+ /// The code version specify the chain spec
46+ pub fork_name : ForkName ,
47+ /// The compression ratios for each block in the chunk.
48+ pub compression_ratios : Vec < Vec < U256 > > ,
49+ /// Validium encrypted txs and secret key if this is a validium chain.
50+ pub validium : Option < ValidiumInputs > ,
51+ }
52+
3653/// The witness type accepted by the chunk-circuit.
3754#[ derive(
3855 Clone ,
@@ -129,17 +146,18 @@ impl ChunkWitness {
129146 . collect ( ) ,
130147 } )
131148 . collect ( ) ;
132- let compression_ratios = blocks
149+
150+ let compression_infos = blocks
133151 . iter ( )
134- . map ( |block| block. compression_ratios ( ) )
152+ . map ( |block| block. compression_infos ( ) )
135153 . collect ( ) ;
136154
137155 Self {
138156 version,
139157 blocks,
140158 prev_msg_queue_hash,
141159 fork_name,
142- compression_ratios ,
160+ compression_infos ,
143161 validium,
144162 }
145163 }
@@ -183,8 +201,29 @@ impl From<ChunkWitness> for LegacyChunkWitness {
183201 . collect ( ) ,
184202 prev_msg_queue_hash : value. prev_msg_queue_hash ,
185203 fork_name : value. fork_name ,
186- compression_ratios : value. compression_ratios ,
204+ compression_ratios : value
205+ . compression_infos
206+ . iter ( )
207+ . map ( |compression_infos| compression_infos. iter ( ) . map ( |v| v. 0 ) . collect ( ) )
208+ . collect ( ) ,
187209 state_commit_mode : StateCommitMode :: Auto ,
188210 }
189211 }
190212}
213+
214+ impl From < ChunkWitness > for ChunkWitnessUpgradeCompact {
215+ fn from ( value : ChunkWitness ) -> Self {
216+ ChunkWitnessUpgradeCompact {
217+ version : value. version ,
218+ blocks : value. blocks ,
219+ prev_msg_queue_hash : value. prev_msg_queue_hash ,
220+ fork_name : value. fork_name ,
221+ compression_ratios : value
222+ . compression_infos
223+ . iter ( )
224+ . map ( |compression_infos| compression_infos. iter ( ) . map ( |v| v. 0 ) . collect ( ) )
225+ . collect ( ) ,
226+ validium : value. validium ,
227+ }
228+ }
229+ }
0 commit comments