@@ -27,13 +27,15 @@ type DataAvailabilityLayerClient struct {
2727var _ da.DataAvailabilityLayerClient = & DataAvailabilityLayerClient {}
2828var _ da.BlockRetriever = & DataAvailabilityLayerClient {}
2929
30+ // Config stores Celestia DALC configuration parameters.
3031type Config struct {
3132 BaseURL string `json:"base_url"`
3233 Timeout time.Duration `json:"timeout"`
3334 GasLimit uint64 `json:"gas_limit"`
3435 NamespaceID [8 ]byte `json:"namespace_id"`
3536}
3637
38+ // Init initializes DataAvailabilityLayerClient instance.
3739func (c * DataAvailabilityLayerClient ) Init (config []byte , kvStore store.KVStore , logger log.Logger ) error {
3840 c .logger = logger
3941
@@ -44,23 +46,26 @@ func (c *DataAvailabilityLayerClient) Init(config []byte, kvStore store.KVStore,
4446 return nil
4547}
4648
49+ // Start prepares DataAvailabilityLayerClient to work.
4750func (c * DataAvailabilityLayerClient ) Start () error {
4851 c .logger .Info ("starting Celestia Data Availability Layer Client" , "baseURL" , c .config .BaseURL )
4952 var err error
5053 c .client , err = cnc .NewClient (c .config .BaseURL , cnc .WithTimeout (c .config .Timeout ))
5154 return err
5255}
5356
57+ // Stop stops DataAvailabilityLayerClient.
5458func (c * DataAvailabilityLayerClient ) Stop () error {
5559 c .logger .Info ("stopping Celestia Data Availability Layer Client" )
5660 return nil
5761}
5862
63+ // SubmitBlock submits a block to DA layer.
5964func (c * DataAvailabilityLayerClient ) SubmitBlock (block * types.Block ) da.ResultSubmitBlock {
6065 blob , err := block .MarshalBinary ()
6166 if err != nil {
6267 return da.ResultSubmitBlock {
63- DAResult : da.DAResult {
68+ BaseResult : da.BaseResult {
6469 Code : da .StatusError ,
6570 Message : err .Error (),
6671 },
@@ -71,7 +76,7 @@ func (c *DataAvailabilityLayerClient) SubmitBlock(block *types.Block) da.ResultS
7176
7277 if err != nil {
7378 return da.ResultSubmitBlock {
74- DAResult : da.DAResult {
79+ BaseResult : da.BaseResult {
7580 Code : da .StatusError ,
7681 Message : err .Error (),
7782 },
@@ -80,47 +85,49 @@ func (c *DataAvailabilityLayerClient) SubmitBlock(block *types.Block) da.ResultS
8085
8186 if txResponse .Code != 0 {
8287 return da.ResultSubmitBlock {
83- DAResult : da.DAResult {
88+ BaseResult : da.BaseResult {
8489 Code : da .StatusError ,
8590 Message : fmt .Sprintf ("Codespace: '%s', Code: %d, Message: %s" , txResponse .Codespace , txResponse .Code , txResponse .RawLog ),
8691 },
8792 }
8893 }
8994
9095 return da.ResultSubmitBlock {
91- DAResult : da.DAResult {
96+ BaseResult : da.BaseResult {
9297 Code : da .StatusSuccess ,
9398 Message : "tx hash: " + txResponse .TxHash ,
9499 DAHeight : uint64 (txResponse .Height ),
95100 },
96101 }
97102}
98103
104+ // CheckBlockAvailability queries DA layer to check data availability of block at given height.
99105func (c * DataAvailabilityLayerClient ) CheckBlockAvailability (dataLayerHeight uint64 ) da.ResultCheckBlock {
100106 shares , err := c .client .NamespacedShares (context .TODO (), c .config .NamespaceID , dataLayerHeight )
101107 if err != nil {
102108 return da.ResultCheckBlock {
103- DAResult : da.DAResult {
109+ BaseResult : da.BaseResult {
104110 Code : da .StatusError ,
105111 Message : err .Error (),
106112 },
107113 }
108114 }
109115
110116 return da.ResultCheckBlock {
111- DAResult : da.DAResult {
117+ BaseResult : da.BaseResult {
112118 Code : da .StatusSuccess ,
113119 DAHeight : dataLayerHeight ,
114120 },
115121 DataAvailable : len (shares ) > 0 ,
116122 }
117123}
118124
125+ // RetrieveBlocks gets a batch of blocks from DA layer.
119126func (c * DataAvailabilityLayerClient ) RetrieveBlocks (dataLayerHeight uint64 ) da.ResultRetrieveBlocks {
120127 data , err := c .client .NamespacedData (context .TODO (), c .config .NamespaceID , dataLayerHeight )
121128 if err != nil {
122129 return da.ResultRetrieveBlocks {
123- DAResult : da.DAResult {
130+ BaseResult : da.BaseResult {
124131 Code : da .StatusError ,
125132 Message : err .Error (),
126133 },
@@ -139,7 +146,7 @@ func (c *DataAvailabilityLayerClient) RetrieveBlocks(dataLayerHeight uint64) da.
139146 err := blocks [i ].FromProto (& block )
140147 if err != nil {
141148 return da.ResultRetrieveBlocks {
142- DAResult : da.DAResult {
149+ BaseResult : da.BaseResult {
143150 Code : da .StatusError ,
144151 Message : err .Error (),
145152 },
@@ -148,7 +155,7 @@ func (c *DataAvailabilityLayerClient) RetrieveBlocks(dataLayerHeight uint64) da.
148155 }
149156
150157 return da.ResultRetrieveBlocks {
151- DAResult : da.DAResult {
158+ BaseResult : da.BaseResult {
152159 Code : da .StatusSuccess ,
153160 DAHeight : dataLayerHeight ,
154161 },
0 commit comments