Daniel Martí
c616415150
amend the CidFromReader slice extension math
...
The append+make slice extension idiom works, but note that append uses
the slice's length as its base. We need to append the number of bytes
required for length to reach cidLength, not the capacity.
The added test case panicked before this change, and works now:
--- FAIL: TestReadCidsFromBuffer (0.00s)
panic: runtime error: slice bounds out of range [:73] with capacity 64 [recovered]
panic: runtime error: slice bounds out of range [:73] with capacity 64
goroutine 37 [running]:
testing.tRunner.func1.2({0x570d60, 0xc000016438})
testing/testing.go:1203 +0x24e
testing.tRunner.func1()
testing/testing.go:1206 +0x218
panic({0x570d60, 0xc000016438})
runtime/panic.go:1038 +0x215
github.com/ipfs/go-cid.CidFromReader({0x5b0e20, 0xc000010900})
github.com/ipfs/go-cid/cid.go:803 +0x75f
github.com/ipfs/go-cid.TestReadCidsFromBuffer(0xc00014ba00)
github.com/ipfs/go-cid/cid_test.go:710 +0x625
testing.tRunner(0xc00014ba00, 0x58af38)
testing/testing.go:1253 +0x102
created by testing.(*T).Run
testing/testing.go:1300 +0x35a
exit status 2
FAIL github.com/ipfs/go-cid 0.004s
2021-07-16 09:47:08 +01:00
Daniel Martí
c4c8760a80
implement CidFromReader
...
And reuse two CidFromBytes tests for it, which includes both CIDv0 and
CIDv1 cases as inputs, as well as some inputs that should error.
Fixes #126 .
2021-07-15 01:01:22 +01:00
Ian Davis
0717510dfb
chore: fixups from running go vet, go fmt and staticcheck
2021-05-07 15:43:00 +01:00
Alex Good
de49849130
Add the dagjose multiformat
2020-10-15 14:00:36 +11:00
Steven Allen
f7cb4c91eb
feat: optimize cid.Prefix
...
We call this frequently and having to allocate here is really unfortunate.
2020-07-22 19:45:20 -07:00
Rod Vagg
8dd6fe2778
feat: add Filecoin multicodecs
...
* fil-commitment-unsealed
* fil-commitment-sealed
Ref: https://github.com/multiformats/multicodec/pull/161
Ref: https://github.com/multiformats/multicodec/pull/172
2020-05-13 11:22:42 +10:00
Jeromy
75caa6bdbd
avoid calling the method WriteTo if we don't satisfy its contract
2020-05-01 16:04:36 -07:00
Eric Myhre
628a0123ed
Slightly more documentation comment.
2020-05-02 00:52:07 +02:00
Jeromy
266e76d591
properly satisfy writerTo interface
2020-05-01 15:44:06 -07:00
Jeromy
7d7cb88d78
add a couple useful methods
2020-05-01 15:01:28 -07:00
Volker Mische
9cb3848e51
chore: make comment reflect the code
...
During the change to default CIDV1 to Base32, the corresponding code
comment wasn't updated.
2020-04-28 16:02:21 +02:00
Steven Allen
c1b740035a
fix: enforce minimal encoding
...
Note: this removes two errors that don't appear to be used by anyone.
2020-02-03 20:55:45 -08:00
Steven Allen
60ab0f84f0
chore: avoid magic numbers
2019-12-02 20:35:36 -05:00
Steven Allen
08e15f8a6c
chore: avoid re-validated already validated CIDs
2019-12-02 20:35:27 -05:00
Steven Allen
58b483a841
fix: avoid panicing if we try to parse a non-sha multihash as a CIDv0
...
I'm pretty sure we never call `Parse` multihashes anyways, but we should be careful.
2019-12-02 20:34:30 -05:00
Whyrusleeping
79e75dffeb
Merge pull request #95 from ipfs/feat/cid-from-bytes
...
Add a function to read a cid from an array of bytes
2019-11-12 10:17:18 +09:00
whyrusleeping
cf8cf8856e
Use optimized multihash method for parsing
2019-11-11 16:33:49 -08:00
Jakub Sztandera
9238d1a533
Verify that prefix is correct v0 prefix
...
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai >
2019-11-11 20:00:31 +01:00
whyrusleeping
16bbe1cf14
Add a command to read a cid from an array of bytes
2019-11-10 22:17:41 -08:00
Marcin Rataj
3f1777738f
Add libp2p-key multicodec
...
Context: https://github.com/multiformats/multicodec/issues/130
License: MIT
Signed-off-by: Marcin Rataj <lidel@lidel.org >
2019-05-28 01:40:54 +02:00
Steven Allen
f04f9216e7
default cidv1 to base32
2019-05-06 16:22:17 -07:00
Steven Allen
cf3b4efcaf
fix inline CIDs generated by Prefix.Sum
2019-02-20 19:06:04 -08:00
Hector Sanjuan
00439572fb
Let Cid implement Binary[Un]Marshaler and Text[Un]Marshaler interfaces.
...
This makes Cid implement https://golang.org/pkg/encoding/#BinaryMarshaler
which is used by go-codec to decide if things know how to serialize themselves
(currently we need do manual wrapping for anything containing a CID).
Since I was at it, I did the TextMarshaling one too.
2019-02-19 16:41:30 +00:00
Madper Xie
e6d04f280e
fix typo in comment
2019-02-15 20:19:46 +08:00
Samuel Li
628ab3426c
add codecs for Dash blocks, tx
2018-10-07 11:21:41 -07:00
Kevin Atkinson
dfc48d3ec4
Make sure we have a SHA2_256, length 32 hash when creating a CidV0.
2018-09-11 19:17:40 -04:00
Kevin Atkinson
46dd393ad1
Handel undefined Cid is JSON representation.
2018-09-07 14:03:03 -04:00
Kevin Atkinson
67a2bcf7e7
Change 'Nil' constant to 'Undef'.
2018-09-05 15:43:18 -04:00
Kevin Atkinson
643f78a8f9
Change 'IsNil' method to 'Defined'.
2018-09-05 03:26:26 -04:00
Kevin Atkinson
440a1c1a5a
Removed description of layout of CID as it is not correct for CIDv0.
2018-08-31 00:35:55 -04:00
Kevin Atkinson
e0a5698af9
Add IsNil() method.
2018-08-31 00:35:54 -04:00
Kevin Atkinson
667c6a9418
Avoid allocating memory in Type() method.
2018-08-31 00:35:53 -04:00
Kevin Atkinson
426ebe9e55
Simplify assignment in UnmarshalJSON.
2018-08-31 00:35:52 -04:00
Kevin Atkinson
cad52160a4
Ensure we always have a valid Cid by hiding the type in a struct.
2018-08-31 00:35:51 -04:00
Kevin Atkinson
b5a08dcaaa
Change EmptyCid to just Nil.
2018-08-31 00:35:51 -04:00
Kevin Atkinson
9831436a6f
Change string representation to represent actual binary representation.
2018-08-31 00:35:47 -04:00
Kevin Atkinson
d7974d2277
Export version() method, various other code cleanups.
2018-08-31 00:34:19 -04:00
dignifiedquire
8009448a20
fix KeyString()
2018-08-31 00:34:03 -04:00
dignifiedquire
92496b5494
use string instead of []byte as underlying store
2018-08-31 00:34:02 -04:00
dignifiedquire
e153340e5a
feat: use CIDs as their byte representation instead of a struct
2018-08-31 00:33:47 -04:00
Kevin Atkinson
b3d85b3dee
Enhance documentation for Encode method.
2018-08-30 00:38:17 -04:00
Kevin Atkinson
9091e50b29
Rename Format method to Encode.
2018-08-30 00:30:14 -04:00
Kevin Atkinson
a0b3b11e63
Create a new Format method that is like StringOfBase but never errors
2018-08-30 00:30:14 -04:00
Kevin Atkinson
a8ae38caae
Merge pull request #61 from ipfs/kevina/cid-fmt-enhan
...
cid-fmt Enhancments
2018-08-10 17:35:25 -04:00
Kevin Atkinson
23f03cb301
Merge pull request #53 from ipfs/kevina/format
...
Create new Builder interface for creating CIDs.
2018-08-10 17:34:56 -04:00
Kevin Atkinson
0f09109d9f
Replace DecodeV2 with ExtractEncoding
2018-08-09 02:37:09 -04:00
Kevin Atkinson
67951e2c09
Move deprecated function to there own file.
2018-08-09 00:15:04 -04:00
Kevin Atkinson
ad88cb11c5
Rename Format to Builder.
2018-08-09 00:15:04 -04:00
Kevin Atkinson
c4bfcd0671
Extract most of cid-fmt logic so it can be used as a library.
2018-08-01 04:21:32 -04:00
Hector Sanjuan
8028fee095
Add Decred codecs
...
0xe0 and 0xe1 have been assigned to Decred block and tx in the
multicodecs table. https://github.com/multiformats/multicodec/pull/78
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai >
2018-07-23 19:28:53 +02:00