Skip to content

Commit

Permalink
chore(nitro): celestia, refactor readClient definition
Browse files Browse the repository at this point in the history
  • Loading branch information
emilianobonassi committed Jul 24, 2024
1 parent c5b9429 commit 8b5acaa
Showing 1 changed file with 8 additions and 19 deletions.
27 changes: 8 additions & 19 deletions das/celestia/celestia.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ func NewCelestiaDA(cfg *DAConfig, ethClient *ethclient.Client) (*CelestiaDA, err
if err != nil {
return nil, err
}
} else {
readClient = daClient
}

if cfg.NamespaceId == "" {
Expand Down Expand Up @@ -361,19 +363,13 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error)

func (c *CelestiaDA) Read(ctx context.Context, blobPointer *types.BlobPointer) ([]byte, *types.SquareData, error) {
// Wait until our client is synced
var celestiaClient *openrpc.Client
if c.ReadClient != nil {
celestiaClient = c.ReadClient
} else {
celestiaClient = c.Client
}
err := celestiaClient.Header.SyncWait(ctx)
err := c.ReadClient.Header.SyncWait(ctx)
if err != nil {
log.Error("trouble with client sync", "err", err)
return nil, nil, err
}

header, err := celestiaClient.Header.GetByHeight(ctx, blobPointer.BlockHeight)
header, err := c.ReadClient.Header.GetByHeight(ctx, blobPointer.BlockHeight)
if err != nil {
log.Error("could not fetch header", "err", err)
return nil, nil, err
Expand All @@ -385,7 +381,7 @@ func (c *CelestiaDA) Read(ctx context.Context, blobPointer *types.BlobPointer) (
return c.returnErrorHelper(fmt.Errorf("Data Root mismatch, header.DataHash=%v, blobPointer.DataRoot=%v", header.DataHash, hex.EncodeToString(blobPointer.DataRoot[:])))
}

proofs, err := celestiaClient.Blob.GetProof(ctx, blobPointer.BlockHeight, *c.Namespace, blobPointer.TxCommitment[:])
proofs, err := c.ReadClient.Blob.GetProof(ctx, blobPointer.BlockHeight, *c.Namespace, blobPointer.TxCommitment[:])
if err != nil {
return c.returnErrorHelper(fmt.Errorf("Error retrieving proof, err=%v", err))
}
Expand All @@ -399,14 +395,14 @@ func (c *CelestiaDA) Read(ctx context.Context, blobPointer *types.BlobPointer) (
return c.returnErrorHelper(fmt.Errorf("Share length mismatch, sharesLength=%v, blobPointer.SharesLength=%v", sharesLength, blobPointer.SharesLength))
}

blob, err := celestiaClient.Blob.Get(ctx, blobPointer.BlockHeight, *c.Namespace, blobPointer.TxCommitment[:])
blob, err := c.ReadClient.Blob.Get(ctx, blobPointer.BlockHeight, *c.Namespace, blobPointer.TxCommitment[:])
if err != nil {
// return an empty batch of data because we could not find the blob from the sequencer message
// we eventually manually reorg, setting ReorgOnReadFailure=true
return c.returnErrorHelper(fmt.Errorf("Failed to get blob, height=%v, commitment=%v, err=%v", blobPointer.BlockHeight, hex.EncodeToString(blobPointer.TxCommitment[:]), err))
}

eds, err := celestiaClient.Share.GetEDS(ctx, header)
eds, err := c.ReadClient.Share.GetEDS(ctx, header)
if err != nil {
return c.returnErrorHelper(fmt.Errorf("Failed to get EDS, height=%v, err=%v", blobPointer.BlockHeight, err))
}
Expand Down Expand Up @@ -477,15 +473,8 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) {
return nil, nil
}

var celestiaClient *openrpc.Client
if c.ReadClient != nil {
celestiaClient = c.ReadClient
} else {
celestiaClient = c.Client
}

// Get data root from a celestia node
header, err := celestiaClient.Header.GetByHeight(ctx, blobPointer.BlockHeight)
header, err := c.ReadClient.Header.GetByHeight(ctx, blobPointer.BlockHeight)
if err != nil {
celestiaValidationFailureCounter.Inc(1)
log.Warn("Header retrieval error", "err", err)
Expand Down

0 comments on commit 8b5acaa

Please sign in to comment.