27 lines
1019 B
C#
27 lines
1019 B
C#
namespace StellaOps.Excititor.Core;
|
|
|
|
/// <summary>
|
|
/// Policy abstraction supplying trust weights and gating logic for consensus decisions.
|
|
/// </summary>
|
|
public interface IVexConsensusPolicy
|
|
{
|
|
/// <summary>
|
|
/// Semantic version describing the active policy.
|
|
/// </summary>
|
|
string Version { get; }
|
|
|
|
/// <summary>
|
|
/// Returns the effective weight (0-1) to apply for the provided VEX source.
|
|
/// </summary>
|
|
double GetProviderWeight(VexProvider provider);
|
|
|
|
/// <summary>
|
|
/// Determines whether the claim is eligible to participate in consensus.
|
|
/// </summary>
|
|
/// <param name="claim">Normalized claim to evaluate.</param>
|
|
/// <param name="provider">Provider metadata for the claim.</param>
|
|
/// <param name="rejectionReason">Textual reason when the claim is rejected.</param>
|
|
/// <returns><c>true</c> if the claim should participate; <c>false</c> otherwise.</returns>
|
|
bool IsClaimEligible(VexClaim claim, VexProvider provider, out string? rejectionReason);
|
|
}
|