Skip to content

Commit

Permalink
manager test fix
Browse files Browse the repository at this point in the history
  • Loading branch information
srene committed Jan 30, 2025
1 parent 3c4436b commit ce53172
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 25 deletions.
8 changes: 6 additions & 2 deletions block/manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"github.com/libp2p/go-libp2p/core/crypto"

"github.com/dymensionxyz/dymint/block"
"github.com/dymensionxyz/dymint/da/local"
"github.com/dymensionxyz/dymint/p2p"
"github.com/dymensionxyz/dymint/settlement"
"github.com/dymensionxyz/dymint/testutil"
Expand Down Expand Up @@ -207,11 +208,14 @@ func TestRetrieveDaBatchesFailed(t *testing.T) {
manager.DAClient = testutil.GetMockDALC(log.TestingLogger())
manager.Retriever = manager.DAClient.(da.BatchRetriever)

submitMetadata := local.SubmitMetaData{
Height: 1,
}
batch := &settlement.Batch{
MetaData: &settlement.BatchMetaData{
DA: &da.DASubmitMetaData{
Client: da.Mock,
Height: 1,
DAPath: submitMetadata.ToPath(),
},
},
}
Expand Down Expand Up @@ -545,7 +549,7 @@ func TestDAFetch(t *testing.T) {
{
name: "wrong DA",
manager: manager,
daMetaData: &da.DASubmitMetaData{Client: da.Celestia, Height: daResultSubmitBatch.SubmitMetaData.Height},
daMetaData: &da.DASubmitMetaData{Client: da.Celestia, DAPath: daResultSubmitBatch.SubmitMetaData.ToPath()},
batch: batch,
err: da.ErrDAMismatch,
},
Expand Down
21 changes: 14 additions & 7 deletions da/da_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,17 +99,20 @@ func doTestDALC(t *testing.T, mockDalc da.DataAvailabilityLayerClient) {
// wait a bit more than mockDaBlockTime, so dymint blocks can be "included" in mock block
time.Sleep(mockDaBlockTime + 20*time.Millisecond)

check := dalc.CheckBatchAvailability(h1)
check := dalc.CheckBatchAvailability(h1.DAPath)
// print the check result
t.Logf("CheckBatchAvailability result: %+v", check)
assert.Equal(da.StatusSuccess, check.Code)

check = dalc.CheckBatchAvailability(h2)
check = dalc.CheckBatchAvailability(h2.DAPath)
assert.Equal(da.StatusSuccess, check.Code)

h1.Height = h1.Height - 1
path := &local.DASubmitMetaData{}
daMetaData, err := path.FromPath(h1.DAPath)
require.NoError(err)
daMetaData.Height = daMetaData.Height - 1
// this height should not be used by DALC
check = dalc.CheckBatchAvailability(h1)
check = dalc.CheckBatchAvailability(h1.DAPath)
assert.Equal(da.StatusSuccess, check.Code)
}

Expand Down Expand Up @@ -174,15 +177,19 @@ func doTestRetrieve(t *testing.T, dalc da.DataAvailabilityLayerClient) {
assert.Equal(da.StatusSuccess, resp.Code, resp.Message)
time.Sleep(time.Duration(rand.Int63() % mockDaBlockTime.Milliseconds()))

countAtHeight[resp.SubmitMetaData.Height]++
batches[batch] = resp.SubmitMetaData.Height
path := &local.DASubmitMetaData{}
daMetaData, err := path.FromPath(resp.SubmitMetaData.DAPath)
require.NoError(err)

countAtHeight[daMetaData.Height]++
batches[batch] = daMetaData.Height
}

// wait a bit more than mockDaBlockTime, so mock can "produce" last blocks
time.Sleep(mockDaBlockTime + 20*time.Millisecond)

for h, cnt := range countAtHeight {
daMetaData := &da.DASubmitMetaData{
daMetaData := &local.DASubmitMetaData{
Height: h,
}
t.Log("Retrieving block, DA Height", h)
Expand Down
14 changes: 7 additions & 7 deletions da/grpc/grpc.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ func (d *DataAvailabilityLayerClient) SubmitBatch(batch *types.Batch) da.ResultS
continue
}

submitMetadata := &DASubmitMetaData{Height: resp.Result.DataLayerHeight}
submitMetadata := &SubmitMetaData{Height: resp.Result.DataLayerHeight}

return da.ResultSubmitBatch{
BaseResult: da.BaseResult{
Expand All @@ -138,7 +138,7 @@ func (d *DataAvailabilityLayerClient) SubmitBatch(batch *types.Batch) da.ResultS
func (d *DataAvailabilityLayerClient) CheckBatchAvailability(daPath string) da.ResultCheckBatch {
backoff := d.getBackoff()

submitMetadata := &DASubmitMetaData{}
submitMetadata := &SubmitMetaData{}
daMetaData, err := submitMetadata.FromPath(daPath)
if err != nil {
return da.ResultCheckBatch{BaseResult: da.BaseResult{Code: da.StatusError, Message: err.Error(), Error: err}}
Expand Down Expand Up @@ -174,7 +174,7 @@ func (d *DataAvailabilityLayerClient) GetMaxBlobSizeBytes() uint64 {
func (d *DataAvailabilityLayerClient) RetrieveBatches(daPath string) da.ResultRetrieveBatch {
backoff := d.getBackoff()

daMetaData := &DASubmitMetaData{}
daMetaData := &SubmitMetaData{}
daMetaData, err := daMetaData.FromPath(daPath)
if err != nil {
return da.ResultRetrieveBatch{BaseResult: da.BaseResult{Code: da.StatusError, Message: err.Error(), Error: err}}
Expand Down Expand Up @@ -232,25 +232,25 @@ func errorIsRetryable(err error) bool {
}

// DAMetaData contains meta data about a batch on the Data Availability Layer.
type DASubmitMetaData struct {
type SubmitMetaData struct {
// Height is the height of the block in the da layer
Height uint64
}

// ToPath converts a DAMetaData to a path.
func (d *DASubmitMetaData) ToPath() string {
func (d *SubmitMetaData) ToPath() string {
return strconv.FormatUint(d.Height, 10)
}

// FromPath parses a path to a DAMetaData.
func (d *DASubmitMetaData) FromPath(path string) (*DASubmitMetaData, error) {
func (d *SubmitMetaData) FromPath(path string) (*SubmitMetaData, error) {

height, err := strconv.ParseUint(path, 10, 64)
if err != nil {
return nil, err
}

submitData := &DASubmitMetaData{
submitData := &SubmitMetaData{
Height: height,
}

Expand Down
6 changes: 3 additions & 3 deletions da/grpc/mockserv/mockserv.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ func (m *mockImpl) SubmitBatch(_ context.Context, request *dalc.SubmitBatchReque
return nil, err
}
resp := m.da.SubmitBatch(&b)
submitMetadata := &grpcda.DASubmitMetaData{}
submitMetadata := &grpcda.SubmitMetaData{}
dapath, err := submitMetadata.FromPath(resp.SubmitMetaData.DAPath)
return &dalc.SubmitBatchResponse{
Result: &dalc.DAResponse{
Expand All @@ -60,7 +60,7 @@ func (m *mockImpl) SubmitBatch(_ context.Context, request *dalc.SubmitBatchReque

func (m *mockImpl) CheckBatchAvailability(_ context.Context, request *dalc.CheckBatchAvailabilityRequest) (*dalc.CheckBatchAvailabilityResponse, error) {

daMetaData := &grpcda.DASubmitMetaData{
daMetaData := &grpcda.SubmitMetaData{
Height: request.DataLayerHeight,
}
resp := m.da.CheckBatchAvailability(daMetaData.ToPath())
Expand All @@ -73,7 +73,7 @@ func (m *mockImpl) CheckBatchAvailability(_ context.Context, request *dalc.Check
}

func (m *mockImpl) RetrieveBatches(context context.Context, request *dalc.RetrieveBatchesRequest) (*dalc.RetrieveBatchesResponse, error) {
daMetaData := &grpcda.DASubmitMetaData{
daMetaData := &grpcda.SubmitMetaData{
Height: request.DataLayerHeight,
}
resp := m.da.RetrieveBatches(daMetaData.ToPath())
Expand Down
12 changes: 6 additions & 6 deletions da/local/local.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ func (m *DataAvailabilityLayerClient) SubmitBatch(batch *types.Batch) da.ResultS

m.daHeight.Store(daHeight + 1) // guaranteed no ABA problem as submit batch is only called when the object is locked

submitMetadata := &DASubmitMetaData{Height: daHeight}
submitMetadata := &SubmitMetaData{Height: daHeight}

return da.ResultSubmitBatch{
BaseResult: da.BaseResult{
Expand All @@ -129,7 +129,7 @@ func (m *DataAvailabilityLayerClient) CheckBatchAvailability(daPath string) da.R
// RetrieveBatches returns block at given height from data availability layer.
func (m *DataAvailabilityLayerClient) RetrieveBatches(daPath string) da.ResultRetrieveBatch {

daMetaData := &DASubmitMetaData{}
daMetaData := &SubmitMetaData{}
daMetaData, err := daMetaData.FromPath(daPath)
if err != nil {
return da.ResultRetrieveBatch{BaseResult: da.BaseResult{Code: da.StatusError, Message: "wrong da path", Error: err}}
Expand Down Expand Up @@ -193,25 +193,25 @@ func (m *DataAvailabilityLayerClient) GetSignerBalance() (da.Balance, error) {
}

// DAMetaData contains meta data about a batch on the Data Availability Layer.
type DASubmitMetaData struct {
type SubmitMetaData struct {
// Height is the height of the block in the da layer
Height uint64
}

// ToPath converts a DAMetaData to a path.
func (d *DASubmitMetaData) ToPath() string {
func (d *SubmitMetaData) ToPath() string {
return strconv.FormatUint(d.Height, 10)
}

// FromPath parses a path to a DAMetaData.
func (d *DASubmitMetaData) FromPath(path string) (*DASubmitMetaData, error) {
func (d *SubmitMetaData) FromPath(path string) (*SubmitMetaData, error) {

height, err := strconv.ParseUint(path, 10, 64)
if err != nil {
return nil, err
}

submitData := &DASubmitMetaData{
submitData := &SubmitMetaData{
Height: height,
}

Expand Down

0 comments on commit ce53172

Please sign in to comment.