Skip to content

Commit 7c421bf

Browse files
DimitrisJimmergify[bot]
authored andcommitted
Use global wasm VM instead of keeping an additional reference in keeper. (#5146)
(cherry picked from commit 595e1a9) # Conflicts: # modules/light-clients/08-wasm/keeper/genesis.go # modules/light-clients/08-wasm/keeper/keeper.go # modules/light-clients/08-wasm/keeper/snapshotter.go
1 parent 8ce1911 commit 7c421bf

File tree

5 files changed

+23
-11
lines changed

5 files changed

+23
-11
lines changed

modules/light-clients/08-wasm/keeper/genesis.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55

66
sdk "github.com/cosmos/cosmos-sdk/types"
77

8+
"github.com/cosmos/ibc-go/modules/light-clients/08-wasm/internal/ibcwasm"
89
"github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types"
910
)
1011

@@ -22,7 +23,7 @@ func (k Keeper) InitGenesis(ctx sdk.Context, gs types.GenesisState) error {
2223

2324
// ExportGenesis returns the 08-wasm module's exported genesis. This includes the code
2425
// for all contracts previously stored.
25-
func (k Keeper) ExportGenesis(ctx sdk.Context) types.GenesisState {
26+
func (Keeper) ExportGenesis(ctx sdk.Context) types.GenesisState {
2627
checksums, err := types.GetAllChecksums(ctx)
2728
if err != nil {
2829
panic(err)
@@ -31,7 +32,11 @@ func (k Keeper) ExportGenesis(ctx sdk.Context) types.GenesisState {
3132
// Grab code from wasmVM and add to genesis state.
3233
var genesisState types.GenesisState
3334
for _, checksum := range checksums {
35+
<<<<<<< HEAD
3436
code, err := k.wasmVM.GetCode(wasmvmtypes.Checksum(checksum))
37+
=======
38+
code, err := ibcwasm.GetVM().GetCode(checksum)
39+
>>>>>>> 595e1a93 (Use global wasm VM instead of keeping an additional reference in keeper. (#5146))
3540
if err != nil {
3641
panic(err)
3742
}

modules/light-clients/08-wasm/keeper/grpc_query.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
var _ types.QueryServer = (*Keeper)(nil)
2121

2222
// Code implements the Query/Code gRPC method
23-
func (k Keeper) Code(goCtx context.Context, req *types.QueryCodeRequest) (*types.QueryCodeResponse, error) {
23+
func (Keeper) Code(goCtx context.Context, req *types.QueryCodeRequest) (*types.QueryCodeResponse, error) {
2424
if req == nil {
2525
return nil, status.Error(codes.InvalidArgument, "empty request")
2626
}
@@ -35,7 +35,7 @@ func (k Keeper) Code(goCtx context.Context, req *types.QueryCodeRequest) (*types
3535
return nil, status.Error(codes.NotFound, errorsmod.Wrap(types.ErrWasmChecksumNotFound, req.Checksum).Error())
3636
}
3737

38-
code, err := k.wasmVM.GetCode(checksum)
38+
code, err := ibcwasm.GetVM().GetCode(checksum)
3939
if err != nil {
4040
return nil, status.Error(codes.NotFound, errorsmod.Wrap(types.ErrWasmChecksumNotFound, req.Checksum).Error())
4141
}

modules/light-clients/08-wasm/keeper/keeper.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ type Keeper struct {
2626
// implements gRPC QueryServer interface
2727
types.QueryServer
2828

29-
cdc codec.BinaryCodec
30-
wasmVM ibcwasm.WasmEngine
29+
cdc codec.BinaryCodec
3130

3231
clientKeeper types.ClientKeeper
3332

@@ -65,7 +64,6 @@ func NewKeeperWithVM(
6564

6665
return Keeper{
6766
cdc: cdc,
68-
wasmVM: vm,
6967
clientKeeper: clientKeeper,
7068
authority: authority,
7169
}
@@ -94,12 +92,16 @@ func (k Keeper) GetAuthority() string {
9492
return k.authority
9593
}
9694

95+
<<<<<<< HEAD
9796
func generateWasmChecksum(code []byte) []byte {
9897
hash := sha256.Sum256(code)
9998
return hash[:]
10099
}
101100

102101
func (k Keeper) storeWasmCode(ctx sdk.Context, code []byte) ([]byte, error) {
102+
=======
103+
func (Keeper) storeWasmCode(ctx sdk.Context, code []byte) ([]byte, error) {
104+
>>>>>>> 595e1a93 (Use global wasm VM instead of keeping an additional reference in keeper. (#5146))
103105
var err error
104106
if types.IsGzip(code) {
105107
ctx.GasMeter().ConsumeGas(types.VMGasRegister.UncompressCosts(len(code)), "Uncompress gzip bytecode")
@@ -122,7 +124,7 @@ func (k Keeper) storeWasmCode(ctx sdk.Context, code []byte) ([]byte, error) {
122124

123125
// create the code in the vm
124126
ctx.GasMeter().ConsumeGas(types.VMGasRegister.CompileCosts(len(code)), "Compiling wasm bytecode")
125-
vmChecksum, err := k.wasmVM.StoreCode(code)
127+
vmChecksum, err := ibcwasm.GetVM().StoreCode(code)
126128
if err != nil {
127129
return nil, errorsmod.Wrap(err, "failed to store contract")
128130
}
@@ -133,7 +135,7 @@ func (k Keeper) storeWasmCode(ctx sdk.Context, code []byte) ([]byte, error) {
133135
}
134136

135137
// pin the code to the vm in-memory cache
136-
if err := k.wasmVM.Pin(vmChecksum); err != nil {
138+
if err := ibcwasm.GetVM().Pin(vmChecksum); err != nil {
137139
return nil, errorsmod.Wrapf(err, "failed to pin contract with checksum (%s) to vm cache", hex.EncodeToString(vmChecksum))
138140
}
139141

modules/light-clients/08-wasm/keeper/msg_server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func (k Keeper) RemoveChecksum(goCtx context.Context, msg *types.MsgRemoveChecks
5050
}
5151

5252
// unpin the code from the vm in-memory cache
53-
if err := k.wasmVM.Unpin(msg.Checksum); err != nil {
53+
if err := ibcwasm.GetVM().Unpin(msg.Checksum); err != nil {
5454
return nil, errorsmod.Wrapf(err, "failed to unpin contract with checksum (%s) from vm cache", hex.EncodeToString(msg.Checksum))
5555
}
5656

modules/light-clients/08-wasm/keeper/snapshotter.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414

1515
tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
1616

17+
"github.com/cosmos/ibc-go/modules/light-clients/08-wasm/internal/ibcwasm"
1718
"github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types"
1819
)
1920

@@ -74,7 +75,11 @@ func (ws *WasmSnapshotter) SnapshotExtension(height uint64, payloadWriter snapsh
7475
}
7576

7677
for _, checksum := range checksums {
78+
<<<<<<< HEAD
7779
wasmCode, err := ws.keeper.wasmVM.GetCode(wasmvmtypes.Checksum(checksum))
80+
=======
81+
wasmCode, err := ibcwasm.GetVM().GetCode(checksum)
82+
>>>>>>> 595e1a93 (Use global wasm VM instead of keeping an additional reference in keeper. (#5146))
7883
if err != nil {
7984
return err
8085
}
@@ -113,12 +118,12 @@ func restoreV1(ctx sdk.Context, k *Keeper, compressedCode []byte) error {
113118
return errorsmod.Wrap(err, "failed to uncompress wasm code")
114119
}
115120

116-
checksum, err := k.wasmVM.StoreCode(wasmCode)
121+
checksum, err := ibcwasm.GetVM().StoreCode(wasmCode)
117122
if err != nil {
118123
return errorsmod.Wrap(err, "failed to store wasm code")
119124
}
120125

121-
if err := k.wasmVM.Pin(checksum); err != nil {
126+
if err := ibcwasm.GetVM().Pin(checksum); err != nil {
122127
return errorsmod.Wrapf(err, "failed to pin checksum: %s to in-memory cache", hex.EncodeToString(checksum))
123128
}
124129

0 commit comments

Comments
 (0)