Skip to content

Commit a8ad977

Browse files
committed
provide schema registry in schema definitions
1 parent 394d70c commit a8ad977

File tree

12 files changed

+125
-54
lines changed

12 files changed

+125
-54
lines changed

ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecVersion.java

Lines changed: 57 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
import tech.pegasys.teku.spec.schemas.SchemaDefinitionsDeneb;
3838
import tech.pegasys.teku.spec.schemas.SchemaDefinitionsElectra;
3939
import tech.pegasys.teku.spec.schemas.SchemaDefinitionsPhase0;
40+
import tech.pegasys.teku.spec.schemas.SchemaRegistry;
41+
import tech.pegasys.teku.spec.schemas.SchemaRegistryBuilder;
4042

4143
public class SpecVersion extends DelegatingSpecLogic {
4244
private final SpecMilestone milestone;
@@ -56,53 +58,90 @@ private SpecVersion(
5658

5759
public static Optional<SpecVersion> create(
5860
final SpecMilestone milestone, final SpecConfig specConfig) {
61+
final SchemaRegistryBuilder schemaRegistryBuilder = SchemaRegistryBuilder.create();
5962
return switch (milestone) {
60-
case PHASE0 -> Optional.of(createPhase0(specConfig));
61-
case ALTAIR -> specConfig.toVersionAltair().map(SpecVersion::createAltair);
62-
case BELLATRIX -> specConfig.toVersionBellatrix().map(SpecVersion::createBellatrix);
63-
case CAPELLA -> specConfig.toVersionCapella().map(SpecVersion::createCapella);
64-
case DENEB -> specConfig.toVersionDeneb().map(SpecVersion::createDeneb);
65-
case ELECTRA -> specConfig.toVersionElectra().map(SpecVersion::createElectra);
63+
case PHASE0 -> Optional.of(createPhase0(specConfig, schemaRegistryBuilder));
64+
case ALTAIR ->
65+
specConfig
66+
.toVersionAltair()
67+
.map(specConfigAltair -> createAltair(specConfigAltair, schemaRegistryBuilder));
68+
case BELLATRIX ->
69+
specConfig
70+
.toVersionBellatrix()
71+
.map(
72+
specConfigBellatrix ->
73+
createBellatrix(specConfigBellatrix, schemaRegistryBuilder));
74+
case CAPELLA ->
75+
specConfig
76+
.toVersionCapella()
77+
.map(specConfigCapella -> createCapella(specConfigCapella, schemaRegistryBuilder));
78+
case DENEB ->
79+
specConfig
80+
.toVersionDeneb()
81+
.map(specConfigDeneb -> createDeneb(specConfigDeneb, schemaRegistryBuilder));
82+
case ELECTRA ->
83+
specConfig
84+
.toVersionElectra()
85+
.map(specConfigElectra -> createElectra(specConfigElectra, schemaRegistryBuilder));
6686
};
6787
}
6888

69-
static SpecVersion createPhase0(final SpecConfig specConfig) {
70-
final SchemaDefinitions schemaDefinitions = new SchemaDefinitionsPhase0(specConfig);
89+
static SpecVersion createPhase0(
90+
final SpecConfig specConfig, final SchemaRegistryBuilder schemaRegistryBuilder) {
91+
final SchemaRegistry schemaRegistry =
92+
schemaRegistryBuilder.build(SpecMilestone.PHASE0, specConfig);
93+
final SchemaDefinitions schemaDefinitions = new SchemaDefinitionsPhase0(schemaRegistry);
7194
final SpecLogic specLogic =
7295
SpecLogicPhase0.create(specConfig, schemaDefinitions, SYSTEM_TIME_PROVIDER);
7396
return new SpecVersion(SpecMilestone.PHASE0, specConfig, schemaDefinitions, specLogic);
7497
}
7598

76-
static SpecVersion createAltair(final SpecConfigAltair specConfig) {
77-
final SchemaDefinitionsAltair schemaDefinitions = new SchemaDefinitionsAltair(specConfig);
99+
static SpecVersion createAltair(
100+
final SpecConfigAltair specConfig, final SchemaRegistryBuilder schemaRegistryBuilder) {
101+
final SchemaRegistry schemaRegistry =
102+
schemaRegistryBuilder.build(SpecMilestone.ALTAIR, specConfig);
103+
final SchemaDefinitionsAltair schemaDefinitions = new SchemaDefinitionsAltair(schemaRegistry);
78104
final SpecLogic specLogic =
79105
SpecLogicAltair.create(specConfig, schemaDefinitions, SYSTEM_TIME_PROVIDER);
80106
return new SpecVersion(SpecMilestone.ALTAIR, specConfig, schemaDefinitions, specLogic);
81107
}
82108

83-
static SpecVersion createBellatrix(final SpecConfigBellatrix specConfig) {
84-
final SchemaDefinitionsBellatrix schemaDefinitions = new SchemaDefinitionsBellatrix(specConfig);
109+
static SpecVersion createBellatrix(
110+
final SpecConfigBellatrix specConfig, final SchemaRegistryBuilder schemaRegistryBuilder) {
111+
final SchemaRegistry schemaRegistry =
112+
schemaRegistryBuilder.build(SpecMilestone.BELLATRIX, specConfig);
113+
final SchemaDefinitionsBellatrix schemaDefinitions =
114+
new SchemaDefinitionsBellatrix(schemaRegistry);
85115
final SpecLogic specLogic =
86116
SpecLogicBellatrix.create(specConfig, schemaDefinitions, SYSTEM_TIME_PROVIDER);
87117
return new SpecVersion(SpecMilestone.BELLATRIX, specConfig, schemaDefinitions, specLogic);
88118
}
89119

90-
static SpecVersion createCapella(final SpecConfigCapella specConfig) {
91-
final SchemaDefinitionsCapella schemaDefinitions = new SchemaDefinitionsCapella(specConfig);
120+
static SpecVersion createCapella(
121+
final SpecConfigCapella specConfig, final SchemaRegistryBuilder schemaRegistryBuilder) {
122+
final SchemaRegistry schemaRegistry =
123+
schemaRegistryBuilder.build(SpecMilestone.CAPELLA, specConfig);
124+
final SchemaDefinitionsCapella schemaDefinitions = new SchemaDefinitionsCapella(schemaRegistry);
92125
final SpecLogicCapella specLogic =
93126
SpecLogicCapella.create(specConfig, schemaDefinitions, SYSTEM_TIME_PROVIDER);
94127
return new SpecVersion(SpecMilestone.CAPELLA, specConfig, schemaDefinitions, specLogic);
95128
}
96129

97-
static SpecVersion createDeneb(final SpecConfigDeneb specConfig) {
98-
final SchemaDefinitionsDeneb schemaDefinitions = new SchemaDefinitionsDeneb(specConfig);
130+
static SpecVersion createDeneb(
131+
final SpecConfigDeneb specConfig, final SchemaRegistryBuilder schemaRegistryBuilder) {
132+
final SchemaRegistry schemaRegistry =
133+
schemaRegistryBuilder.build(SpecMilestone.DENEB, specConfig);
134+
final SchemaDefinitionsDeneb schemaDefinitions = new SchemaDefinitionsDeneb(schemaRegistry);
99135
final SpecLogicDeneb specLogic =
100136
SpecLogicDeneb.create(specConfig, schemaDefinitions, SYSTEM_TIME_PROVIDER);
101137
return new SpecVersion(SpecMilestone.DENEB, specConfig, schemaDefinitions, specLogic);
102138
}
103139

104-
static SpecVersion createElectra(final SpecConfigElectra specConfig) {
105-
final SchemaDefinitionsElectra schemaDefinitions = new SchemaDefinitionsElectra(specConfig);
140+
static SpecVersion createElectra(
141+
final SpecConfigElectra specConfig, final SchemaRegistryBuilder schemaRegistryBuilder) {
142+
final SchemaRegistry schemaRegistry =
143+
schemaRegistryBuilder.build(SpecMilestone.ELECTRA, specConfig);
144+
final SchemaDefinitionsElectra schemaDefinitions = new SchemaDefinitionsElectra(schemaRegistry);
106145
final SpecLogicElectra specLogic =
107146
SpecLogicElectra.create(specConfig, schemaDefinitions, SYSTEM_TIME_PROVIDER);
108147
return new SpecVersion(SpecMilestone.ELECTRA, specConfig, schemaDefinitions, specLogic);

ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/AbstractSchemaDefinitions.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import tech.pegasys.teku.spec.datastructures.state.HistoricalBatch.HistoricalBatchSchema;
2222

2323
public abstract class AbstractSchemaDefinitions implements SchemaDefinitions {
24+
protected SchemaRegistry schemaRegistry;
2425

2526
final SszBitvectorSchema<SszBitvector> attnetsENRFieldSchema;
2627
final SszBitvectorSchema<SszBitvector> syncnetsENRFieldSchema =
@@ -29,16 +30,25 @@ public abstract class AbstractSchemaDefinitions implements SchemaDefinitions {
2930
private final BeaconBlocksByRootRequestMessage.BeaconBlocksByRootRequestMessageSchema
3031
beaconBlocksByRootRequestMessageSchema;
3132

32-
public AbstractSchemaDefinitions(final SpecConfig specConfig) {
33-
this.historicalBatchSchema = new HistoricalBatchSchema(specConfig.getSlotsPerHistoricalRoot());
33+
public AbstractSchemaDefinitions(final SchemaRegistry schemaRegistry) {
34+
this.schemaRegistry = schemaRegistry;
35+
this.historicalBatchSchema =
36+
new HistoricalBatchSchema(schemaRegistry.getSpecConfig().getSlotsPerHistoricalRoot());
3437

3538
this.beaconBlocksByRootRequestMessageSchema =
36-
new BeaconBlocksByRootRequestMessage.BeaconBlocksByRootRequestMessageSchema(specConfig);
37-
this.attnetsENRFieldSchema = SszBitvectorSchema.create(specConfig.getAttestationSubnetCount());
39+
new BeaconBlocksByRootRequestMessage.BeaconBlocksByRootRequestMessageSchema(
40+
schemaRegistry.getSpecConfig());
41+
this.attnetsENRFieldSchema =
42+
SszBitvectorSchema.create(schemaRegistry.getSpecConfig().getAttestationSubnetCount());
3843
}
3944

4045
abstract long getMaxValidatorPerAttestation(SpecConfig specConfig);
4146

47+
@Override
48+
public SchemaRegistry getSchemaRegistry() {
49+
return schemaRegistry;
50+
}
51+
4252
@Override
4353
public SszBitvectorSchema<SszBitvector> getAttnetsENRFieldSchema() {
4454
return attnetsENRFieldSchema;

ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitions.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ public interface SchemaDefinitions {
8989
@NonSchema
9090
BeaconBlockBodyBuilder createBeaconBlockBodyBuilder();
9191

92+
@NonSchema
93+
SchemaRegistry getSchemaRegistry();
94+
9295
@NonSchema
9396
default Optional<SchemaDefinitionsAltair> toVersionAltair() {
9497
return Optional.empty();

ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsAltair.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,9 @@ public class SchemaDefinitionsAltair extends AbstractSchemaDefinitions {
7272
private final LightClientUpdateSchema lightClientUpdateSchema;
7373
private final LightClientUpdateResponseSchema lightClientUpdateResponseSchema;
7474

75-
public SchemaDefinitionsAltair(final SpecConfigAltair specConfig) {
76-
super(specConfig);
75+
public SchemaDefinitionsAltair(final SchemaRegistry schemaRegistry) {
76+
super(schemaRegistry);
77+
final SpecConfigAltair specConfig = SpecConfigAltair.required(schemaRegistry.getSpecConfig());
7778
this.indexedAttestationSchema =
7879
new IndexedAttestationPhase0Schema(getMaxValidatorPerAttestation(specConfig))
7980
.castTypeToIndexedAttestationSchema();

ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsBellatrix.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,10 @@ public class SchemaDefinitionsBellatrix extends SchemaDefinitionsAltair {
5252
private final BuilderBidSchema<?> builderBidSchema;
5353
private final SignedBuilderBidSchema signedBuilderBidSchema;
5454

55-
public SchemaDefinitionsBellatrix(final SpecConfigBellatrix specConfig) {
56-
super(specConfig);
55+
public SchemaDefinitionsBellatrix(final SchemaRegistry schemaRegistry) {
56+
super(schemaRegistry);
57+
final SpecConfigBellatrix specConfig =
58+
SpecConfigBellatrix.required(schemaRegistry.getSpecConfig());
5759
final long maxValidatorsPerAttestation = getMaxValidatorPerAttestation(specConfig);
5860
this.beaconStateSchema = BeaconStateSchemaBellatrix.create(specConfig);
5961
this.executionPayloadHeaderSchema = beaconStateSchema.getLastExecutionPayloadHeaderSchema();

ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsCapella.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,9 @@ public class SchemaDefinitionsCapella extends SchemaDefinitionsBellatrix {
7070

7171
private final HistoricalSummary.HistoricalSummarySchema historicalSummarySchema;
7272

73-
public SchemaDefinitionsCapella(final SpecConfigCapella specConfig) {
74-
super(specConfig);
73+
public SchemaDefinitionsCapella(final SchemaRegistry schemaRegistry) {
74+
super(schemaRegistry);
75+
final SpecConfigCapella specConfig = SpecConfigCapella.required(schemaRegistry.getSpecConfig());
7576
this.executionPayloadSchemaCapella = new ExecutionPayloadSchemaCapella(specConfig);
7677
this.blsToExecutionChangeSchema = new BlsToExecutionChangeSchema();
7778
this.signedBlsToExecutionChangeSchema = new SignedBlsToExecutionChangeSchema();

ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsDeneb.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,9 @@ public class SchemaDefinitionsDeneb extends SchemaDefinitionsCapella {
8282
private final ExecutionPayloadAndBlobsBundleSchema executionPayloadAndBlobsBundleSchema;
8383
private final BlobSidecarsByRootRequestMessageSchema blobSidecarsByRootRequestMessageSchema;
8484

85-
public SchemaDefinitionsDeneb(final SpecConfigDeneb specConfig) {
86-
super(specConfig);
85+
public SchemaDefinitionsDeneb(final SchemaRegistry schemaRegistry) {
86+
super(schemaRegistry);
87+
final SpecConfigDeneb specConfig = SpecConfigDeneb.required(schemaRegistry.getSpecConfig());
8788
this.executionPayloadSchemaDeneb = new ExecutionPayloadSchemaDeneb(specConfig);
8889

8990
this.beaconStateSchema = BeaconStateSchemaDeneb.create(specConfig);

ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsElectra.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,9 @@ public class SchemaDefinitionsElectra extends SchemaDefinitionsDeneb {
107107
pendingPartialWithdrawalSchema;
108108
private final PendingConsolidation.PendingConsolidationSchema pendingConsolidationSchema;
109109

110-
public SchemaDefinitionsElectra(final SpecConfigElectra specConfig) {
111-
super(specConfig);
110+
public SchemaDefinitionsElectra(final SchemaRegistry schemaRegistry) {
111+
super(schemaRegistry);
112+
final SpecConfigElectra specConfig = SpecConfigElectra.required(schemaRegistry.getSpecConfig());
112113

113114
final long maxValidatorsPerAttestation = getMaxValidatorPerAttestation(specConfig);
114115
this.indexedAttestationSchema =

ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsPhase0.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,9 @@ public class SchemaDefinitionsPhase0 extends AbstractSchemaDefinitions {
5252
private final BeaconBlockSchema beaconBlockSchema;
5353
private final SignedBeaconBlockSchema signedBeaconBlockSchema;
5454

55-
public SchemaDefinitionsPhase0(final SpecConfig specConfig) {
56-
super(specConfig);
55+
public SchemaDefinitionsPhase0(final SchemaRegistry schemaRegistry) {
56+
super(schemaRegistry);
57+
final SpecConfig specConfig = schemaRegistry.getSpecConfig();
5758
this.indexedAttestationSchema =
5859
new IndexedAttestationPhase0Schema(getMaxValidatorPerAttestation(specConfig))
5960
.castTypeToIndexedAttestationSchema();

ethereum/spec/src/test/java/tech/pegasys/teku/spec/ForkScheduleTest.java

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import tech.pegasys.teku.spec.datastructures.state.Fork;
2626
import tech.pegasys.teku.spec.datastructures.util.ForkAndSpecMilestone;
2727
import tech.pegasys.teku.spec.networks.Eth2Network;
28+
import tech.pegasys.teku.spec.schemas.SchemaRegistryBuilder;
2829

2930
public class ForkScheduleTest {
3031
private static final SpecConfig MINIMAL_CONFIG =
@@ -57,10 +58,12 @@ public class ForkScheduleTest {
5758
TRANSITION_CONFIG.toVersionAltair().orElseThrow().getAltairForkVersion();
5859
static final Bytes4 UNKNOWN_FORK_VERSION = Bytes4.fromHexStringLenient("0xFFFFFFFF");
5960

61+
static final SchemaRegistryBuilder SCHEMA_REGISTRY_BUILDER = SchemaRegistryBuilder.create();
62+
6063
@Test
6164
public void build_validScheduleWithAltairTransition() {
62-
final SpecVersion phase0 = SpecVersion.createPhase0(TRANSITION_CONFIG);
63-
final SpecVersion altair = SpecVersion.createAltair(TRANSITION_CONFIG);
65+
final SpecVersion phase0 = SpecVersion.createPhase0(TRANSITION_CONFIG, SCHEMA_REGISTRY_BUILDER);
66+
final SpecVersion altair = SpecVersion.createAltair(TRANSITION_CONFIG, SCHEMA_REGISTRY_BUILDER);
6467

6568
final ForkSchedule forkSchedule =
6669
ForkSchedule.builder().addNextMilestone(phase0).addNextMilestone(altair).build();
@@ -70,8 +73,8 @@ public void build_validScheduleWithAltairTransition() {
7073

7174
@Test
7275
public void build_validScheduleWithAltairAtGenesis_phase0AndAltairSupplied() {
73-
final SpecVersion phase0 = SpecVersion.createPhase0(ALTAIR_CONFIG);
74-
final SpecVersion altair = SpecVersion.createAltair(ALTAIR_CONFIG);
76+
final SpecVersion phase0 = SpecVersion.createPhase0(ALTAIR_CONFIG, SCHEMA_REGISTRY_BUILDER);
77+
final SpecVersion altair = SpecVersion.createAltair(ALTAIR_CONFIG, SCHEMA_REGISTRY_BUILDER);
7578

7679
final ForkSchedule forkSchedule =
7780
ForkSchedule.builder().addNextMilestone(phase0).addNextMilestone(altair).build();
@@ -82,7 +85,7 @@ public void build_validScheduleWithAltairAtGenesis_phase0AndAltairSupplied() {
8285

8386
@Test
8487
public void build_validScheduleWithAltairAtGenesis_onlyAltairSupplied() {
85-
final SpecVersion altair = SpecVersion.createAltair(ALTAIR_CONFIG);
88+
final SpecVersion altair = SpecVersion.createAltair(ALTAIR_CONFIG, SCHEMA_REGISTRY_BUILDER);
8689

8790
final ForkSchedule forkSchedule = ForkSchedule.builder().addNextMilestone(altair).build();
8891

@@ -92,7 +95,7 @@ public void build_validScheduleWithAltairAtGenesis_onlyAltairSupplied() {
9295

9396
@Test
9497
public void build_validPhase0Schedule() {
95-
final SpecVersion phase0 = SpecVersion.createPhase0(PHASE0_CONFIG);
98+
final SpecVersion phase0 = SpecVersion.createPhase0(PHASE0_CONFIG, SCHEMA_REGISTRY_BUILDER);
9699

97100
final ForkSchedule forkSchedule = ForkSchedule.builder().addNextMilestone(phase0).build();
98101

@@ -102,7 +105,7 @@ public void build_validPhase0Schedule() {
102105

103106
@Test
104107
public void builder_milestonesSuppliedOutOfOrder_altairProcessedAtNonZeroSlot() {
105-
final SpecVersion altair = SpecVersion.createAltair(TRANSITION_CONFIG);
108+
final SpecVersion altair = SpecVersion.createAltair(TRANSITION_CONFIG, SCHEMA_REGISTRY_BUILDER);
106109
final ForkSchedule.Builder builder = ForkSchedule.builder();
107110

108111
assertThatThrownBy(() -> builder.addNextMilestone(altair))
@@ -112,8 +115,8 @@ public void builder_milestonesSuppliedOutOfOrder_altairProcessedAtNonZeroSlot()
112115

113116
@Test
114117
public void builder_milestonesSuppliedOutOfOrder_processAltairBeforePhase0() {
115-
final SpecVersion altair = SpecVersion.createAltair(ALTAIR_CONFIG);
116-
final SpecVersion phase0 = SpecVersion.createPhase0(ALTAIR_CONFIG);
118+
final SpecVersion altair = SpecVersion.createAltair(ALTAIR_CONFIG, SCHEMA_REGISTRY_BUILDER);
119+
final SpecVersion phase0 = SpecVersion.createPhase0(ALTAIR_CONFIG, SCHEMA_REGISTRY_BUILDER);
117120
final ForkSchedule.Builder builder = ForkSchedule.builder();
118121

119122
builder.addNextMilestone(altair);
@@ -132,7 +135,7 @@ public void getSupportedMilestones_withTransition() {
132135

133136
@Test
134137
public void getSupportedMilestones_onlyAltairConfigured() {
135-
final SpecVersion altair = SpecVersion.createAltair(ALTAIR_CONFIG);
138+
final SpecVersion altair = SpecVersion.createAltair(ALTAIR_CONFIG, SCHEMA_REGISTRY_BUILDER);
136139

137140
final ForkSchedule forkSchedule = ForkSchedule.builder().addNextMilestone(altair).build();
138141

@@ -142,7 +145,7 @@ public void getSupportedMilestones_onlyAltairConfigured() {
142145

143146
@Test
144147
public void getSupportedMilestones_onlyPhase0Configured() {
145-
final SpecVersion phase0 = SpecVersion.createPhase0(PHASE0_CONFIG);
148+
final SpecVersion phase0 = SpecVersion.createPhase0(PHASE0_CONFIG, SCHEMA_REGISTRY_BUILDER);
146149

147150
final ForkSchedule forkSchedule = ForkSchedule.builder().addNextMilestone(phase0).build();
148151

@@ -398,10 +401,11 @@ public void getGenesisFork_withTransition() {
398401

399402
private ForkSchedule buildForkSchedule(final SpecConfig specConfig) {
400403
final ForkSchedule.Builder builder = ForkSchedule.builder();
401-
builder.addNextMilestone(SpecVersion.createPhase0(specConfig));
404+
builder.addNextMilestone(SpecVersion.createPhase0(specConfig, SCHEMA_REGISTRY_BUILDER));
402405
specConfig
403406
.toVersionAltair()
404-
.ifPresent(a -> builder.addNextMilestone(SpecVersion.createAltair(a)));
407+
.ifPresent(
408+
a -> builder.addNextMilestone(SpecVersion.createAltair(a, SCHEMA_REGISTRY_BUILDER)));
405409

406410
return builder.build();
407411
}

0 commit comments

Comments
 (0)