From edcd2f34d465615f554cfa8a71e266de36f3fab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Wed, 4 Aug 2021 19:36:56 +0100 Subject: [PATCH] get rid of unserializable error type. --- api/api_storage.go | 4 ++-- api/api_test.go | 2 +- api/docgen/docgen.go | 4 ++-- build/openrpc/miner.json.gz | Bin 9922 -> 9920 bytes cmd/lotus-miner/dagstore.go | 2 +- node/impl/storminer.go | 16 +++++++++++++--- 6 files changed, 19 insertions(+), 9 deletions(-) diff --git a/api/api_storage.go b/api/api_storage.go index 3e2eac3ca..e39acd034 100644 --- a/api/api_storage.go +++ b/api/api_storage.go @@ -355,12 +355,12 @@ type DealSchedule struct { type DagstoreShardInfo struct { Key string State string - Error error + Error string } // DagstoreGCResult is the serialized form of dagstore.GCResult that we expose // through JSON-RPC to avoid clients having to depend on the dagstore lib. type DagstoreGCResult struct { Key string - Error error + Error string } diff --git a/api/api_test.go b/api/api_test.go index 738e1b067..e65d50ca3 100644 --- a/api/api_test.go +++ b/api/api_test.go @@ -76,7 +76,7 @@ func TestReturnTypes(t *testing.T) { seen[typ] = struct{}{} if typ.Kind() == reflect.Interface && typ != bareIface && !typ.Implements(jmarsh) { - t.Error("methods can't return interfaces", m.Name) + t.Error("methods can't return interfaces or struct types not implementing json.Marshaller", m.Name) } switch typ.Kind() { diff --git a/api/docgen/docgen.go b/api/docgen/docgen.go index 41968ef4a..8e16e2d42 100644 --- a/api/docgen/docgen.go +++ b/api/docgen/docgen.go @@ -278,12 +278,12 @@ func init() { }) addExample(api.DagstoreGCResult{ Key: "baga6ea4seaqecmtz7iak33dsfshi627abz4i4665dfuzr3qfs4bmad6dx3iigdq", - Error: nil, + Error: "", }) addExample(api.DagstoreShardInfo{ Key: "baga6ea4seaqecmtz7iak33dsfshi627abz4i4665dfuzr3qfs4bmad6dx3iigdq", State: "ShardStateAvailable", - Error: nil, + Error: "", }) } diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index 2c0dbb082759185e7dafb1138d16776ec53d5f41..266112d071d0e0914bab315f1872ab59cac972c0 100644 GIT binary patch delta 8442 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

pnNGnG~ik`@0^Sl?PLF7DRk3pKyP(1r4HQiE7wQ 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