Skip to content

Commit 64eb248

Browse files
committed
Make Prover.NewLightDB cancellable
Signed-off-by: Takeshi Arabiki <takeshi.arabiki@datachain.jp>
1 parent 526ab84 commit 64eb248

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

chains/tendermint/cmd/light.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func initLightCmd(ctx *config.Context) *cobra.Command {
4343
chain := c.Chain.(*tendermint.Chain)
4444
prover := c.Prover.(*tendermint.Prover)
4545

46-
db, df, err := prover.NewLightDB()
46+
db, df, err := prover.NewLightDB(cmd.Context())
4747
if err != nil {
4848
return err
4949
}
@@ -98,7 +98,7 @@ func updateLightCmd(ctx *config.Context) *cobra.Command {
9898
}
9999
prover := c.Prover.(*tendermint.Prover)
100100

101-
bh, err := prover.GetLatestLightHeader()
101+
bh, err := prover.GetLatestLightHeader(cmd.Context())
102102
if err != nil {
103103
return err
104104
}
@@ -136,7 +136,7 @@ func lightHeaderCmd(ctx *config.Context) *cobra.Command {
136136

137137
switch len(args) {
138138
case 1:
139-
header, err = prover.GetLatestLightHeader()
139+
header, err = prover.GetLatestLightHeader(cmd.Context())
140140
if err != nil {
141141
return err
142142
}
@@ -148,7 +148,7 @@ func lightHeaderCmd(ctx *config.Context) *cobra.Command {
148148
}
149149

150150
if height == 0 {
151-
height, err = prover.GetLatestLightHeight()
151+
height, err = prover.GetLatestLightHeight(cmd.Context())
152152
if err != nil {
153153
return err
154154
}
@@ -158,7 +158,7 @@ func lightHeaderCmd(ctx *config.Context) *cobra.Command {
158158
}
159159
}
160160

161-
header, err = prover.GetLightSignedHeaderAtHeight(height)
161+
header, err = prover.GetLightSignedHeaderAtHeight(cmd.Context(), height)
162162
if err != nil {
163163
return err
164164
}

chains/tendermint/light.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,15 @@ func (pr *Prover) LightHTTP() lightp.Provider {
5555
return cl
5656
}
5757

58-
func (pr *Prover) NewLightDB() (db *dbm.GoLevelDB, df func(), err error) {
58+
func (pr *Prover) NewLightDB(ctx context.Context) (db *dbm.GoLevelDB, df func(), err error) {
5959
c := pr.chain
6060
if err := retry.Do(func() error {
6161
db, err = dbm.NewGoLevelDB(c.config.ChainId, lightDir(c.HomePath))
6262
if err != nil {
6363
return fmt.Errorf("can't open light client database: %w", err)
6464
}
6565
return nil
66-
}, rtyAtt, rtyDel, rtyErr); err != nil {
66+
}, rtyAtt, rtyDel, rtyErr, retry.Context(ctx)); err != nil {
6767
return nil, nil, err
6868
}
6969

@@ -150,14 +150,14 @@ func (pr *Prover) LightClientWithoutTrust(ctx context.Context, db dbm.DB) (*ligh
150150
}
151151

152152
// GetLatestLightHeader returns the header to be used for client creation
153-
func (pr *Prover) GetLatestLightHeader() (*tmclient.Header, error) {
154-
return pr.GetLightSignedHeaderAtHeight(0)
153+
func (pr *Prover) GetLatestLightHeader(ctx context.Context) (*tmclient.Header, error) {
154+
return pr.GetLightSignedHeaderAtHeight(ctx, 0)
155155
}
156156

157157
// GetLightSignedHeaderAtHeight returns a signed header at a particular height.
158-
func (pr *Prover) GetLightSignedHeaderAtHeight(height int64) (*tmclient.Header, error) {
158+
func (pr *Prover) GetLightSignedHeaderAtHeight(ctx context.Context, height int64) (*tmclient.Header, error) {
159159
// create database connection
160-
db, df, err := pr.NewLightDB()
160+
db, df, err := pr.NewLightDB(ctx)
161161
if err != nil {
162162
return nil, err
163163
}

chains/tendermint/prover.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,8 @@ func (pr *Prover) CheckRefreshRequired(ctx context.Context, counterparty core.Ch
183183
/* Local LightClient implementation */
184184

185185
// GetLatestLightHeight uses the CLI utilities to pull the latest height from a given chain
186-
func (pr *Prover) GetLatestLightHeight() (int64, error) {
187-
db, df, err := pr.NewLightDB()
186+
func (pr *Prover) GetLatestLightHeight(ctx context.Context) (int64, error) {
187+
db, df, err := pr.NewLightDB(ctx)
188188
if err != nil {
189189
return -1, err
190190
}
@@ -200,7 +200,7 @@ func (pr *Prover) GetLatestLightHeight() (int64, error) {
200200

201201
func (pr *Prover) UpdateLightClient(ctx context.Context, height int64) (*tmclient.Header, error) {
202202
// create database connection
203-
db, df, err := pr.NewLightDB()
203+
db, df, err := pr.NewLightDB(ctx)
204204
if err != nil {
205205
return nil, lightError(err)
206206
}

0 commit comments

Comments
 (0)