@@ -140,11 +140,12 @@ pub struct UnchangedSharedObject {
140
140
/// =/ canceled
141
141
/// =/ per-epoch-config
142
142
///
143
- /// read-only-root = %x00 u64 digest
144
- /// mutate-deleted = %x01 u64
145
- /// read-deleted = %x02 u64
146
- /// canceled = %x03 u64
147
- /// per-epoch-config = %x04
143
+ /// read-only-root = %x00 u64 digest
144
+ /// mutate-deleted = %x01 u64
145
+ /// read-deleted = %x02 u64
146
+ /// canceled = %x03 u64
147
+ /// per-epoch-config = %x04
148
+ /// per-epoch-config-with-sequence-number = %x05 u64
148
149
/// ```
149
150
#[ derive( Eq , PartialEq , Clone , Debug ) ]
150
151
#[ cfg_attr( feature = "proptest" , derive( test_strategy:: Arbitrary ) ) ]
@@ -166,7 +167,11 @@ pub enum UnchangedSharedKind {
166
167
Canceled { version : Version } ,
167
168
168
169
/// Read of a per-epoch config object that should remain the same during an epoch.
170
+ /// NOTE: Will be deprecated in the near future in favor of `PerEpochConfigWithSequenceNumber`.
169
171
PerEpochConfig ,
172
+
173
+ /// Read of a per-epoch config and it's starting sequence number in the epoch.
174
+ PerEpochConfigWithSequenceNumber { version : Version } ,
170
175
}
171
176
172
177
/// State of an object prior to execution
@@ -488,6 +493,10 @@ mod serialization {
488
493
version : Version ,
489
494
} ,
490
495
PerEpochConfig ,
496
+ PerEpochConfigWithSequenceNumber {
497
+ #[ serde( with = "crate::_serde::ReadableDisplay" ) ]
498
+ version : Version ,
499
+ } ,
491
500
}
492
501
493
502
#[ derive( serde_derive:: Serialize , serde_derive:: Deserialize ) ]
@@ -506,6 +515,9 @@ mod serialization {
506
515
version : Version ,
507
516
} ,
508
517
PerEpochConfig ,
518
+ PerEpochConfigWithSequenceNumber {
519
+ version : Version ,
520
+ } ,
509
521
}
510
522
511
523
impl Serialize for UnchangedSharedKind {
@@ -530,6 +542,9 @@ mod serialization {
530
542
UnchangedSharedKind :: PerEpochConfig => {
531
543
ReadableUnchangedSharedKind :: PerEpochConfig
532
544
}
545
+ UnchangedSharedKind :: PerEpochConfigWithSequenceNumber { version } => {
546
+ ReadableUnchangedSharedKind :: PerEpochConfigWithSequenceNumber { version }
547
+ }
533
548
} ;
534
549
readable. serialize ( serializer)
535
550
} else {
@@ -549,6 +564,9 @@ mod serialization {
549
564
UnchangedSharedKind :: PerEpochConfig => {
550
565
BinaryUnchangedSharedKind :: PerEpochConfig
551
566
}
567
+ UnchangedSharedKind :: PerEpochConfigWithSequenceNumber { version } => {
568
+ BinaryUnchangedSharedKind :: PerEpochConfigWithSequenceNumber { version }
569
+ }
552
570
} ;
553
571
binary. serialize ( serializer)
554
572
}
@@ -576,6 +594,9 @@ mod serialization {
576
594
Self :: Canceled { version }
577
595
}
578
596
ReadableUnchangedSharedKind :: PerEpochConfig => Self :: PerEpochConfig ,
597
+ ReadableUnchangedSharedKind :: PerEpochConfigWithSequenceNumber {
598
+ version,
599
+ } => Self :: PerEpochConfigWithSequenceNumber { version } ,
579
600
} ,
580
601
)
581
602
} else {
@@ -591,6 +612,9 @@ mod serialization {
591
612
}
592
613
BinaryUnchangedSharedKind :: Canceled { version } => Self :: Canceled { version } ,
593
614
BinaryUnchangedSharedKind :: PerEpochConfig => Self :: PerEpochConfig ,
615
+ BinaryUnchangedSharedKind :: PerEpochConfigWithSequenceNumber { version } => {
616
+ Self :: PerEpochConfigWithSequenceNumber { version }
617
+ }
594
618
} )
595
619
}
596
620
}
0 commit comments