mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-10-31 21:47:27 +00:00 
			
		
		
		
	feat: add 08-wasm module
Signed-off-by: aeryz <abdullaheryz@protonmail.com>
This commit is contained in:
		
							parent
							
								
									3709a23632
								
							
						
					
					
						commit
						a8c86f7f8b
					
				
							
								
								
									
										10
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Dockerfile
									
									
									
									
									
								
							| @ -19,6 +19,15 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ | ||||
|     --mount=type=cache,target=/go/pkg/mod \ | ||||
|     go version && go mod download | ||||
| 
 | ||||
| # Cosmwasm - Download correct libwasmvm version | ||||
| RUN ARCH=$(uname -m) && WASMVM_VERSION=$(go list -m github.com/CosmWasm/wasmvm | sed 's/.* //') && \ | ||||
|     wget https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/libwasmvm_muslc.$ARCH.a \ | ||||
|     -O /lib/libwasmvm.$ARCH.a && \ | ||||
|     # verify checksum | ||||
|     wget https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/checksums.txt -O /tmp/checksums.txt && \ | ||||
|     sha256sum /lib/libwasmvm.$ARCH.a | grep $(cat /tmp/checksums.txt | grep libwasmvm_muslc.$ARCH | cut -d ' ' -f 1) | ||||
| 
 | ||||
| 
 | ||||
| # Add source files | ||||
| COPY . . | ||||
| 
 | ||||
| @ -27,6 +36,7 @@ COPY . . | ||||
| # Mount go build and mod caches as container caches, persisted between builder invocations | ||||
| RUN --mount=type=cache,target=/root/.cache/go-build \ | ||||
|     --mount=type=cache,target=/go/pkg/mod \ | ||||
|     LINK_STATICALLY=true \ | ||||
|     make install | ||||
| 
 | ||||
| FROM alpine:3.15 | ||||
|  | ||||
							
								
								
									
										3
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								Makefile
									
									
									
									
									
								
							| @ -174,6 +174,9 @@ endif | ||||
