@@ -42,17 +42,17 @@ type ErrInvalidCid struct {
42
42
Err error
43
43
}
44
44
45
- func (e * ErrInvalidCid ) Error () string {
45
+ func (e ErrInvalidCid ) Error () string {
46
46
return fmt .Sprintf ("invalid cid: %s" , e .Err )
47
47
}
48
48
49
- func (e * ErrInvalidCid ) Unwrap () error {
49
+ func (e ErrInvalidCid ) Unwrap () error {
50
50
return e .Err
51
51
}
52
52
53
- func (e * ErrInvalidCid ) Is (err error ) bool {
53
+ func (e ErrInvalidCid ) Is (err error ) bool {
54
54
switch err .(type ) {
55
- case * ErrInvalidCid :
55
+ case ErrInvalidCid , * ErrInvalidCid :
56
56
return true
57
57
default :
58
58
return false
@@ -62,7 +62,7 @@ func (e *ErrInvalidCid) Is(err error) bool {
62
62
var (
63
63
// ErrCidTooShort means that the cid passed to decode was not long
64
64
// enough to be a valid Cid
65
- ErrCidTooShort = & ErrInvalidCid {errors .New ("cid too short" )}
65
+ ErrCidTooShort = ErrInvalidCid {errors .New ("cid too short" )}
66
66
67
67
// ErrInvalidEncoding means that selected encoding is not supported
68
68
// by this Cid version
@@ -112,10 +112,10 @@ func tryNewCidV0(mhash mh.Multihash) (Cid, error) {
112
112
// incorrectly detect it as CidV1 in the Version() method
113
113
dec , err := mh .Decode (mhash )
114
114
if err != nil {
115
- return Undef , & ErrInvalidCid {err }
115
+ return Undef , ErrInvalidCid {err }
116
116
}
117
117
if dec .Code != mh .SHA2_256 || dec .Length != 32 {
118
- return Undef , & ErrInvalidCid {fmt .Errorf ("invalid hash for cidv0 %d-%d" , dec .Code , dec .Length )}
118
+ return Undef , ErrInvalidCid {fmt .Errorf ("invalid hash for cidv0 %d-%d" , dec .Code , dec .Length )}
119
119
}
120
120
return Cid {string (mhash )}, nil
121
121
}
@@ -199,7 +199,7 @@ func Parse(v interface{}) (Cid, error) {
199
199
case Cid :
200
200
return v2 , nil
201
201
default :
202
- return Undef , & ErrInvalidCid {fmt .Errorf ("can't parse %+v as Cid" , v2 )}
202
+ return Undef , ErrInvalidCid {fmt .Errorf ("can't parse %+v as Cid" , v2 )}
203
203
}
204
204
}
205
205
@@ -232,15 +232,15 @@ func Decode(v string) (Cid, error) {
232
232
if len (v ) == 46 && v [:2 ] == "Qm" {
233
233
hash , err := mh .FromB58String (v )
234
234
if err != nil {
235
- return Undef , & ErrInvalidCid {err }
235
+ return Undef , ErrInvalidCid {err }
236
236
}
237
237
238
238
return tryNewCidV0 (hash )
239
239
}
240
240
241
241
_ , data , err := mbase .Decode (v )
242
242
if err != nil {
243
- return Undef , & ErrInvalidCid {err }
243
+ return Undef , ErrInvalidCid {err }
244
244
}
245
245
246
246
return Cast (data )
@@ -262,7 +262,7 @@ func ExtractEncoding(v string) (mbase.Encoding, error) {
262
262
// check encoding is valid
263
263
_ , err := mbase .NewEncoder (encoding )
264
264
if err != nil {
265
- return - 1 , & ErrInvalidCid {err }
265
+ return - 1 , ErrInvalidCid {err }
266
266
}
267
267
268
268
return encoding , nil
@@ -282,11 +282,11 @@ func ExtractEncoding(v string) (mbase.Encoding, error) {
282
282
func Cast (data []byte ) (Cid , error ) {
283
283
nr , c , err := CidFromBytes (data )
284
284
if err != nil {
285
- return Undef , & ErrInvalidCid {err }
285
+ return Undef , ErrInvalidCid {err }
286
286
}
287
287
288
288
if nr != len (data ) {
289
- return Undef , & ErrInvalidCid {fmt .Errorf ("trailing bytes in data buffer passed to cid Cast" )}
289
+ return Undef , ErrInvalidCid {fmt .Errorf ("trailing bytes in data buffer passed to cid Cast" )}
290
290
}
291
291
292
292
return c , nil
@@ -637,34 +637,34 @@ func PrefixFromBytes(buf []byte) (Prefix, error) {
637
637
func CidFromBytes (data []byte ) (int , Cid , error ) {
638
638
if len (data ) > 2 && data [0 ] == mh .SHA2_256 && data [1 ] == 32 {
639
639
if len (data ) < 34 {
640
- return 0 , Undef , & ErrInvalidCid {fmt .Errorf ("not enough bytes for cid v0" )}
640
+ return 0 , Undef , ErrInvalidCid {fmt .Errorf ("not enough bytes for cid v0" )}
641
641
}
642
642
643
643
h , err := mh .Cast (data [:34 ])
644
644
if err != nil {
645
- return 0 , Undef , & ErrInvalidCid {err }
645
+ return 0 , Undef , ErrInvalidCid {err }
646
646
}
647
647
648
648
return 34 , Cid {string (h )}, nil
649
649
}
650
650
651
651
vers , n , err := varint .FromUvarint (data )
652
652
if err != nil {
653
- return 0 , Undef , & ErrInvalidCid {err }
653
+ return 0 , Undef , ErrInvalidCid {err }
654
654
}
655
655
656
656
if vers != 1 {
657
- return 0 , Undef , & ErrInvalidCid {fmt .Errorf ("expected 1 as the cid version number, got: %d" , vers )}
657
+ return 0 , Undef , ErrInvalidCid {fmt .Errorf ("expected 1 as the cid version number, got: %d" , vers )}
658
658
}
659
659
660
660
_ , cn , err := varint .FromUvarint (data [n :])
661
661
if err != nil {
662
- return 0 , Undef , & ErrInvalidCid {err }
662
+ return 0 , Undef , ErrInvalidCid {err }
663
663
}
664
664
665
665
mhnr , _ , err := mh .MHFromBytes (data [n + cn :])
666
666
if err != nil {
667
- return 0 , Undef , & ErrInvalidCid {err }
667
+ return 0 , Undef , ErrInvalidCid {err }
668
668
}
669
669
670
670
l := n + cn + mhnr
@@ -727,32 +727,32 @@ func CidFromReader(r io.Reader) (int, Cid, error) {
727
727
// The varint package wants a io.ByteReader, so we must wrap our io.Reader.
728
728
vers , err := varint .ReadUvarint (br )
729
729
if err != nil {
730
- return len (br .dst ), Undef , & ErrInvalidCid {err }
730
+ return len (br .dst ), Undef , ErrInvalidCid {err }
731
731
}
732
732
733
733
// If we have a CIDv0, read the rest of the bytes and cast the buffer.
734
734
if vers == mh .SHA2_256 {
735
735
if n , err := io .ReadFull (r , br .dst [1 :34 ]); err != nil {
736
- return len (br .dst ) + n , Undef , & ErrInvalidCid {err }
736
+ return len (br .dst ) + n , Undef , ErrInvalidCid {err }
737
737
}
738
738
739
739
br .dst = br .dst [:34 ]
740
740
h , err := mh .Cast (br .dst )
741
741
if err != nil {
742
- return len (br .dst ), Undef , & ErrInvalidCid {err }
742
+ return len (br .dst ), Undef , ErrInvalidCid {err }
743
743
}
744
744
745
745
return len (br .dst ), Cid {string (h )}, nil
746
746
}
747
747
748
748
if vers != 1 {
749
- return len (br .dst ), Undef , & ErrInvalidCid {fmt .Errorf ("expected 1 as the cid version number, got: %d" , vers )}
749
+ return len (br .dst ), Undef , ErrInvalidCid {fmt .Errorf ("expected 1 as the cid version number, got: %d" , vers )}
750
750
}
751
751
752
752
// CID block encoding multicodec.
753
753
_ , err = varint .ReadUvarint (br )
754
754
if err != nil {
755
- return len (br .dst ), Undef , & ErrInvalidCid {err }
755
+ return len (br .dst ), Undef , ErrInvalidCid {err }
756
756
}
757
757
758
758
// We could replace most of the code below with go-multihash's ReadMultihash.
@@ -763,19 +763,19 @@ func CidFromReader(r io.Reader) (int, Cid, error) {
763
763
// Multihash hash function code.
764
764
_ , err = varint .ReadUvarint (br )
765
765
if err != nil {
766
- return len (br .dst ), Undef , & ErrInvalidCid {err }
766
+ return len (br .dst ), Undef , ErrInvalidCid {err }
767
767
}
768
768
769
769
// Multihash digest length.
770
770
mhl , err := varint .ReadUvarint (br )
771
771
if err != nil {
772
- return len (br .dst ), Undef , & ErrInvalidCid {err }
772
+ return len (br .dst ), Undef , ErrInvalidCid {err }
773
773
}
774
774
775
775
// Refuse to make large allocations to prevent OOMs due to bugs.
776
776
const maxDigestAlloc = 32 << 20 // 32MiB
777
777
if mhl > maxDigestAlloc {
778
- return len (br .dst ), Undef , & ErrInvalidCid {fmt .Errorf ("refusing to allocate %d bytes for a digest" , mhl )}
778
+ return len (br .dst ), Undef , ErrInvalidCid {fmt .Errorf ("refusing to allocate %d bytes for a digest" , mhl )}
779
779
}
780
780
781
781
// Fine to convert mhl to int, given maxDigestAlloc.
@@ -794,15 +794,15 @@ func CidFromReader(r io.Reader) (int, Cid, error) {
794
794
if n , err := io .ReadFull (r , br .dst [prefixLength :cidLength ]); err != nil {
795
795
// We can't use len(br.dst) here,
796
796
// as we've only read n bytes past prefixLength.
797
- return prefixLength + n , Undef , & ErrInvalidCid {err }
797
+ return prefixLength + n , Undef , ErrInvalidCid {err }
798
798
}
799
799
800
800
// This simply ensures the multihash is valid.
801
801
// TODO: consider removing this bit, as it's probably redundant;
802
802
// for now, it helps ensure consistency with CidFromBytes.
803
803
_ , _ , err = mh .MHFromBytes (br .dst [mhStart :])
804
804
if err != nil {
805
- return len (br .dst ), Undef , & ErrInvalidCid {err }
805
+ return len (br .dst ), Undef , ErrInvalidCid {err }
806
806
}
807
807
808
808
return len (br .dst ), Cid {string (br .dst )}, nil
0 commit comments