Skip to content

Commit cca3618

Browse files
committed
Make SYNC_COMMITTEE_DUTY_TYPE deserializable
1 parent aad77d8 commit cca3618

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/validator/SyncCommitteeDutyBuilder.java

+21-7
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,36 @@
1515

1616
import static tech.pegasys.teku.ethereum.json.types.EthereumTypes.PUBLIC_KEY_TYPE;
1717
import static tech.pegasys.teku.infrastructure.json.types.CoreTypes.INTEGER_TYPE;
18+
import static tech.pegasys.teku.infrastructure.json.types.DeserializableTypeDefinition.listOf;
1819

1920
import it.unimi.dsi.fastutil.ints.IntArrayList;
21+
import it.unimi.dsi.fastutil.ints.IntArraySet;
2022
import it.unimi.dsi.fastutil.ints.IntSet;
2123
import tech.pegasys.teku.bls.BLSPublicKey;
22-
import tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition;
24+
import tech.pegasys.teku.infrastructure.json.types.DeserializableTypeDefinition;
2325

2426
public class SyncCommitteeDutyBuilder {
25-
public static final SerializableTypeDefinition<SyncCommitteeDuty> SYNC_COMMITTEE_DUTY_TYPE =
26-
SerializableTypeDefinition.object(SyncCommitteeDuty.class)
27-
.withField("pubkey", PUBLIC_KEY_TYPE, SyncCommitteeDuty::getPublicKey)
28-
.withField("validator_index", INTEGER_TYPE, SyncCommitteeDuty::getValidatorIndex)
27+
public static final DeserializableTypeDefinition<SyncCommitteeDuty> SYNC_COMMITTEE_DUTY_TYPE =
28+
DeserializableTypeDefinition.object(SyncCommitteeDuty.class, SyncCommitteeDutyBuilder.class)
29+
.initializer(SyncCommitteeDutyBuilder::new)
30+
.finisher(SyncCommitteeDutyBuilder::build)
31+
.withField(
32+
"pubkey",
33+
PUBLIC_KEY_TYPE,
34+
SyncCommitteeDuty::getPublicKey,
35+
SyncCommitteeDutyBuilder::publicKey)
36+
.withField(
37+
"validator_index",
38+
INTEGER_TYPE,
39+
SyncCommitteeDuty::getValidatorIndex,
40+
SyncCommitteeDutyBuilder::validatorIndex)
2941
.withField(
3042
"validator_sync_committee_indices",
31-
SerializableTypeDefinition.listOf(INTEGER_TYPE),
43+
listOf(INTEGER_TYPE),
3244
syncCommitteeDuty ->
33-
new IntArrayList(syncCommitteeDuty.getValidatorSyncCommitteeIndices()))
45+
new IntArrayList(syncCommitteeDuty.getValidatorSyncCommitteeIndices()),
46+
(syncCommitteeDutyBuilder, integers) ->
47+
syncCommitteeDutyBuilder.validatorSyncCommitteeIndices(new IntArraySet(integers)))
3448
.build();
3549

3650
private BLSPublicKey publicKey;

0 commit comments

Comments
 (0)