From 52fb5f258c6ca121eb54bdad18207a17589a5ba7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Zdyba=C5=82?= Date: Tue, 17 Sep 2024 15:26:37 +0200 Subject: [PATCH 1/7] feat: return timestamp from `GetIDs` Enhanced the GetIDs functionality to include a timestamp in the response, both in the proto files and Go structures. Updated relevant files and added checks for the new field in the tests. --- da.go | 13 ++++- proto/da/da.proto | 1 + proxy/grpc/client.go | 5 +- proxy/grpc/server.go | 5 +- proxy/jsonrpc/client.go | 10 +++- test/dummy.go | 8 ++- test/test_suite.go | 10 ++-- types/pb/da/da.pb.go | 114 ++++++++++++++++++++++++++-------------- 8 files changed, 112 insertions(+), 54 deletions(-) diff --git a/da.go b/da.go index b640a4d..f7f03b8 100644 --- a/da.go +++ b/da.go @@ -1,6 +1,9 @@ package da -import "context" +import ( + "context" + "time" +) // DA defines very generic interface for interaction with Data Availability layers. type DA interface { @@ -14,7 +17,7 @@ type DA interface { Get(ctx context.Context, ids []ID, namespace Namespace) ([]Blob, error) // GetIDs returns IDs of all Blobs located in DA at given height. - GetIDs(ctx context.Context, height uint64, namespace Namespace) ([]ID, error) + GetIDs(ctx context.Context, height uint64, namespace Namespace) (*GetIDsResult, error) // GetProofs returns inclusion Proofs for Blobs specified by their IDs. GetProofs(ctx context.Context, ids []ID, namespace Namespace) ([]Proof, error) @@ -53,3 +56,9 @@ type Commitment = []byte // Proof should contain serialized proof of inclusion (publication) of Blob in Data Availability layer. type Proof = []byte + +// GetIDsResult holds the result of GetIDs call: IDs and timestamp of corresponding block. +type GetIDsResult struct { + IDs []ID + Timestamp time.Time +} diff --git a/proto/da/da.proto b/proto/da/da.proto index 3380cc8..87fc805 100644 --- a/proto/da/da.proto +++ b/proto/da/da.proto @@ -79,6 +79,7 @@ message GetIdsRequest { // GetIdsResponse is the response type for the GetIds rpc method. message GetIdsResponse { repeated ID ids = 1; + int64 timestamp = 2; } // GetProofsRequest is the request type for the GetProofs rpc method. diff --git a/proxy/grpc/client.go b/proxy/grpc/client.go index 5f10681..1df9547 100644 --- a/proxy/grpc/client.go +++ b/proxy/grpc/client.go @@ -2,6 +2,7 @@ package grpc import ( "context" + "time" "google.golang.org/grpc" @@ -65,14 +66,14 @@ func (c *Client) Get(ctx context.Context, ids []da.ID, namespace da.Namespace) ( } // GetIDs returns IDs of all Blobs located in DA at given height. -func (c *Client) GetIDs(ctx context.Context, height uint64, namespace da.Namespace) ([]da.ID, error) { +func (c *Client) GetIDs(ctx context.Context, height uint64, namespace da.Namespace) (*da.GetIDsResult, error) { req := &pbda.GetIdsRequest{Height: height, Namespace: &pbda.Namespace{Value: namespace}} resp, err := c.client.GetIds(ctx, req) if err != nil { return nil, err } - return idsPB2DA(resp.Ids), nil + return &da.GetIDsResult{IDs: idsPB2DA(resp.Ids), Timestamp: time.UnixMicro(resp.Timestamp)}, nil } // GetProofs returns inclusion Proofs for all Blobs located in DA at given height. diff --git a/proxy/grpc/server.go b/proxy/grpc/server.go index 8408535..f71db35 100644 --- a/proxy/grpc/server.go +++ b/proxy/grpc/server.go @@ -2,7 +2,6 @@ package grpc import ( "context" - "google.golang.org/grpc" "github.com/rollkit/go-da" @@ -38,12 +37,12 @@ func (p *proxySrv) Get(ctx context.Context, request *pbda.GetRequest) (*pbda.Get } func (p *proxySrv) GetIds(ctx context.Context, request *pbda.GetIdsRequest) (*pbda.GetIdsResponse, error) { - ids, err := p.target.GetIDs(ctx, request.Height, request.Namespace.GetValue()) + ret, err := p.target.GetIDs(ctx, request.Height, request.Namespace.GetValue()) if err != nil { return nil, err } - return &pbda.GetIdsResponse{Ids: idsDA2PB(ids)}, nil + return &pbda.GetIdsResponse{Ids: idsDA2PB(ret.IDs), Timestamp: ret.Timestamp.UnixMicro()}, nil } func (p *proxySrv) Commit(ctx context.Context, request *pbda.CommitRequest) (*pbda.CommitResponse, error) { diff --git a/proxy/jsonrpc/client.go b/proxy/jsonrpc/client.go index 90649e1..824fea2 100644 --- a/proxy/jsonrpc/client.go +++ b/proxy/jsonrpc/client.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "net/http" + "time" "github.com/filecoin-project/go-jsonrpc" @@ -22,7 +23,7 @@ type API struct { Internal struct { MaxBlobSize func(ctx context.Context) (uint64, error) `perm:"read"` Get func(ctx context.Context, ids []da.ID, ns da.Namespace) ([]da.Blob, error) `perm:"read"` - GetIDs func(ctx context.Context, height uint64, ns da.Namespace) ([]da.ID, error) `perm:"read"` + GetIDs func(ctx context.Context, height uint64, ns da.Namespace) (*da.GetIDsResult, error) `perm:"read"` GetProofs func(ctx context.Context, ids []da.ID, ns da.Namespace) ([]da.Proof, error) `perm:"read"` Commit func(ctx context.Context, blobs []da.Blob, ns da.Namespace) ([]da.Commitment, error) `perm:"read"` Validate func(context.Context, []da.ID, []da.Proof, da.Namespace) ([]bool, error) `perm:"read"` @@ -31,6 +32,11 @@ type API struct { } } +type GetIDsResult struct { + IDs []da.ID + Timestamp time.Time +} + // MaxBlobSize returns the max blob size func (api *API) MaxBlobSize(ctx context.Context) (uint64, error) { return api.Internal.MaxBlobSize(ctx) @@ -42,7 +48,7 @@ func (api *API) Get(ctx context.Context, ids []da.ID, ns da.Namespace) ([]da.Blo } // GetIDs returns IDs of all Blobs located in DA at given height. -func (api *API) GetIDs(ctx context.Context, height uint64, ns da.Namespace) ([]da.ID, error) { +func (api *API) GetIDs(ctx context.Context, height uint64, ns da.Namespace) (*da.GetIDsResult, error) { return api.Internal.GetIDs(ctx, height, ns) } diff --git a/test/dummy.go b/test/dummy.go index 1743db5..8600307 100644 --- a/test/dummy.go +++ b/test/dummy.go @@ -9,6 +9,7 @@ import ( "encoding/binary" "errors" "sync" + "time" "github.com/rollkit/go-da" ) @@ -26,6 +27,7 @@ var ErrTooHigh = errors.New("given height is from the future") type DummyDA struct { mu *sync.Mutex // protects data and height data map[uint64][]kvp + timestamps map[uint64]time.Time maxBlobSize uint64 height uint64 privKey ed25519.PrivateKey @@ -41,6 +43,7 @@ func NewDummyDA(opts ...func(*DummyDA) *DummyDA) *DummyDA { da := &DummyDA{ mu: new(sync.Mutex), data: make(map[uint64][]kvp), + timestamps: make(map[uint64]time.Time), maxBlobSize: DefaultMaxBlobSize, } for _, f := range opts { @@ -82,7 +85,7 @@ func (d *DummyDA) Get(ctx context.Context, ids []da.ID, _ da.Namespace) ([]da.Bl } // GetIDs returns IDs of Blobs at given DA height. -func (d *DummyDA) GetIDs(ctx context.Context, height uint64, _ da.Namespace) ([]da.ID, error) { +func (d *DummyDA) GetIDs(ctx context.Context, height uint64, _ da.Namespace) (*da.GetIDsResult, error) { d.mu.Lock() defer d.mu.Unlock() @@ -99,7 +102,7 @@ func (d *DummyDA) GetIDs(ctx context.Context, height uint64, _ da.Namespace) ([] for i, kv := range kvps { ids[i] = kv.key } - return ids, nil + return &da.GetIDsResult{IDs: ids, Timestamp: d.timestamps[height]}, nil } // GetProofs returns inclusion Proofs for all Blobs located in DA at given height. @@ -138,6 +141,7 @@ func (d *DummyDA) SubmitWithOptions(ctx context.Context, blobs []da.Blob, gasPri defer d.mu.Unlock() ids := make([]da.ID, len(blobs)) d.height += 1 + d.timestamps[d.height] = time.Now() for i, blob := range blobs { ids[i] = append(d.nextID(), d.getHash(blob)...) diff --git a/test/test_suite.go b/test/test_suite.go index 41e4072..9c0cef2 100644 --- a/test/test_suite.go +++ b/test/test_suite.go @@ -106,8 +106,10 @@ func GetIDsTest(t *testing.T, d da.DA) { if err != nil { t.Error("failed to get IDs:", err) } - if len(ret) > 0 { - blobs, err := d.Get(ctx, ret, testNamespace) + assert.NotNil(t, ret) + assert.NotZero(t, ret.Timestamp) + if len(ret.IDs) > 0 { + blobs, err := d.Get(ctx, ret.IDs, testNamespace) assert.NoError(t, err) // Submit ensures atomicity of batch, so it makes sense to compare actual blobs (bodies) only when lengths @@ -157,7 +159,7 @@ func ConcurrentReadWriteTest(t *testing.T, d da.DA) { // HeightFromFutureTest tests the case when the given height is from the future func HeightFromFutureTest(t *testing.T, d da.DA) { ctx := context.TODO() - ids, err := d.GetIDs(ctx, 999999999, []byte{}) + ret, err := d.GetIDs(ctx, 999999999, []byte{}) assert.Error(t, err) - assert.Nil(t, ids) + assert.Nil(t, ret) } diff --git a/types/pb/da/da.pb.go b/types/pb/da/da.pb.go index 3ec2520..baaaf1d 100644 --- a/types/pb/da/da.pb.go +++ b/types/pb/da/da.pb.go @@ -487,7 +487,8 @@ func (m *GetIdsRequest) GetNamespace() *Namespace { // GetIdsResponse is the response type for the GetIds rpc method. type GetIdsResponse struct { - Ids []*ID `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` + Ids []*ID `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` + Timestamp int64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (m *GetIdsResponse) Reset() { *m = GetIdsResponse{} } @@ -530,6 +531,13 @@ func (m *GetIdsResponse) GetIds() []*ID { return nil } +func (m *GetIdsResponse) GetTimestamp() int64 { + if m != nil { + return m.Timestamp + } + return 0 +} + // GetProofsRequest is the request type for the GetProofs rpc method. type GetProofsRequest struct { Ids []*ID `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` @@ -971,45 +979,46 @@ func init() { func init() { proto.RegisterFile("da/da.proto", fileDescriptor_feb508392bc12c0f) } var fileDescriptor_feb508392bc12c0f = []byte{ - // 601 bytes of a gzipped FileDescriptorProto + // 617 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x4d, 0x6f, 0xd3, 0x4c, - 0x10, 0x8e, 0x93, 0x26, 0x8d, 0xc7, 0x6f, 0xd2, 0x76, 0x9b, 0xb7, 0x58, 0x06, 0xac, 0x74, 0x4f, - 0x11, 0x1f, 0x01, 0x82, 0x04, 0x82, 0x13, 0x84, 0x48, 0x51, 0x0e, 0xa0, 0xca, 0x41, 0x48, 0x48, - 0x48, 0xd1, 0xa6, 0x5e, 0x52, 0x4b, 0x71, 0x6c, 0xb2, 0x4e, 0x55, 0x95, 0x33, 0x77, 0x24, 0xfe, - 0x14, 0xc7, 0x1e, 0x39, 0xa2, 0xe4, 0x8f, 0xa0, 0xf5, 0xee, 0xda, 0x71, 0x2b, 0x13, 0x45, 0xe2, - 0x38, 0x5f, 0xcf, 0x3c, 0x9e, 0x79, 0x66, 0x0d, 0x86, 0x4b, 0x1e, 0xb9, 0xa4, 0x1d, 0xce, 0x83, - 0x28, 0x40, 0x45, 0x97, 0xe0, 0x63, 0xd0, 0xdf, 0x11, 0x9f, 0xb2, 0x90, 0x9c, 0x52, 0xd4, 0x80, - 0xf2, 0x39, 0x99, 0x2e, 0xa8, 0xa9, 0x35, 0xb5, 0xd6, 0x7f, 0x8e, 0x30, 0xf0, 0x1d, 0xd8, 0xe9, - 0x4e, 0x83, 0x71, 0x4e, 0xd4, 0x82, 0xe2, 0xa0, 0x97, 0x13, 0xc3, 0x00, 0x6f, 0x02, 0xdf, 0xf7, - 0x22, 0x9f, 0xce, 0xa2, 0x9c, 0x9c, 0xbb, 0x50, 0x3e, 0x99, 0x07, 0xc1, 0xe7, 0x9c, 0x70, 0x03, - 0xd0, 0x5b, 0x72, 0xc1, 0xfb, 0x0f, 0xbd, 0x4b, 0xea, 0xd0, 0x2f, 0x0b, 0xca, 0x22, 0xfc, 0x02, - 0x0e, 0x33, 0x5e, 0x16, 0x06, 0x33, 0x46, 0x11, 0x86, 0x9a, 0x4f, 0x2e, 0x46, 0xe3, 0x69, 0x30, - 0x1e, 0x31, 0xef, 0x52, 0x40, 0xed, 0x38, 0x86, 0x9f, 0xe6, 0xe2, 0x21, 0x40, 0x9f, 0x46, 0x12, - 0x08, 0x99, 0x50, 0xf2, 0x5c, 0x66, 0x6a, 0xcd, 0x52, 0xcb, 0xe8, 0x54, 0xda, 0x2e, 0x69, 0x0f, - 0x7a, 0x0e, 0x77, 0xa1, 0xfb, 0xa0, 0xcf, 0xd4, 0x60, 0xcc, 0x62, 0x53, 0x6b, 0x19, 0x9d, 0x1a, - 0x8f, 0x27, 0xd3, 0x72, 0xd2, 0x38, 0x7e, 0x08, 0x46, 0x0c, 0x2a, 0x79, 0xd8, 0x50, 0xe6, 0x1c, - 0x14, 0x6e, 0x95, 0xd7, 0x71, 0x02, 0x8e, 0x70, 0xe3, 0xf7, 0x50, 0xeb, 0xd3, 0x68, 0xe0, 0x32, - 0x45, 0xe3, 0x08, 0x2a, 0x67, 0xd4, 0x9b, 0x9c, 0x45, 0x92, 0xb1, 0xb4, 0xb6, 0x23, 0x71, 0x0f, - 0xea, 0x0a, 0x55, 0xf2, 0xc8, 0xfd, 0x3a, 0xfc, 0x11, 0xf6, 0xfb, 0x34, 0x8a, 0x07, 0xcf, 0xfe, - 0xf1, 0x2c, 0x9e, 0xc1, 0xc1, 0x1a, 0xb4, 0x64, 0x72, 0x0c, 0x95, 0x30, 0xf6, 0x48, 0x78, 0x9d, - 0x97, 0xc7, 0x39, 0x8e, 0x0c, 0xe0, 0x4f, 0x50, 0x13, 0x62, 0x51, 0x7c, 0x36, 0x4c, 0x71, 0x3b, - 0x56, 0x5d, 0xa8, 0x2b, 0x74, 0x49, 0xe9, 0x31, 0x18, 0xa7, 0x89, 0x38, 0x55, 0x93, 0x3a, 0x07, - 0x48, 0x35, 0xeb, 0xac, 0xa7, 0xe0, 0x1f, 0x1a, 0xd4, 0x86, 0x8b, 0xf1, 0x16, 0x14, 0x6f, 0x83, - 0x3e, 0x21, 0x6c, 0x14, 0xce, 0x3d, 0x49, 0x51, 0x73, 0xaa, 0x13, 0xc2, 0x4e, 0xb8, 0x9d, 0xe5, - 0x5f, 0xfa, 0x3b, 0x7f, 0x64, 0xc2, 0x6e, 0x10, 0x46, 0x5e, 0x30, 0x63, 0xe6, 0x4e, 0x7c, 0x1f, - 0xca, 0xe4, 0x6b, 0x57, 0xa4, 0x36, 0xae, 0xfd, 0x2b, 0xec, 0x7d, 0x20, 0x53, 0xcf, 0x25, 0x11, - 0xdd, 0xbc, 0xf5, 0x74, 0x67, 0xc5, 0x9c, 0x9d, 0x6d, 0xf5, 0x09, 0xf8, 0x01, 0xec, 0xa7, 0xcd, - 0x13, 0xaa, 0xbb, 0x73, 0xca, 0x16, 0x53, 0xb9, 0x80, 0xaa, 0xa3, 0xcc, 0xce, 0xb7, 0x12, 0xe8, - 0xbd, 0xd7, 0x43, 0x3a, 0x3f, 0xe7, 0xb3, 0x7a, 0x05, 0xc6, 0xda, 0xc1, 0xa3, 0x23, 0xde, 0xe4, - 0xe6, 0xbb, 0x60, 0xdd, 0xba, 0xe1, 0x17, 0x7d, 0x70, 0x01, 0xb5, 0xa0, 0xd4, 0xa7, 0x11, 0x8a, - 0x17, 0x9c, 0x3e, 0x00, 0xd6, 0x5e, 0x62, 0x27, 0x99, 0x4f, 0xa0, 0x22, 0xee, 0x08, 0x1d, 0xc8, - 0x60, 0x7a, 0xa9, 0x16, 0x5a, 0x77, 0x25, 0x25, 0x2f, 0x41, 0x4f, 0x34, 0x8f, 0x1a, 0x32, 0x25, - 0x73, 0x5d, 0xd6, 0xff, 0xd7, 0xbc, 0xeb, 0xed, 0x84, 0xe0, 0x44, 0xbb, 0xcc, 0x0d, 0x88, 0x76, - 0x59, 0xe1, 0x8a, 0x12, 0xb1, 0x72, 0x51, 0x92, 0xd1, 0xa4, 0x28, 0xc9, 0x2a, 0x02, 0x17, 0xd0, - 0x73, 0xa8, 0xaa, 0xe1, 0xa3, 0x43, 0x9e, 0x71, 0x4d, 0x07, 0x56, 0x23, 0xeb, 0x54, 0x85, 0x5d, - 0xf3, 0xe7, 0xd2, 0xd6, 0xae, 0x96, 0xb6, 0xf6, 0x7b, 0x69, 0x6b, 0xdf, 0x57, 0x76, 0xe1, 0x6a, - 0x65, 0x17, 0x7e, 0xad, 0xec, 0xc2, 0xb8, 0x12, 0xff, 0x45, 0x9e, 0xfe, 0x09, 0x00, 0x00, 0xff, - 0xff, 0xed, 0xc8, 0xba, 0x02, 0x54, 0x06, 0x00, 0x00, + 0x10, 0x8e, 0xe3, 0x36, 0x8d, 0xc7, 0x6f, 0xd2, 0x76, 0x9b, 0xb7, 0x58, 0xa6, 0x58, 0xed, 0x9e, + 0x22, 0x3e, 0x0a, 0x14, 0x09, 0x04, 0x27, 0x28, 0x95, 0x42, 0x0f, 0xa0, 0xca, 0x41, 0x48, 0x48, + 0x48, 0xd1, 0xa6, 0x5e, 0x52, 0x4b, 0x71, 0x6c, 0xb2, 0x9b, 0xaa, 0x2a, 0x67, 0xee, 0x48, 0xfc, + 0x29, 0x8e, 0x3d, 0x72, 0x44, 0xc9, 0x1f, 0x41, 0xeb, 0xdd, 0xb5, 0xe3, 0x56, 0x26, 0x8a, 0xc4, + 0x71, 0xbe, 0x9e, 0x79, 0x3c, 0xf3, 0xcc, 0x1a, 0xec, 0x80, 0x3c, 0x0c, 0xc8, 0x7e, 0x32, 0x8e, + 0x79, 0x8c, 0xaa, 0x01, 0xc1, 0x7b, 0x60, 0xbd, 0x23, 0x11, 0x65, 0x09, 0x39, 0xa5, 0xa8, 0x05, + 0xab, 0xe7, 0x64, 0x38, 0xa1, 0x8e, 0xb1, 0x6b, 0xb4, 0xff, 0xf3, 0xa5, 0x81, 0x77, 0x60, 0xe5, + 0x70, 0x18, 0xf7, 0x4b, 0xa2, 0x2e, 0x54, 0x8f, 0x8f, 0x4a, 0x62, 0x18, 0xe0, 0x75, 0x1c, 0x45, + 0x21, 0x8f, 0xe8, 0x88, 0x97, 0xe4, 0xdc, 0x81, 0xd5, 0x93, 0x71, 0x1c, 0x7f, 0x2e, 0x09, 0xb7, + 0x00, 0xbd, 0x25, 0x17, 0xa2, 0x7f, 0x37, 0xbc, 0xa4, 0x3e, 0xfd, 0x32, 0xa1, 0x8c, 0xe3, 0xe7, + 0xb0, 0x55, 0xf0, 0xb2, 0x24, 0x1e, 0x31, 0x8a, 0x30, 0x34, 0x22, 0x72, 0xd1, 0xeb, 0x0f, 0xe3, + 0x7e, 0x8f, 0x85, 0x97, 0x12, 0x6a, 0xc5, 0xb7, 0xa3, 0x3c, 0x17, 0x77, 0x01, 0x3a, 0x94, 0x2b, + 0x20, 0xe4, 0x80, 0x19, 0x06, 0xcc, 0x31, 0x76, 0xcd, 0xb6, 0x7d, 0x50, 0xdb, 0x0f, 0xc8, 0xfe, + 0xf1, 0x91, 0x2f, 0x5c, 0xe8, 0x1e, 0x58, 0x23, 0x3d, 0x18, 0xa7, 0xba, 0x6b, 0xb4, 0xed, 0x83, + 0x86, 0x88, 0x67, 0xd3, 0xf2, 0xf3, 0x38, 0x7e, 0x00, 0x76, 0x0a, 0xaa, 0x78, 0x78, 0xb0, 0x2a, + 0x38, 0x68, 0xdc, 0xba, 0xa8, 0x13, 0x04, 0x7c, 0xe9, 0xc6, 0xef, 0xa1, 0xd1, 0xa1, 0xfc, 0x38, + 0x60, 0x9a, 0xc6, 0x36, 0xd4, 0xce, 0x68, 0x38, 0x38, 0xe3, 0x8a, 0xb1, 0xb2, 0x96, 0x23, 0xf1, + 0x06, 0x9a, 0x1a, 0x55, 0xf1, 0x28, 0xff, 0xba, 0x1d, 0xb0, 0x78, 0x18, 0x51, 0xc6, 0x49, 0x94, + 0xa4, 0xc0, 0xa6, 0x9f, 0x3b, 0xf0, 0x47, 0xd8, 0xe8, 0x50, 0x9e, 0xae, 0x85, 0xfd, 0xe3, 0x49, + 0x3d, 0x85, 0xcd, 0x39, 0x68, 0xc5, 0x73, 0x0f, 0x6a, 0x49, 0xea, 0x51, 0xf0, 0x96, 0x28, 0x4f, + 0x73, 0x7c, 0x15, 0xc0, 0x9f, 0xa0, 0x21, 0xa5, 0xa4, 0xf9, 0x2c, 0x98, 0xf1, 0x72, 0xac, 0x0e, + 0xa1, 0xa9, 0xd1, 0x15, 0xa5, 0x47, 0x60, 0x9f, 0x66, 0xd2, 0xd5, 0x4d, 0x9a, 0x02, 0x20, 0x57, + 0xb4, 0x3f, 0x9f, 0x82, 0x7f, 0x18, 0xd0, 0xe8, 0x4e, 0xfa, 0x4b, 0x50, 0xbc, 0x0d, 0xd6, 0x80, + 0xb0, 0x5e, 0x32, 0x0e, 0x15, 0x45, 0xc3, 0xaf, 0x0f, 0x08, 0x3b, 0x11, 0x76, 0x91, 0xbf, 0xf9, + 0x77, 0xfe, 0xc8, 0x81, 0xb5, 0x38, 0xe1, 0x61, 0x3c, 0x62, 0xce, 0x4a, 0x7a, 0x3d, 0xda, 0xc4, + 0x77, 0xa1, 0xa9, 0x49, 0x2d, 0x12, 0x05, 0xfe, 0x0a, 0xeb, 0x1f, 0xc8, 0x30, 0x0c, 0x08, 0xa7, + 0x8b, 0xb7, 0x9e, 0xef, 0xac, 0x5a, 0xb2, 0xb3, 0xa5, 0x3e, 0x01, 0xdf, 0x87, 0x8d, 0xbc, 0x79, + 0x46, 0x75, 0x6d, 0x4c, 0xd9, 0x64, 0xa8, 0x16, 0x50, 0xf7, 0xb5, 0x79, 0xf0, 0xcd, 0x04, 0xeb, + 0xe8, 0x55, 0x97, 0x8e, 0xcf, 0xc5, 0xac, 0x5e, 0x82, 0x3d, 0xf7, 0x1c, 0xa0, 0x6d, 0xd1, 0xe4, + 0xe6, 0xab, 0xe1, 0xde, 0xba, 0xe1, 0x97, 0x7d, 0x70, 0x05, 0xb5, 0xc1, 0xec, 0x50, 0x8e, 0xd2, + 0x05, 0xe7, 0xcf, 0x83, 0xbb, 0x9e, 0xd9, 0x59, 0xe6, 0x63, 0xa8, 0xc9, 0x2b, 0x43, 0x9b, 0x2a, + 0x98, 0xdf, 0xb1, 0x8b, 0xe6, 0x5d, 0x59, 0xc9, 0x0b, 0xb0, 0x32, 0xcd, 0xa3, 0x96, 0x4a, 0x29, + 0x5c, 0x97, 0xfb, 0xff, 0x35, 0xef, 0x7c, 0x3b, 0x29, 0x38, 0xd9, 0xae, 0x70, 0x03, 0xb2, 0x5d, + 0x51, 0xb8, 0xb2, 0x44, 0xae, 0x5c, 0x96, 0x14, 0x34, 0x29, 0x4b, 0x8a, 0x8a, 0xc0, 0x15, 0xf4, + 0x0c, 0xea, 0x7a, 0xf8, 0x68, 0x4b, 0x64, 0x5c, 0xd3, 0x81, 0xdb, 0x2a, 0x3a, 0x75, 0xe1, 0xa1, + 0xf3, 0x73, 0xea, 0x19, 0x57, 0x53, 0xcf, 0xf8, 0x3d, 0xf5, 0x8c, 0xef, 0x33, 0xaf, 0x72, 0x35, + 0xf3, 0x2a, 0xbf, 0x66, 0x5e, 0xa5, 0x5f, 0x4b, 0xff, 0x31, 0x4f, 0xfe, 0x04, 0x00, 0x00, 0xff, + 0xff, 0x4e, 0x5c, 0x6b, 0xa9, 0x72, 0x06, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1669,6 +1678,11 @@ func (m *GetIdsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Timestamp != 0 { + i = encodeVarintDa(dAtA, i, uint64(m.Timestamp)) + i-- + dAtA[i] = 0x10 + } if len(m.Ids) > 0 { for iNdEx := len(m.Ids) - 1; iNdEx >= 0; iNdEx-- { { @@ -2215,6 +2229,9 @@ func (m *GetIdsResponse) Size() (n int) { n += 1 + l + sovDa(uint64(l)) } } + if m.Timestamp != 0 { + n += 1 + sovDa(uint64(m.Timestamp)) + } return n } @@ -3281,6 +3298,25 @@ func (m *GetIdsResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + m.Timestamp = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDa + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Timestamp |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipDa(dAtA[iNdEx:]) From 305715ff824ec1751298d73b6ab22a617aa6e983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Zdyba=C5=82?= Date: Tue, 17 Sep 2024 15:32:41 +0200 Subject: [PATCH 2/7] chore: fix linter errors --- proxy/grpc/server.go | 1 + proxy/jsonrpc/client.go | 1 + 2 files changed, 2 insertions(+) diff --git a/proxy/grpc/server.go b/proxy/grpc/server.go index f71db35..26ba73a 100644 --- a/proxy/grpc/server.go +++ b/proxy/grpc/server.go @@ -2,6 +2,7 @@ package grpc import ( "context" + "google.golang.org/grpc" "github.com/rollkit/go-da" diff --git a/proxy/jsonrpc/client.go b/proxy/jsonrpc/client.go index 824fea2..0a65d74 100644 --- a/proxy/jsonrpc/client.go +++ b/proxy/jsonrpc/client.go @@ -32,6 +32,7 @@ type API struct { } } +// GetIDsResult is returned by `GetIDs` method. type GetIDsResult struct { IDs []da.ID Timestamp time.Time From 02934f2ac3bb4f146968bbd62d1a7921afa1503d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Zdyba=C5=82?= Date: Tue, 17 Sep 2024 22:01:54 +0200 Subject: [PATCH 3/7] fix: remove unused struct --- proxy/jsonrpc/client.go | 7 ------- 1 file changed, 7 deletions(-) diff --git a/proxy/jsonrpc/client.go b/proxy/jsonrpc/client.go index 0a65d74..4e7b192 100644 --- a/proxy/jsonrpc/client.go +++ b/proxy/jsonrpc/client.go @@ -4,7 +4,6 @@ import ( "context" "fmt" "net/http" - "time" "github.com/filecoin-project/go-jsonrpc" @@ -32,12 +31,6 @@ type API struct { } } -// GetIDsResult is returned by `GetIDs` method. -type GetIDsResult struct { - IDs []da.ID - Timestamp time.Time -} - // MaxBlobSize returns the max blob size func (api *API) MaxBlobSize(ctx context.Context) (uint64, error) { return api.Internal.MaxBlobSize(ctx) From 9d1a0c181e31177b4ddd10456a26832806a72270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Zdyba=C5=82?= Date: Wed, 18 Sep 2024 16:42:36 +0200 Subject: [PATCH 4/7] chore: Switch from Docker to 'plain' Buf for protobuf generation Removed old protobuf generation shell scripts and updated Makefile to use Buf. Changed dependencies and updated configurations accordingly. This modernizes the setup and removes the dependency on Docker. --- .github/workflows/lint.yml | 1 + .github/workflows/proto.yml | 1 + Makefile | 19 +++++++++++++------ buf.gen.yaml | 9 +++++++-- buf.lock | 8 ++++++++ buf.yaml | 5 +++-- go.mod | 5 +++-- go.sum | 25 ++++++------------------- proto/gen.sh | 10 ---------- proto/protoc.sh | 5 ----- types/pb/da/da.pb.go | 1 + 11 files changed, 43 insertions(+), 46 deletions(-) create mode 100644 buf.lock delete mode 100755 proto/gen.sh delete mode 100644 proto/protoc.sh diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index f2542ad..7b74c81 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -52,5 +52,6 @@ jobs: timeout-minutes: 5 steps: - uses: actions/checkout@v4 + - run: echo "$GITHUB_WORKSPACE/go/bin" >> $GITHUB_PATH - run: make proto-gen - run: make proto-lint diff --git a/.github/workflows/proto.yml b/.github/workflows/proto.yml index 7cbdea3..4e625b6 100644 --- a/.github/workflows/proto.yml +++ b/.github/workflows/proto.yml @@ -8,6 +8,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 5 steps: + - run: echo "$GITHUB_WORKSPACE/go/bin" >> $GITHUB_PATH - uses: actions/checkout@v4 - name: "Check protobuf generated code matches committed code" # yamllint disable diff --git a/Makefile b/Makefile index 352f805..49882b6 100644 --- a/Makefile +++ b/Makefile @@ -65,14 +65,21 @@ test: vet @go test -v -race -covermode=atomic -coverprofile=coverage.txt $(pkgs) -run $(run) -count=$(count) .PHONY: test -## proto-gen: Generate protobuf files. Requires docker. -proto-gen: +## check-proto-deps: Check protobuf deps +check-proto-deps: +ifeq (,$(shell which protoc-gen-gocosmos)) + @go install github.com/cosmos/gogoproto/protoc-gen-gocosmos@latest +endif +.PHONY: check-proto-deps + +## proto-gen: Generate protobuf files +proto-gen: check-proto-deps @echo "--> Generating Protobuf files" - ./proto/gen.sh + @go run github.com/bufbuild/buf/cmd/buf@latest generate --path proto/da .PHONY: proto-gen -## proto-lint: Lint protobuf files. Requires docker. -proto-lint: +## proto-lint: Lint protobuf files. +proto-lint: check-proto-deps @echo "--> Linting Protobuf files" - @$(DOCKER_BUF) lint --error-format=json + @go run github.com/bufbuild/buf/cmd/buf@latest lint --error-format=json .PHONY: proto-lint diff --git a/buf.gen.yaml b/buf.gen.yaml index 121e7f5..6b2d206 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -3,8 +3,13 @@ version: v1beta1 # The plugins to run. plugins: # The name of the plugin. - - name: gogofaster + - name: gocosmos # The the relative output directory. out: types/pb # Any options to provide to the plugin. - opt: plugins=grpc,paths=source_relative + opt: + - Mgoogle/protobuf/timestamp.proto=github.com/cosmos/gogoproto/types + - Mgoogle/protobuf/duration.proto=github.com/golang/protobuf/ptypes/duration + - Mgoogle/protobuf/wrappers.proto=github.com/cosmos/gogoproto/types + - plugins=grpc + - paths=source_relative diff --git a/buf.lock b/buf.lock new file mode 100644 index 0000000..9f51e69 --- /dev/null +++ b/buf.lock @@ -0,0 +1,8 @@ +# Generated by buf. DO NOT EDIT. +version: v1beta1 +deps: + - remote: buf.build + owner: cosmos + repository: gogo-proto + commit: 88ef6483f90f478fb938c37dde52ece3 + digest: shake256:89c45df2aa11e0cff97b0d695436713db3d993d76792e9f8dc1ae90e6ab9a9bec55503d48ceedd6b86069ab07d3041b32001b2bfe0227fa725dd515ff381e5ba diff --git a/buf.yaml b/buf.yaml index fc7ba0b..405aef9 100644 --- a/buf.yaml +++ b/buf.yaml @@ -1,12 +1,13 @@ version: v1beta1 - +deps: + - buf.build/cosmos/gogo-proto build: roots: - proto - third_party/proto lint: use: - - DEFAULT + - STANDARD - COMMENTS - FILE_LOWER_SNAKE_CASE except: diff --git a/go.mod b/go.mod index 94e5faa..e043492 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,8 @@ module github.com/rollkit/go-da go 1.21.1 require ( + github.com/cosmos/gogoproto v1.7.0 github.com/filecoin-project/go-jsonrpc v0.6.0 - github.com/gogo/protobuf v1.3.2 github.com/ipfs/go-log/v2 v2.5.1 github.com/stretchr/testify v1.9.0 google.golang.org/grpc v1.66.2 @@ -13,6 +13,7 @@ require ( require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/websocket v1.4.2 // indirect github.com/mattn/go-isatty v0.0.14 // indirect @@ -26,7 +27,7 @@ require ( golang.org/x/text v0.16.0 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect - google.golang.org/protobuf v1.34.1 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 7086a81..2da1842 100644 --- a/go.sum +++ b/go.sum @@ -3,19 +3,21 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cosmos/gogoproto v1.7.0 h1:79USr0oyXAbxg3rspGh/m4SWNyoz/GLaAh0QlCe2fro= +github.com/cosmos/gogoproto v1.7.0/go.mod h1:yWChEv5IUEYURQasfyBW5ffkMHR/90hiHgbNgrtp4j0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/filecoin-project/go-jsonrpc v0.6.0 h1:/fFJIAN/k6EgY90m7qbyfY28woMwyseZmh2gVs5sYjY= github.com/filecoin-project/go-jsonrpc v0.6.0/go.mod h1:/n/niXcS4ZQua6i37LcVbY1TmlJR0UIK9mDFQq2ICek= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 h1:ZgQEtGgCBiWRM39fZuwSd1LwSqqSW0hOdXCYYDX0R3I= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -25,8 +27,6 @@ github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0U github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -44,8 +44,6 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -59,14 +57,11 @@ go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI= go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -74,8 +69,6 @@ golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= @@ -84,14 +77,11 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -109,12 +99,9 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -127,8 +114,8 @@ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZi google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo= google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/proto/gen.sh b/proto/gen.sh deleted file mode 100755 index a34875d..0000000 --- a/proto/gen.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -# see: https://stackoverflow.com/a/246128 -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"/.. -TARGET_DIR=./types/pb - -cd $SCRIPT_DIR -mkdir -p $TARGET_DIR -rm -rf $TARGET_DIR/* -docker run -u $UID:$(id -g) -e XDG_CACHE_HOME=/tmp/.cache -v $PWD:/workspace --workdir /workspace tendermintdev/docker-build-proto sh ./proto/protoc.sh \ No newline at end of file diff --git a/proto/protoc.sh b/proto/protoc.sh deleted file mode 100644 index 562ac0d..0000000 --- a/proto/protoc.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -buf generate --path="./proto/da" --template="buf.gen.yaml" --config="buf.yaml" \ No newline at end of file diff --git a/types/pb/da/da.pb.go b/types/pb/da/da.pb.go index baaaf1d..acbb05b 100644 --- a/types/pb/da/da.pb.go +++ b/types/pb/da/da.pb.go @@ -1294,6 +1294,7 @@ func _DAService_Validate_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } +var DAService_serviceDesc = _DAService_serviceDesc var _DAService_serviceDesc = grpc.ServiceDesc{ ServiceName: "da.DAService", HandlerType: (*DAServiceServer)(nil), From c82ed55146e7dbdf861a072ea8cf04d576bcf587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Zdyba=C5=82?= Date: Wed, 18 Sep 2024 16:43:42 +0200 Subject: [PATCH 5/7] refactor: use google.protobuf.Timestamp instead of int64 Replaced the int64 timestamp with google.protobuf.Timestamp in the GetIdsResponse message. Adjusted the generated code to handle the new timestamp type and updated the protobuf imports accordingly. --- proto/da/da.proto | 4 +- proxy/grpc/client.go | 8 ++- proxy/grpc/server.go | 7 ++- types/pb/da/da.pb.go | 141 ++++++++++++++++++++++++++----------------- 4 files changed, 100 insertions(+), 60 deletions(-) diff --git a/proto/da/da.proto b/proto/da/da.proto index 87fc805..de3ab40 100644 --- a/proto/da/da.proto +++ b/proto/da/da.proto @@ -1,6 +1,8 @@ syntax = "proto3"; package da; +import "google/protobuf/timestamp.proto"; + // DAService is the protobuf service definition for interaction with Data Availability layers. service DAService { // MaxBlobSize returns the maximum blob size @@ -79,7 +81,7 @@ message GetIdsRequest { // GetIdsResponse is the response type for the GetIds rpc method. message GetIdsResponse { repeated ID ids = 1; - int64 timestamp = 2; + google.protobuf.Timestamp timestamp = 2; } // GetProofsRequest is the request type for the GetProofs rpc method. diff --git a/proxy/grpc/client.go b/proxy/grpc/client.go index 1df9547..3babea8 100644 --- a/proxy/grpc/client.go +++ b/proxy/grpc/client.go @@ -2,8 +2,8 @@ package grpc import ( "context" - "time" + "github.com/cosmos/gogoproto/types" "google.golang.org/grpc" "github.com/rollkit/go-da" @@ -73,7 +73,11 @@ func (c *Client) GetIDs(ctx context.Context, height uint64, namespace da.Namespa return nil, err } - return &da.GetIDsResult{IDs: idsPB2DA(resp.Ids), Timestamp: time.UnixMicro(resp.Timestamp)}, nil + timestamp, err := types.TimestampFromProto(resp.Timestamp) + if err != nil { + return nil, err + } + return &da.GetIDsResult{IDs: idsPB2DA(resp.Ids), Timestamp: timestamp}, nil } // GetProofs returns inclusion Proofs for all Blobs located in DA at given height. diff --git a/proxy/grpc/server.go b/proxy/grpc/server.go index 26ba73a..d77b82c 100644 --- a/proxy/grpc/server.go +++ b/proxy/grpc/server.go @@ -3,6 +3,7 @@ package grpc import ( "context" + "github.com/cosmos/gogoproto/types" "google.golang.org/grpc" "github.com/rollkit/go-da" @@ -43,7 +44,11 @@ func (p *proxySrv) GetIds(ctx context.Context, request *pbda.GetIdsRequest) (*pb return nil, err } - return &pbda.GetIdsResponse{Ids: idsDA2PB(ret.IDs), Timestamp: ret.Timestamp.UnixMicro()}, nil + timestamp, err := types.TimestampProto(ret.Timestamp) + if err != nil { + return nil, err + } + return &pbda.GetIdsResponse{Ids: idsDA2PB(ret.IDs), Timestamp: timestamp}, nil } func (p *proxySrv) Commit(ctx context.Context, request *pbda.CommitRequest) (*pbda.CommitResponse, error) { diff --git a/types/pb/da/da.pb.go b/types/pb/da/da.pb.go index acbb05b..ec3bdfb 100644 --- a/types/pb/da/da.pb.go +++ b/types/pb/da/da.pb.go @@ -7,7 +7,9 @@ import ( context "context" encoding_binary "encoding/binary" fmt "fmt" - proto "github.com/gogo/protobuf/proto" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" + types "github.com/cosmos/gogoproto/types" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -487,8 +489,8 @@ func (m *GetIdsRequest) GetNamespace() *Namespace { // GetIdsResponse is the response type for the GetIds rpc method. type GetIdsResponse struct { - Ids []*ID `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` - Timestamp int64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Ids []*ID `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` + Timestamp *types.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (m *GetIdsResponse) Reset() { *m = GetIdsResponse{} } @@ -531,11 +533,11 @@ func (m *GetIdsResponse) GetIds() []*ID { return nil } -func (m *GetIdsResponse) GetTimestamp() int64 { +func (m *GetIdsResponse) GetTimestamp() *types.Timestamp { if m != nil { return m.Timestamp } - return 0 + return nil } // GetProofsRequest is the request type for the GetProofs rpc method. @@ -979,46 +981,48 @@ func init() { func init() { proto.RegisterFile("da/da.proto", fileDescriptor_feb508392bc12c0f) } var fileDescriptor_feb508392bc12c0f = []byte{ - // 617 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x4d, 0x6f, 0xd3, 0x4c, - 0x10, 0x8e, 0xe3, 0x36, 0x8d, 0xc7, 0x6f, 0xd2, 0x76, 0x9b, 0xb7, 0x58, 0xa6, 0x58, 0xed, 0x9e, - 0x22, 0x3e, 0x0a, 0x14, 0x09, 0x04, 0x27, 0x28, 0x95, 0x42, 0x0f, 0xa0, 0xca, 0x41, 0x48, 0x48, - 0x48, 0xd1, 0xa6, 0x5e, 0x52, 0x4b, 0x71, 0x6c, 0xb2, 0x9b, 0xaa, 0x2a, 0x67, 0xee, 0x48, 0xfc, - 0x29, 0x8e, 0x3d, 0x72, 0x44, 0xc9, 0x1f, 0x41, 0xeb, 0xdd, 0xb5, 0xe3, 0x56, 0x26, 0x8a, 0xc4, - 0x71, 0xbe, 0x9e, 0x79, 0x3c, 0xf3, 0xcc, 0x1a, 0xec, 0x80, 0x3c, 0x0c, 0xc8, 0x7e, 0x32, 0x8e, - 0x79, 0x8c, 0xaa, 0x01, 0xc1, 0x7b, 0x60, 0xbd, 0x23, 0x11, 0x65, 0x09, 0x39, 0xa5, 0xa8, 0x05, - 0xab, 0xe7, 0x64, 0x38, 0xa1, 0x8e, 0xb1, 0x6b, 0xb4, 0xff, 0xf3, 0xa5, 0x81, 0x77, 0x60, 0xe5, - 0x70, 0x18, 0xf7, 0x4b, 0xa2, 0x2e, 0x54, 0x8f, 0x8f, 0x4a, 0x62, 0x18, 0xe0, 0x75, 0x1c, 0x45, - 0x21, 0x8f, 0xe8, 0x88, 0x97, 0xe4, 0xdc, 0x81, 0xd5, 0x93, 0x71, 0x1c, 0x7f, 0x2e, 0x09, 0xb7, - 0x00, 0xbd, 0x25, 0x17, 0xa2, 0x7f, 0x37, 0xbc, 0xa4, 0x3e, 0xfd, 0x32, 0xa1, 0x8c, 0xe3, 0xe7, - 0xb0, 0x55, 0xf0, 0xb2, 0x24, 0x1e, 0x31, 0x8a, 0x30, 0x34, 0x22, 0x72, 0xd1, 0xeb, 0x0f, 0xe3, - 0x7e, 0x8f, 0x85, 0x97, 0x12, 0x6a, 0xc5, 0xb7, 0xa3, 0x3c, 0x17, 0x77, 0x01, 0x3a, 0x94, 0x2b, - 0x20, 0xe4, 0x80, 0x19, 0x06, 0xcc, 0x31, 0x76, 0xcd, 0xb6, 0x7d, 0x50, 0xdb, 0x0f, 0xc8, 0xfe, - 0xf1, 0x91, 0x2f, 0x5c, 0xe8, 0x1e, 0x58, 0x23, 0x3d, 0x18, 0xa7, 0xba, 0x6b, 0xb4, 0xed, 0x83, - 0x86, 0x88, 0x67, 0xd3, 0xf2, 0xf3, 0x38, 0x7e, 0x00, 0x76, 0x0a, 0xaa, 0x78, 0x78, 0xb0, 0x2a, - 0x38, 0x68, 0xdc, 0xba, 0xa8, 0x13, 0x04, 0x7c, 0xe9, 0xc6, 0xef, 0xa1, 0xd1, 0xa1, 0xfc, 0x38, - 0x60, 0x9a, 0xc6, 0x36, 0xd4, 0xce, 0x68, 0x38, 0x38, 0xe3, 0x8a, 0xb1, 0xb2, 0x96, 0x23, 0xf1, - 0x06, 0x9a, 0x1a, 0x55, 0xf1, 0x28, 0xff, 0xba, 0x1d, 0xb0, 0x78, 0x18, 0x51, 0xc6, 0x49, 0x94, - 0xa4, 0xc0, 0xa6, 0x9f, 0x3b, 0xf0, 0x47, 0xd8, 0xe8, 0x50, 0x9e, 0xae, 0x85, 0xfd, 0xe3, 0x49, - 0x3d, 0x85, 0xcd, 0x39, 0x68, 0xc5, 0x73, 0x0f, 0x6a, 0x49, 0xea, 0x51, 0xf0, 0x96, 0x28, 0x4f, - 0x73, 0x7c, 0x15, 0xc0, 0x9f, 0xa0, 0x21, 0xa5, 0xa4, 0xf9, 0x2c, 0x98, 0xf1, 0x72, 0xac, 0x0e, - 0xa1, 0xa9, 0xd1, 0x15, 0xa5, 0x47, 0x60, 0x9f, 0x66, 0xd2, 0xd5, 0x4d, 0x9a, 0x02, 0x20, 0x57, - 0xb4, 0x3f, 0x9f, 0x82, 0x7f, 0x18, 0xd0, 0xe8, 0x4e, 0xfa, 0x4b, 0x50, 0xbc, 0x0d, 0xd6, 0x80, - 0xb0, 0x5e, 0x32, 0x0e, 0x15, 0x45, 0xc3, 0xaf, 0x0f, 0x08, 0x3b, 0x11, 0x76, 0x91, 0xbf, 0xf9, - 0x77, 0xfe, 0xc8, 0x81, 0xb5, 0x38, 0xe1, 0x61, 0x3c, 0x62, 0xce, 0x4a, 0x7a, 0x3d, 0xda, 0xc4, - 0x77, 0xa1, 0xa9, 0x49, 0x2d, 0x12, 0x05, 0xfe, 0x0a, 0xeb, 0x1f, 0xc8, 0x30, 0x0c, 0x08, 0xa7, - 0x8b, 0xb7, 0x9e, 0xef, 0xac, 0x5a, 0xb2, 0xb3, 0xa5, 0x3e, 0x01, 0xdf, 0x87, 0x8d, 0xbc, 0x79, - 0x46, 0x75, 0x6d, 0x4c, 0xd9, 0x64, 0xa8, 0x16, 0x50, 0xf7, 0xb5, 0x79, 0xf0, 0xcd, 0x04, 0xeb, - 0xe8, 0x55, 0x97, 0x8e, 0xcf, 0xc5, 0xac, 0x5e, 0x82, 0x3d, 0xf7, 0x1c, 0xa0, 0x6d, 0xd1, 0xe4, - 0xe6, 0xab, 0xe1, 0xde, 0xba, 0xe1, 0x97, 0x7d, 0x70, 0x05, 0xb5, 0xc1, 0xec, 0x50, 0x8e, 0xd2, - 0x05, 0xe7, 0xcf, 0x83, 0xbb, 0x9e, 0xd9, 0x59, 0xe6, 0x63, 0xa8, 0xc9, 0x2b, 0x43, 0x9b, 0x2a, - 0x98, 0xdf, 0xb1, 0x8b, 0xe6, 0x5d, 0x59, 0xc9, 0x0b, 0xb0, 0x32, 0xcd, 0xa3, 0x96, 0x4a, 0x29, - 0x5c, 0x97, 0xfb, 0xff, 0x35, 0xef, 0x7c, 0x3b, 0x29, 0x38, 0xd9, 0xae, 0x70, 0x03, 0xb2, 0x5d, - 0x51, 0xb8, 0xb2, 0x44, 0xae, 0x5c, 0x96, 0x14, 0x34, 0x29, 0x4b, 0x8a, 0x8a, 0xc0, 0x15, 0xf4, - 0x0c, 0xea, 0x7a, 0xf8, 0x68, 0x4b, 0x64, 0x5c, 0xd3, 0x81, 0xdb, 0x2a, 0x3a, 0x75, 0xe1, 0xa1, - 0xf3, 0x73, 0xea, 0x19, 0x57, 0x53, 0xcf, 0xf8, 0x3d, 0xf5, 0x8c, 0xef, 0x33, 0xaf, 0x72, 0x35, - 0xf3, 0x2a, 0xbf, 0x66, 0x5e, 0xa5, 0x5f, 0x4b, 0xff, 0x31, 0x4f, 0xfe, 0x04, 0x00, 0x00, 0xff, - 0xff, 0x4e, 0x5c, 0x6b, 0xa9, 0x72, 0x06, 0x00, 0x00, + // 641 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xcd, 0x4f, 0x13, 0x41, + 0x14, 0xef, 0xb6, 0x50, 0xba, 0x6f, 0x6d, 0x81, 0xa1, 0xe2, 0x66, 0xd5, 0x15, 0xe6, 0xd4, 0xf8, + 0x51, 0x14, 0x13, 0xbf, 0x4e, 0x8a, 0x24, 0x0d, 0x07, 0x0d, 0xd9, 0x12, 0x13, 0x13, 0x13, 0x32, + 0x65, 0x87, 0xb2, 0x49, 0xb7, 0xb3, 0x76, 0xa6, 0x84, 0xe0, 0xd9, 0xbb, 0x89, 0xff, 0x94, 0x47, + 0x8e, 0x1e, 0x0d, 0xfc, 0x23, 0x66, 0x76, 0x66, 0x76, 0xbb, 0x90, 0xda, 0x34, 0xf1, 0xf8, 0xbe, + 0x7e, 0xef, 0x37, 0xef, 0xfd, 0xde, 0x80, 0x13, 0x92, 0xad, 0x90, 0xb4, 0x93, 0x11, 0x13, 0x0c, + 0x95, 0x43, 0xe2, 0x3d, 0xe8, 0x33, 0xd6, 0x1f, 0xd0, 0xad, 0xd4, 0xd3, 0x1b, 0x1f, 0x6f, 0x89, + 0x28, 0xa6, 0x5c, 0x90, 0x38, 0x51, 0x49, 0x78, 0x13, 0xec, 0x8f, 0x24, 0xa6, 0x3c, 0x21, 0x47, + 0x14, 0x35, 0x61, 0xf1, 0x94, 0x0c, 0xc6, 0xd4, 0xb5, 0x36, 0xac, 0xd6, 0xad, 0x40, 0x19, 0xf8, + 0x1e, 0x2c, 0xec, 0x0c, 0x58, 0x6f, 0x4a, 0xd4, 0x83, 0xf2, 0xde, 0xee, 0x94, 0x18, 0x06, 0x78, + 0xcf, 0xe2, 0x38, 0x12, 0x31, 0x1d, 0x8a, 0x29, 0x39, 0xf7, 0x61, 0x71, 0x7f, 0xc4, 0xd8, 0xf1, + 0x94, 0x70, 0x13, 0xd0, 0x07, 0x72, 0x26, 0xfb, 0x77, 0xa3, 0x73, 0x1a, 0xd0, 0xaf, 0x63, 0xca, + 0x05, 0x7e, 0x0d, 0x6b, 0x05, 0x2f, 0x4f, 0xd8, 0x90, 0x53, 0x84, 0xa1, 0x1e, 0x93, 0xb3, 0xc3, + 0xde, 0x80, 0xf5, 0x0e, 0x79, 0x74, 0xae, 0xa0, 0x16, 0x02, 0x27, 0xce, 0x73, 0x71, 0x17, 0xa0, + 0x43, 0x85, 0x06, 0x42, 0x2e, 0x54, 0xa2, 0x90, 0xbb, 0xd6, 0x46, 0xa5, 0xe5, 0x6c, 0x57, 0xdb, + 0x21, 0x69, 0xef, 0xed, 0x06, 0xd2, 0x85, 0x1e, 0x81, 0x3d, 0x34, 0x83, 0x71, 0xcb, 0x1b, 0x56, + 0xcb, 0xd9, 0xae, 0xcb, 0x78, 0x36, 0xad, 0x20, 0x8f, 0xe3, 0x27, 0xe0, 0xa4, 0xa0, 0x9a, 0x87, + 0x0f, 0x8b, 0x92, 0x83, 0xc1, 0xad, 0xc9, 0x3a, 0x49, 0x20, 0x50, 0x6e, 0x7c, 0x00, 0xf5, 0x0e, + 0x15, 0x7b, 0x21, 0x37, 0x34, 0xd6, 0xa1, 0x7a, 0x42, 0xa3, 0xfe, 0x89, 0xd0, 0x8c, 0xb5, 0x35, + 0x1f, 0x89, 0x10, 0x1a, 0x06, 0x55, 0xf3, 0x98, 0xfe, 0xba, 0x57, 0x60, 0x67, 0x4a, 0xd0, 0xc0, + 0x5e, 0x5b, 0x69, 0xa5, 0x6d, 0xb4, 0xd2, 0x3e, 0x30, 0x19, 0x41, 0x9e, 0x8c, 0x3f, 0xc3, 0x4a, + 0x87, 0x8a, 0x74, 0x65, 0xfc, 0x3f, 0x4f, 0xf1, 0x05, 0xac, 0x4e, 0x40, 0xeb, 0x37, 0x6c, 0x42, + 0x35, 0x49, 0x3d, 0x1a, 0xde, 0x96, 0xe5, 0x69, 0x4e, 0xa0, 0x03, 0xf8, 0x0b, 0xd4, 0x95, 0xcc, + 0x0c, 0x9f, 0x19, 0xf3, 0x9f, 0x8f, 0xd5, 0x0e, 0x34, 0x0c, 0xba, 0xa6, 0xf4, 0x14, 0x9c, 0xa3, + 0x4c, 0xd6, 0xa6, 0x49, 0x43, 0x02, 0xe4, 0x6a, 0x0f, 0x26, 0x53, 0xf0, 0x4f, 0x0b, 0xea, 0xdd, + 0x71, 0x6f, 0x0e, 0x8a, 0x77, 0xc1, 0xee, 0x13, 0x7e, 0x98, 0x8c, 0x22, 0x4d, 0xd1, 0x0a, 0x6a, + 0x7d, 0xc2, 0xf7, 0xa5, 0x5d, 0xe4, 0x5f, 0xf9, 0x37, 0x7f, 0xe4, 0xc2, 0x12, 0x4b, 0x44, 0xc4, + 0x86, 0xdc, 0x5d, 0x48, 0x2f, 0xcb, 0x98, 0xf8, 0x21, 0x34, 0x0c, 0xa9, 0x59, 0x82, 0xc1, 0xdf, + 0x60, 0xf9, 0x13, 0x19, 0x44, 0x21, 0x11, 0x74, 0xf6, 0xd6, 0xf3, 0x9d, 0x95, 0xa7, 0xec, 0x6c, + 0xae, 0x27, 0xe0, 0xc7, 0xb0, 0x92, 0x37, 0xcf, 0xa8, 0x2e, 0x8d, 0x28, 0x1f, 0x0f, 0xf4, 0x02, + 0x6a, 0x81, 0x31, 0xb7, 0xbf, 0x57, 0xc0, 0xde, 0x7d, 0xd7, 0xa5, 0xa3, 0x53, 0x39, 0xab, 0xb7, + 0xe0, 0x4c, 0x7c, 0x15, 0x68, 0x5d, 0x36, 0xb9, 0xf9, 0xa3, 0x78, 0x77, 0x6e, 0xf8, 0x55, 0x1f, + 0x5c, 0x42, 0x2d, 0xa8, 0x74, 0xa8, 0x40, 0xe9, 0x82, 0xf3, 0xaf, 0xc3, 0x5b, 0xce, 0xec, 0x2c, + 0xf3, 0x19, 0x54, 0xd5, 0x05, 0xa2, 0x55, 0x1d, 0xcc, 0x6f, 0xdc, 0x43, 0x93, 0xae, 0xac, 0xe4, + 0x0d, 0xd8, 0x99, 0xe6, 0x51, 0x53, 0xa7, 0x14, 0xae, 0xcb, 0xbb, 0x7d, 0xcd, 0x3b, 0xd9, 0x4e, + 0x09, 0x4e, 0xb5, 0x2b, 0xdc, 0x80, 0x6a, 0x57, 0x14, 0xae, 0x2a, 0x51, 0x2b, 0x57, 0x25, 0x05, + 0x4d, 0xaa, 0x92, 0xa2, 0x22, 0x70, 0x09, 0xbd, 0x84, 0x9a, 0x19, 0x3e, 0x5a, 0x93, 0x19, 0xd7, + 0x74, 0xe0, 0x35, 0x8b, 0x4e, 0x53, 0xb8, 0xe3, 0xfe, 0xba, 0xf4, 0xad, 0x8b, 0x4b, 0xdf, 0xfa, + 0x73, 0xe9, 0x5b, 0x3f, 0xae, 0xfc, 0xd2, 0xc5, 0x95, 0x5f, 0xfa, 0x7d, 0xe5, 0x97, 0x7a, 0xd5, + 0xf4, 0x8b, 0x79, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x5c, 0x10, 0x6e, 0xaf, 0x06, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1050,10 +1054,10 @@ type DAServiceClient interface { } type dAServiceClient struct { - cc *grpc.ClientConn + cc grpc1.ClientConn } -func NewDAServiceClient(cc *grpc.ClientConn) DAServiceClient { +func NewDAServiceClient(cc grpc1.ClientConn) DAServiceClient { return &dAServiceClient{cc} } @@ -1164,7 +1168,7 @@ func (*UnimplementedDAServiceServer) Validate(ctx context.Context, req *Validate return nil, status.Errorf(codes.Unimplemented, "method Validate not implemented") } -func RegisterDAServiceServer(s *grpc.Server, srv DAServiceServer) { +func RegisterDAServiceServer(s grpc1.Server, srv DAServiceServer) { s.RegisterService(&_DAService_serviceDesc, srv) } @@ -1679,10 +1683,17 @@ func (m *GetIdsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.Timestamp != 0 { - i = encodeVarintDa(dAtA, i, uint64(m.Timestamp)) + if m.Timestamp != nil { + { + size, err := m.Timestamp.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDa(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x10 + dAtA[i] = 0x12 } if len(m.Ids) > 0 { for iNdEx := len(m.Ids) - 1; iNdEx >= 0; iNdEx-- { @@ -2230,8 +2241,9 @@ func (m *GetIdsResponse) Size() (n int) { n += 1 + l + sovDa(uint64(l)) } } - if m.Timestamp != 0 { - n += 1 + sovDa(uint64(m.Timestamp)) + if m.Timestamp != nil { + l = m.Timestamp.Size() + n += 1 + l + sovDa(uint64(l)) } return n } @@ -3300,10 +3312,10 @@ func (m *GetIdsResponse) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 2: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) } - m.Timestamp = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDa @@ -3313,11 +3325,28 @@ func (m *GetIdsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Timestamp |= int64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthDa + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDa + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Timestamp == nil { + m.Timestamp = &types.Timestamp{} + } + if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDa(dAtA[iNdEx:]) From 49f54f543a14283a4462730d24867baa7b0e2330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Zdyba=C5=82?= Date: Wed, 18 Sep 2024 20:54:37 +0200 Subject: [PATCH 6/7] ci: fix PATH issues --- .github/workflows/lint.yml | 5 ++++- .github/workflows/proto.yml | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7b74c81..c0dccdf 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -52,6 +52,9 @@ jobs: timeout-minutes: 5 steps: - uses: actions/checkout@v4 - - run: echo "$GITHUB_WORKSPACE/go/bin" >> $GITHUB_PATH + - name: set up go + uses: actions/setup-go@v5 + with: + go-version: ${{ inputs.go-version }} - run: make proto-gen - run: make proto-lint diff --git a/.github/workflows/proto.yml b/.github/workflows/proto.yml index 4e625b6..6961ec7 100644 --- a/.github/workflows/proto.yml +++ b/.github/workflows/proto.yml @@ -8,8 +8,11 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 5 steps: - - run: echo "$GITHUB_WORKSPACE/go/bin" >> $GITHUB_PATH - uses: actions/checkout@v4 + - name: set up go + uses: actions/setup-go@v5 + with: + go-version: ${{ inputs.go-version }} - name: "Check protobuf generated code matches committed code" # yamllint disable run: | From f132b113e642f8f6ea13f8947650410cfb725cba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Zdyba=C5=82?= Date: Wed, 18 Sep 2024 22:19:48 +0200 Subject: [PATCH 7/7] ci: use Go version from go.mod --- .github/workflows/lint.yml | 2 +- .github/workflows/proto.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index c0dccdf..f2b279f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,6 +55,6 @@ jobs: - name: set up go uses: actions/setup-go@v5 with: - go-version: ${{ inputs.go-version }} + go-version-file: 'go.mod' - run: make proto-gen - run: make proto-lint diff --git a/.github/workflows/proto.yml b/.github/workflows/proto.yml index 6961ec7..d55e37f 100644 --- a/.github/workflows/proto.yml +++ b/.github/workflows/proto.yml @@ -12,7 +12,7 @@ jobs: - name: set up go uses: actions/setup-go@v5 with: - go-version: ${{ inputs.go-version }} + go-version-file: 'go.mod' - name: "Check protobuf generated code matches committed code" # yamllint disable run: |