Skip to content

hashTreeRoot for slice field #23

Description

@fearlessfe

In ssz spec, the list type must have a limit to calculate the merkle tree root. So we define a method to get the limit of the slice.

eg IndexedAttestation, the field attesting_indices is a slice, so it must have a method ${fieldName}_limit

pub const IndexedAttestation = struct {
    // # [Modified in Electra:EIP7549] size: MAX_VALIDATORS_PER_COMMITTEE * MAX_COMMITTEES_PER_SLOT
    attesting_indices: []primitives.ValidatorIndex,
    data: AttestationData,
    signature: primitives.BLSSignature,

    // limit for slice type from spec, the method name must be field name + "_limit"
    pub fn attesting_indices_limit() u64 {
        return preset.ActivePreset.get().MAX_VALIDATORS_PER_COMMITTEE;
    }
};

There is a side efffect, Because call the method through reflection is comptime, so we have to add method for all Slice type field, even it's not a ssz type.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions