diff --git a/ecc/bls12-377/shplonk/shplonk.go b/ecc/bls12-377/shplonk/shplonk.go index f2faa6d86..2124ccc6a 100644 --- a/ecc/bls12-377/shplonk/shplonk.go +++ b/ecc/bls12-377/shplonk/shplonk.go @@ -80,6 +80,11 @@ func BatchOpen(polynomials [][]fr.Element, digests []kzg.Digest, points [][]fr.E maxSizePolys = len(polynomials[i]) } } + for i := range points { + if len(points[i])+1 > maxSizePolys { + maxSizePolys = len(points[i]) + 1 + } + } nbPoints := 0 sizeSi := make([]int, len(points)) for i := 0; i < nbPolynomials; i++ { diff --git a/ecc/bls12-381/shplonk/shplonk.go b/ecc/bls12-381/shplonk/shplonk.go index d5adfa3f0..9c7a0de36 100644 --- a/ecc/bls12-381/shplonk/shplonk.go +++ b/ecc/bls12-381/shplonk/shplonk.go @@ -80,6 +80,11 @@ func BatchOpen(polynomials [][]fr.Element, digests []kzg.Digest, points [][]fr.E maxSizePolys = len(polynomials[i]) } } + for i := range points { + if len(points[i])+1 > maxSizePolys { + maxSizePolys = len(points[i]) + 1 + } + } nbPoints := 0 sizeSi := make([]int, len(points)) for i := 0; i < nbPolynomials; i++ { diff --git a/ecc/bls24-315/shplonk/shplonk.go b/ecc/bls24-315/shplonk/shplonk.go index 825c756cf..f583310e1 100644 --- a/ecc/bls24-315/shplonk/shplonk.go +++ b/ecc/bls24-315/shplonk/shplonk.go @@ -80,6 +80,11 @@ func BatchOpen(polynomials [][]fr.Element, digests []kzg.Digest, points [][]fr.E maxSizePolys = len(polynomials[i]) } } + for i := range points { + if len(points[i])+1 > maxSizePolys { + maxSizePolys = len(points[i]) + 1 + } + } nbPoints := 0 sizeSi := make([]int, len(points)) for i := 0; i < nbPolynomials; i++ { diff --git a/ecc/bls24-317/shplonk/shplonk.go b/ecc/bls24-317/shplonk/shplonk.go index 33640bb69..9e3642463 100644 --- a/ecc/bls24-317/shplonk/shplonk.go +++ b/ecc/bls24-317/shplonk/shplonk.go @@ -80,6 +80,11 @@ func BatchOpen(polynomials [][]fr.Element, digests []kzg.Digest, points [][]fr.E maxSizePolys = len(polynomials[i]) } } + for i := range points { + if len(points[i])+1 > maxSizePolys { + maxSizePolys = len(points[i]) + 1 + } + } nbPoints := 0 sizeSi := make([]int, len(points)) for i := 0; i < nbPolynomials; i++ { diff --git a/ecc/bn254/shplonk/shplonk.go b/ecc/bn254/shplonk/shplonk.go index 90c7ea5bb..1c6e6ad84 100644 --- a/ecc/bn254/shplonk/shplonk.go +++ b/ecc/bn254/shplonk/shplonk.go @@ -80,6 +80,11 @@ func BatchOpen(polynomials [][]fr.Element, digests []kzg.Digest, points [][]fr.E maxSizePolys = len(polynomials[i]) } } + for i := range points { + if len(points[i])+1 > maxSizePolys { + maxSizePolys = len(points[i]) + 1 + } + } nbPoints := 0 sizeSi := make([]int, len(points)) for i := 0; i < nbPolynomials; i++ { diff --git a/ecc/bw6-633/shplonk/shplonk.go b/ecc/bw6-633/shplonk/shplonk.go index af23c6ec5..56375f157 100644 --- a/ecc/bw6-633/shplonk/shplonk.go +++ b/ecc/bw6-633/shplonk/shplonk.go @@ -80,6 +80,11 @@ func BatchOpen(polynomials [][]fr.Element, digests []kzg.Digest, points [][]fr.E maxSizePolys = len(polynomials[i]) } } + for i := range points { + if len(points[i])+1 > maxSizePolys { + maxSizePolys = len(points[i]) + 1 + } + } nbPoints := 0 sizeSi := make([]int, len(points)) for i := 0; i < nbPolynomials; i++ { diff --git a/ecc/bw6-761/shplonk/shplonk.go b/ecc/bw6-761/shplonk/shplonk.go index b02bcd545..aec562df5 100644 --- a/ecc/bw6-761/shplonk/shplonk.go +++ b/ecc/bw6-761/shplonk/shplonk.go @@ -80,6 +80,11 @@ func BatchOpen(polynomials [][]fr.Element, digests []kzg.Digest, points [][]fr.E maxSizePolys = len(polynomials[i]) } } + for i := range points { + if len(points[i])+1 > maxSizePolys { + maxSizePolys = len(points[i]) + 1 + } + } nbPoints := 0 sizeSi := make([]int, len(points)) for i := 0; i < nbPolynomials; i++ { diff --git a/internal/generator/shplonk/template/shplonk.go.tmpl b/internal/generator/shplonk/template/shplonk.go.tmpl index 94f83cc92..0215fab85 100644 --- a/internal/generator/shplonk/template/shplonk.go.tmpl +++ b/internal/generator/shplonk/template/shplonk.go.tmpl @@ -62,6 +62,11 @@ func BatchOpen(polynomials [][]fr.Element, digests []kzg.Digest, points [][]fr.E maxSizePolys = len(polynomials[i]) } } + for i := range points { + if len(points[i])+1 > maxSizePolys { + maxSizePolys = len(points[i]) + 1 + } + } nbPoints := 0 sizeSi := make([]int, len(points)) for i := 0; i < nbPolynomials; i++ {