Compare commits

..

5 Commits

Author SHA1 Message Date
Jeromy
a22bf1e2bf gx publish 0.7.11 2017-02-05 23:52:16 -08:00
Jeromy
7bcaf9264a do cid json handling in this package 2017-02-05 23:52:06 -08:00
Jeromy
c1db98f9ae gx publish 0.7.10 2017-02-02 19:05:37 -08:00
Jeromy
40c5ff1bfe gx publish 0.7.9 2017-02-02 18:53:37 -08:00
Jeromy
ebda3c73ae actually update multihash package 2017-02-02 18:53:32 -08:00
4 changed files with 38 additions and 10 deletions

View File

@@ -1 +1 @@
0.7.8: QmXm6Di2T89xAeprno3x6nD6jRgtMm2wRy25DX4zc4gk8V
0.7.11: QmV5gPoRsjN1Gid3LMdNZTyfCtP2DsvqEbMAmz82RmmiGk

21
cid.go
View File

@@ -3,6 +3,7 @@ package cid
import (
"bytes"
"encoding/binary"
"encoding/json"
"errors"
"fmt"
"strings"
@@ -209,7 +210,19 @@ func (c *Cid) UnmarshalJSON(b []byte) error {
if len(b) < 2 {
return fmt.Errorf("invalid cid json blob")
}
out, err := Decode(string(b[1 : len(b)-1]))
obj := struct {
CidTarget string `json:"/"`
}{}
err := json.Unmarshal(b, &obj)
if err != nil {
return err
}
if obj.CidTarget == "" {
return fmt.Errorf("cid was incorrectly formatted")
}
out, err := Decode(obj.CidTarget)
if err != nil {
return err
}
@@ -221,7 +234,7 @@ func (c *Cid) UnmarshalJSON(b []byte) error {
}
func (c *Cid) MarshalJSON() ([]byte, error) {
return []byte(fmt.Sprintf("\"%s\"", c.String())), nil
return []byte(fmt.Sprintf("{\"/\":\"%s\"}", c.String())), nil
}
func (c *Cid) KeyString() string {
@@ -248,7 +261,7 @@ func (c *Cid) Prefix() Prefix {
type Prefix struct {
Version uint64
Codec uint64
MhType int
MhType uint64
MhLength int
}
@@ -302,7 +315,7 @@ func PrefixFromBytes(buf []byte) (Prefix, error) {
return Prefix{
Version: vers,
Codec: codec,
MhType: int(mhtype),
MhType: mhtype,
MhLength: int(mhlen),
}, nil
}

View File

@@ -2,6 +2,7 @@ package cid
import (
"bytes"
"encoding/json"
"fmt"
"math/rand"
"strings"
@@ -200,3 +201,17 @@ func TestHexDecode(t *testing.T) {
t.Fatal("hash value failed to round trip decoding from hex")
}
}
func TestFromJson(t *testing.T) {
cval := "zb2rhhFAEMepUBbGyP1k8tGfz7BSciKXP6GHuUeUsJBaK6cqG"
jsoncid := []byte(`{"/":"` + cval + `"}`)
var c Cid
err := json.Unmarshal(jsoncid, &c)
if err != nil {
t.Fatal(err)
}
if c.String() != cval {
t.Fatal("json parsing failed")
}
}

View File

@@ -9,15 +9,15 @@
"gxDependencies": [
{
"author": "whyrusleeping",
"hash": "QmYDds3421prZgqKbLpEK7T9Aa2eVdQ7o3YarX1LVLdP2J",
"hash": "QmbZ6Cee2uHjG7hf19qLHppgKDRtaG4CVtMzdmK9VCVqLu",
"name": "go-multihash",
"version": "1.0.0"
"version": "1.0.2"
},
{
"author": "whyrusleeping",
"hash": "QmXzWFN4iLdX1Vq8Sc13mET7aXsHkTyJoMbaJJD3NGRhiJ",
"hash": "QmcxkxTVuURV2Ptse8TvkqH5BQDwV62X1x19JqqvbBzwUM",
"name": "go-multibase",
"version": "0.2.1"
"version": "0.2.3"
}
],
"gxVersion": "0.8.0",
@@ -25,6 +25,6 @@
"license": "MIT",
"name": "go-cid",
"releaseCmd": "git commit -a -m \"gx publish $VERSION\"",
"version": "0.7.8"
"version": "0.7.11"
}