generate_proof: RuntimeDescriptor<
    [block_numbers: number[], best_known_block_number: number | undefined],
    ResultPayload<
        [
            Binary[],
            {
                items: FixedSizeBinary<32>[];
                leaf_count: bigint;
                leaf_indices: bigint[];
            },
        ],
        MmrPrimitivesError,
    >,
>

Generate MMR proof for a series of block numbers. If best_known_block_number = Some(n), use historical MMR state at given block height n. Else, use current MMR state.