diff --git a/src/Cid.cs b/src/Cid.cs
index 9494547..77bc306 100644
--- a/src/Cid.cs
+++ b/src/Cid.cs
@@ -73,6 +73,10 @@ void EnsureMutable()
/// - algorithm name equals "sha2-256"
///
///
+ ///
+ ///
+ /// The default is "base32" when the
+ /// is not zero.
///
public int Version
{
@@ -83,6 +87,10 @@ public int Version
set
{
EnsureMutable();
+ if (version == 0 && value > 0 && Encoding == "base58btc")
+ {
+ encoding = "base32";
+ }
version = value;
}
}
@@ -91,7 +99,7 @@ public int Version
/// The encoding of the CID.
///
///
- /// base58btc, base64, etc. Defaults to .
+ /// base58btc, base32, base64, etc. Defaults to .
///
///
/// Sets to 1, when setting a value that
@@ -107,11 +115,11 @@ public string Encoding
set
{
EnsureMutable();
- encoding = value;
if (Version == 0 && value != "base58btc")
{
Version = 1;
}
+ encoding = value;
}
}
diff --git a/test/CidTest.cs b/test/CidTest.cs
index 927c33b..94ebceb 100644
--- a/test/CidTest.cs
+++ b/test/CidTest.cs
@@ -41,7 +41,7 @@ public void MultiHash_is_Cid_V1()
Cid cid = mh;
Assert.AreEqual(1, cid.Version);
Assert.AreEqual("dag-pb", cid.ContentType);
- Assert.AreEqual("base58btc", cid.Encoding);
+ Assert.AreEqual("base32", cid.Encoding);
Assert.AreSame(mh, cid.Hash);
}
@@ -80,7 +80,9 @@ public void Encode_V1()
ContentType = "raw",
Hash = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4"
};
- Assert.AreEqual("zb2rhj7crUKTQYRGCRATFaQ6YFLTde2YzdqbbhAASkL9uRDXn", cid.Encode());
+ Assert.AreEqual(1, cid.Version);
+ Assert.AreEqual("base32", cid.Encoding);
+ Assert.AreEqual("bafkreifzjut3te2nhyekklss27nh3k72ysco7y32koao5eei66wof36n5e", cid.Encode());
}
[TestMethod]
@@ -93,7 +95,8 @@ public void Encode_Upgrade_to_V1_ContentType()
Hash = "QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4"
};
Assert.AreEqual(1, cid.Version);
- Assert.AreEqual("zb2rhj7crUKTQYRGCRATFaQ6YFLTde2YzdqbbhAASkL9uRDXn", cid.Encode());
+ Assert.AreEqual("base32", cid.Encoding);
+ Assert.AreEqual("bafkreifzjut3te2nhyekklss27nh3k72ysco7y32koao5eei66wof36n5e", cid.Encode());
}
[TestMethod]
@@ -119,7 +122,8 @@ public void Encode_Upgrade_to_V1_Hash()
Hash = mh
};
Assert.AreEqual(1, cid.Version);
- Assert.AreEqual("zBunRFxZVcKeu8wAbUg92z2JK6UukiL7EnPR1D6TZaQCsPpRe7KzcmioKFyi2oEZd9ffwpbKTib1pucMQrDyRnAdaqwbB", cid.Encode());
+ Assert.AreEqual("base32", cid.Encoding);
+ Assert.AreEqual("bafybgqfnbq34ghljwmk7hka7cpem3zybbffnsfzfxinq3qyztsuxcntbxaua23xx42hrgptcchrolkndcucelv3pc4eoarjbwdxagtylboxsm", cid.Encode());
}
[TestMethod]
diff --git a/test/DagNodeTest.cs b/test/DagNodeTest.cs
index 4367e97..f137133 100644
--- a/test/DagNodeTest.cs
+++ b/test/DagNodeTest.cs
@@ -118,9 +118,7 @@ public void Hashing_Algorithm()
var node = new DagNode(abc, null, "sha2-512");
CollectionAssert.AreEqual(abc, node.DataBytes);
Assert.AreEqual(0, node.Links.Count());
- // Had to change the test, because sha2-512 always generates a CID V1.
- // Assert.AreEqual("8Vv347foTHxpLZDdguzcTp7mjBmySjWK1VF36Je7io4ZKHo28fefMFr28LSv757yTcaRzn1dRqPB6WWFpYvbd5YXca", (string)node.Id);
- Assert.AreEqual("zBunREkQwjzkZwU71RKBcv2n3XwkTehtzVLkeUPTKjtBDBs2pnGRHLcxt3bGqzX38BkuNom2bQquyPj5Fh7dBZV3UdXPU", (string)node.Id);
+ Assert.AreEqual("bafybgqdqrys7323fuivxoixir7nnsfqmsneuuseg6mkbmcjgj4xaq7suehcmbghv5sbtxu57ccnhqjggxx7iz5p77gkcrhv2i3pj3yhv7fi56", (string)node.Id);
Assert.AreEqual(5, node.Size);
RoundtripTest(node);