Skip to content

Commit f058a18

Browse files
hannahhowardPeeja
andauthored
feat(filecoin): PDP link on filecoin/offer caveats (#69)
add an optional PDP link on filecoin/offer caveats --------- Co-authored-by: Petra Jaros <[email protected]>
1 parent 4fd73c8 commit f058a18

File tree

3 files changed

+36
-12
lines changed

3 files changed

+36
-12
lines changed

capabilities/filecoin/filecoin.ipldsch

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
type OfferCaveats struct {
22
content Link
33
piece Link
4+
PDP optional V1Link
45
}
56

67
type OfferOk struct {

capabilities/filecoin/offer.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ const OfferAbility = "filecoin/offer"
1515
type OfferCaveats struct {
1616
Content ipld.Link
1717
Piece ipld.Link
18+
19+
// Link to `pdp/accept` capability, if applicable
20+
PDP *ipld.Link
1821
}
1922

2023
func (oc OfferCaveats) ToIPLD() (datamodel.Node, error) {

capabilities/filecoin/offer_test.go

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,38 @@ import (
99
)
1010

1111
func TestOfferCaveatsRoundTrip(t *testing.T) {
12-
nb := filecoin.OfferCaveats{
13-
Content: testutil.RandomCID(t),
14-
Piece: testutil.RandomCID(t),
15-
}
16-
17-
node, err := nb.ToIPLD()
18-
require.NoError(t, err)
19-
20-
rnb, err := filecoin.OfferCaveatsReader.Read(node)
21-
require.NoError(t, err)
22-
require.Equal(t, nb.Content.String(), rnb.Content.String())
23-
require.Equal(t, nb.Piece.String(), rnb.Piece.String())
12+
t.Run("no pdp", func(t *testing.T) {
13+
nb := filecoin.OfferCaveats{
14+
Content: testutil.RandomCID(t),
15+
Piece: testutil.RandomCID(t),
16+
}
17+
18+
node, err := nb.ToIPLD()
19+
require.NoError(t, err)
20+
21+
rnb, err := filecoin.OfferCaveatsReader.Read(node)
22+
require.NoError(t, err)
23+
require.Equal(t, nb.Content.String(), rnb.Content.String())
24+
require.Equal(t, nb.Piece.String(), rnb.Piece.String())
25+
})
26+
t.Run("with pdp", func(t *testing.T) {
27+
pdpLink := testutil.RandomCID(t)
28+
nb := filecoin.OfferCaveats{
29+
Content: testutil.RandomCID(t),
30+
Piece: testutil.RandomCID(t),
31+
PDP: &pdpLink,
32+
}
33+
34+
node, err := nb.ToIPLD()
35+
require.NoError(t, err)
36+
37+
rnb, err := filecoin.OfferCaveatsReader.Read(node)
38+
require.NoError(t, err)
39+
require.Equal(t, nb.Content.String(), rnb.Content.String())
40+
require.Equal(t, nb.Piece.String(), rnb.Piece.String())
41+
require.NotNil(t, rnb.PDP)
42+
require.Equal(t, (*nb.PDP).String(), (*rnb.PDP).String())
43+
})
2444
}
2545

2646
func TestOfferOkRoundTrip(t *testing.T) {

0 commit comments

Comments
 (0)