Skip to content

Commit 9d7f7aa

Browse files
committed
add a padding helper function
1 parent 9c0f3e0 commit 9d7f7aa

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

ffiwrapper/ffiwrapper.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"sync"
77

88
ffi "github.com/filecoin-project/filecoin-ffi"
9+
"github.com/filecoin-project/go-commp-utils/zerocomm"
910
"github.com/filecoin-project/go-state-types/abi"
1011
"github.com/ipfs/go-cid"
1112
logging "github.com/ipfs/go-log/v2"
@@ -73,3 +74,30 @@ func GeneratePieceCIDFromFile(proofType abi.RegisteredSealProof, piece io.Reader
7374

7475
return pieceCID, werr()
7576
}
77+
78+
func ZeroPadPieceCommitment(c cid.Cid, curSize abi.UnpaddedPieceSize, toSize abi.UnpaddedPieceSize) (cid.Cid, error) {
79+
cur := c
80+
for curSize < toSize {
81+
82+
zc := zerocomm.ZeroPieceCommitment(curSize)
83+
84+
p, err := ffi.GenerateUnsealedCID(abi.RegisteredSealProof_StackedDrg32GiBV1, []abi.PieceInfo{
85+
abi.PieceInfo{
86+
Size: curSize.Padded(),
87+
PieceCID: cur,
88+
},
89+
abi.PieceInfo{
90+
Size: curSize.Padded(),
91+
PieceCID: zc,
92+
},
93+
})
94+
if err != nil {
95+
return cid.Undef, err
96+
}
97+
98+
cur = p
99+
curSize = curSize * 2
100+
}
101+
102+
return cur, nil
103+
}

0 commit comments

Comments
 (0)