| ifeq (,$(findstring nostrip,$(COSMOS_BUILD_OPTIONS))) | ||||
|   ldflags += -w -s | ||||
| endif | ||||
| ifeq ($(LINK_STATICALLY),true) | ||||
| 	ldflags += -linkmode=external -extldflags "-Wl,-z,muldefs -static" | ||||
| endif | ||||
| ldflags += $(LDFLAGS) | ||||
| ldflags := $(strip $(ldflags)) | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										33
									
								
								app/app.go
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								app/app.go
									
									
									
									
									
								
							| @ -80,6 +80,9 @@ import ( | ||||
| 	"github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward" | ||||
| 	packetforwardkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/keeper" | ||||
| 	packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types" | ||||
| 	ibcwasm "github.com/cosmos/ibc-go/modules/light-clients/08-wasm" | ||||
| 	ibcwasmkeeper "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/keeper" | ||||
| 	ibcwasmtypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" | ||||
| 	transfer "github.com/cosmos/ibc-go/v7/modules/apps/transfer" | ||||
| 	ibctransferkeeper "github.com/cosmos/ibc-go/v7/modules/apps/transfer/keeper" | ||||
| 	ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" | ||||
| @ -90,6 +93,7 @@ import ( | ||||
| 	ibcporttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" | ||||
| 	ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" | ||||
| 	ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" | ||||
| 
 | ||||
| 	solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine" | ||||
| 	ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" | ||||
| 	evmante "github.com/evmos/ethermint/app/ante" | ||||
| @ -178,6 +182,7 @@ var ( | ||||
| 		council.AppModuleBasic{}, | ||||
| 		dasigners.AppModuleBasic{}, | ||||
| 		consensus.AppModuleBasic{}, | ||||
| 		ibcwasm.AppModuleBasic{}, | ||||
| 	) | ||||
| 
 | ||||
| 	// module account permissions
 | ||||
| @ -246,6 +251,7 @@ type App struct { | ||||
| 	authzKeeper           authzkeeper.Keeper | ||||
| 	crisisKeeper          crisiskeeper.Keeper | ||||
| 	slashingKeeper        slashingkeeper.Keeper | ||||
| 	ibcWasmClientKeeper   ibcwasmkeeper.Keeper | ||||
| 	ibcKeeper             *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
 | ||||
| 	packetForwardKeeper   *packetforwardkeeper.Keeper | ||||
| 	evmKeeper             *evmkeeper.Keeper | ||||
| @ -314,6 +320,7 @@ func NewApp( | ||||
| 		dasignerstypes.StoreKey, | ||||
| 		vestingtypes.StoreKey, | ||||
| 		consensusparamtypes.StoreKey, crisistypes.StoreKey, | ||||
| 		ibcwasmtypes.StoreKey, | ||||
| 	) | ||||
| 	tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey, evmtypes.TransientKey, feemarkettypes.TransientKey) | ||||
| 	memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey) | ||||
| @ -446,6 +453,19 @@ func NewApp( | ||||
| 		scopedIBCKeeper, | ||||
| 	) | ||||
| 
 | ||||
| 	app.ibcWasmClientKeeper = ibcwasmkeeper.NewKeeperWithConfig( | ||||
| 		appCodec, | ||||
| 		keys[ibcwasmtypes.StoreKey], | ||||
| 		app.ibcKeeper.ClientKeeper, | ||||
| 		authtypes.NewModuleAddress(govtypes.ModuleName).String(), | ||||
| 		ibcwasmtypes.WasmConfig{ | ||||
| 			DataDir:               "ibc_08-wasm", | ||||
| 			SupportedCapabilities: "iterator,stargate", | ||||
| 			ContractDebugMode:     false, | ||||
| 		}, | ||||
| 		app.GRPCQueryRouter(), | ||||
| 	) | ||||
| 
 | ||||
| 	// Create Ethermint keepers
 | ||||
| 	app.feeMarketKeeper = feemarketkeeper.NewKeeper( | ||||
| 		appCodec, | ||||
| @ -650,6 +670,7 @@ func NewApp( | ||||
| 		evmutil.NewAppModule(app.evmutilKeeper, app.bankKeeper, app.accountKeeper), | ||||
| 		// nil InflationCalculationFn, use SDK's default inflation function
 | ||||
| 		mint.NewAppModule(appCodec, app.mintKeeper, app.accountKeeper, nil, mintSubspace), | ||||
| 		ibcwasm.NewAppModule(app.ibcWasmClientKeeper), | ||||
| 	) | ||||
| 
 | ||||
| 	// Warning: Some begin blockers must run before others. Ensure the dependencies are understood before modifying this list.
 | ||||
| @ -693,6 +714,7 @@ func NewApp( | ||||
| 		evmutiltypes.ModuleName, | ||||
| 		consensusparamtypes.ModuleName, | ||||
| 		packetforwardtypes.ModuleName, | ||||
| 		ibcwasmtypes.ModuleName, | ||||
| 	) | ||||
| 
 | ||||
| 	// Warning: Some end blockers must run before others. Ensure the dependencies are understood before modifying this list.
 | ||||
| @ -726,6 +748,7 @@ func NewApp( | ||||
| 		minttypes.ModuleName, | ||||
| 		consensusparamtypes.ModuleName, | ||||
| 		packetforwardtypes.ModuleName, | ||||
| 		ibcwasmtypes.ModuleName, | ||||
| 	) | ||||
| 
 | ||||
| 	// Warning: Some init genesis methods must run before others. Ensure the dependencies are understood before modifying this list
 | ||||
| @ -758,6 +781,7 @@ func NewApp( | ||||
| 		consensusparamtypes.ModuleName, | ||||
| 		packetforwardtypes.ModuleName, | ||||
| 		crisistypes.ModuleName, // runs the invariants at genesis, should run after other modules
 | ||||
| 		ibcwasmtypes.ModuleName, | ||||
| 	) | ||||
| 
 | ||||
| 	app.mm.RegisterInvariants(&app.crisisKeeper) | ||||
| @ -832,6 +856,15 @@ func NewApp( | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if manager := app.SnapshotManager(); manager != nil { | ||||
| 		err := manager.RegisterExtensions( | ||||
| 			ibcwasmkeeper.NewWasmSnapshotter(app.CommitMultiStore(), &app.ibcWasmClientKeeper), | ||||
| 		) | ||||
| 		if err != nil { | ||||
| 			panic(fmt.Errorf("failed to register snapshot extension: %s", err)) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	app.ScopedIBCKeeper = scopedIBCKeeper | ||||
| 	app.ScopedTransferKeeper = scopedTransferKeeper | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										3
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								go.mod
									
									
									
									
									
								
							| @ -16,6 +16,7 @@ require ( | ||||
| 	github.com/cosmos/gogoproto v1.4.10 | ||||
| 	github.com/cosmos/iavl v0.20.1 | ||||
| 	github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.3 | ||||
| 	github.com/cosmos/ibc-go/modules/light-clients/08-wasm v0.1.1-ibc-go-v7.3-wasmvm-v1.5 | ||||
| 	github.com/cosmos/ibc-go/v7 v7.4.0 | ||||
| 	github.com/ethereum/go-ethereum v1.10.26 | ||||
| 	github.com/evmos/ethermint v0.21.0 | ||||
| @ -57,6 +58,8 @@ require ( | ||||
| 	github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect | ||||
| 	github.com/99designs/keyring v1.2.1 // indirect | ||||
| 	github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect | ||||
| 	github.com/CosmWasm/wasmvm v1.5.2 // indirect | ||||
| 	github.com/DataDog/zstd v1.5.2 // indirect | ||||
| 	github.com/StackExchange/wmi v1.2.1 // indirect | ||||
| 	github.com/VictoriaMetrics/fastcache v1.6.0 // indirect | ||||
| 	github.com/armon/go-metrics v0.4.1 // indirect | ||||
|  | ||||
							
								
								
									
										4
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								go.sum
									
									
									
									
									
								
							| @ -224,6 +224,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 | ||||
| github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= | ||||
| github.com/ChainSafe/go-schnorrkel v1.0.0 h1:3aDA67lAykLaG1y3AOjs88dMxC88PgUuHRrLeDnvGIM= | ||||
| github.com/ChainSafe/go-schnorrkel v1.0.0/go.mod h1:dpzHYVxLZcp8pjlV+O+UR8K0Hp/z7vcchBSbMBEhCw4= | ||||
| github.com/CosmWasm/wasmvm v1.5.2 h1:+pKB1Mz9GZVt1vadxB+EDdD1FOz3dMNjIKq/58/lrag= | ||||
| github.com/CosmWasm/wasmvm v1.5.2/go.mod h1:Q0bSEtlktzh7W2hhEaifrFp1Erx11ckQZmjq8FLCyys= | ||||
| github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= | ||||
| github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= | ||||
| github.com/DataDog/zstd v1.5.0/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= | ||||
| @ -425,6 +427,8 @@ github.com/cosmos/iavl v0.20.1 h1:rM1kqeG3/HBT85vsZdoSNsehciqUQPWrR4BYmqE2+zg= | ||||
| github.com/cosmos/iavl v0.20.1/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= | ||||
| github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.3 h1:MZGDMETv72suFpTAD6VPGqSIm1FJcChtk2HmVh9D+Bo= | ||||
| github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.3/go.mod h1:UvDmcGIWJPIytq+Q78/ff5NTOsuX/7IrNgEugTW5i0s= | ||||
| github.com/cosmos/ibc-go/modules/light-clients/08-wasm v0.1.1-ibc-go-v7.3-wasmvm-v1.5 h1:sMoHjep+KInjMrppNCEutMVm1p8nI9WhKCuMQ+EcUHw= | ||||
| github.com/cosmos/ibc-go/modules/light-clients/08-wasm v0.1.1-ibc-go-v7.3-wasmvm-v1.5/go.mod h1:VR2Hg2i/X1bafbmmNsV2Khwsg0PzNeuWoVKmSN5dAwo= | ||||
| github.com/cosmos/ibc-go/v7 v7.4.0 h1:8FqYMptvksgMvlbN4UW9jFxTXzsPyfAzEZurujXac8M= | ||||
| github.com/cosmos/ibc-go/v7 v7.4.0/go.mod h1:L/KaEhzV5TGUCTfGysVgMBQtl5Dm7hHitfpk+GIeoAo= | ||||
| github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 aeryz
						aeryz