Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ public GoodbyeMessage createFromBackingNode(final TreeNode node) {
public static final UInt64 REASON_UNABLE_TO_VERIFY_NETWORK = UInt64.valueOf(128);
public static final UInt64 REASON_TOO_MANY_PEERS = UInt64.valueOf(129);
public static final UInt64 REASON_RATE_LIMITING = UInt64.valueOf(130);
public static final UInt64 REASON_BAD_SCORE = UInt64.valueOf(250);
public static final UInt64 REASON_BANNED = UInt64.valueOf(251);

private GoodbyeMessage(final GoodbyeMessageSchema type, final TreeNode backingNode) {
super(type, backingNode);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Copyright Consensys Software Inc., 2025
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/

package tech.pegasys.teku.statetransition;

import tech.pegasys.teku.infrastructure.events.VoidReturningChannelInterface;

public interface CustodyGroupCountChannel extends VoidReturningChannelInterface {

CustodyGroupCountChannel NOOP =
new CustodyGroupCountChannel() {
@Override
public void onCustodyGroupCountUpdate(final int groupCount) {}

@Override
public void onCustodyGroupCountSynced(final int groupCount) {}
};

void onCustodyGroupCountUpdate(int groupCount);

void onCustodyGroupCountSynced(int groupCount);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
* Copyright Consensys Software Inc., 2025
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/

package tech.pegasys.teku.statetransition.datacolumns;

import java.util.List;
import tech.pegasys.teku.infrastructure.unsigned.UInt64;

public interface CustodyGroupCountManager {
CustodyGroupCountManager NOOP =
new CustodyGroupCountManager() {
@Override
public int getCustodyGroupCount() {
return 0;
}

@Override
public List<UInt64> getCustodyColumnIndices() {
return List.of();
}

@Override
public int getCustodyGroupSyncedCount() {
return 0;
}

@Override
public void setCustodyGroupSyncedCount(int custodyGroupSyncedCount) {}
};

int getCustodyGroupCount();

List<UInt64> getCustodyColumnIndices();

int getCustodyGroupSyncedCount();

void setCustodyGroupSyncedCount(int custodyGroupSyncedCount);
Comment thread Dismissed
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* Copyright Consensys Software Inc., 2024
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/

package tech.pegasys.teku.statetransition.datacolumns;

import java.util.Optional;
import tech.pegasys.teku.infrastructure.async.SafeFuture;
import tech.pegasys.teku.infrastructure.async.stream.AsyncStream;
import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSidecar;
import tech.pegasys.teku.spec.datastructures.util.DataColumnIdentifier;
import tech.pegasys.teku.spec.datastructures.util.DataColumnSlotAndIdentifier;

public interface DataColumnSidecarByRootCustody extends DataColumnSidecarCustody {

DataColumnSidecarByRootCustody NOOP =
new DataColumnSidecarByRootCustody() {
@Override
public SafeFuture<Optional<DataColumnSidecar>> getCustodyDataColumnSidecarByRoot(
DataColumnIdentifier columnId) {
return SafeFuture.completedFuture(Optional.empty());
}

@Override
public SafeFuture<Boolean> hasCustodyDataColumnSidecar(
DataColumnSlotAndIdentifier columnId) {
return SafeFuture.completedFuture(false);
}

@Override
public SafeFuture<Optional<DataColumnSidecar>> getCustodyDataColumnSidecar(
DataColumnSlotAndIdentifier columnId) {
return SafeFuture.completedFuture(Optional.empty());
}

@Override
public SafeFuture<Void> onNewValidatedDataColumnSidecar(
DataColumnSidecar dataColumnSidecar) {
return SafeFuture.COMPLETE;
}

@Override
public AsyncStream<DataColumnSlotAndIdentifier> retrieveMissingColumns() {
return AsyncStream.empty();
}
};

SafeFuture<Optional<DataColumnSidecar>> getCustodyDataColumnSidecarByRoot(
DataColumnIdentifier columnId);
Comment thread Dismissed
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Copyright Consensys Software Inc., 2024
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/

package tech.pegasys.teku.statetransition.datacolumns;

import java.util.Optional;
import tech.pegasys.teku.infrastructure.async.SafeFuture;
import tech.pegasys.teku.infrastructure.async.stream.AsyncStream;
import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSidecar;
import tech.pegasys.teku.spec.datastructures.util.DataColumnSlotAndIdentifier;

public interface DataColumnSidecarCustody {

SafeFuture<Optional<DataColumnSidecar>> getCustodyDataColumnSidecar(
DataColumnSlotAndIdentifier columnId);
Comment thread Dismissed

SafeFuture<Boolean> hasCustodyDataColumnSidecar(DataColumnSlotAndIdentifier columnId);
Comment thread Dismissed

SafeFuture<Void> onNewValidatedDataColumnSidecar(DataColumnSidecar dataColumnSidecar);
Comment thread Dismissed

AsyncStream<DataColumnSlotAndIdentifier> retrieveMissingColumns();
}
Loading