Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Upgrade = upgrades.Upgrade{ UpgradeName: upgradeName, UpgradeHandlerConstructor: upgradeHandlerConstructor, StoreUpgrades: &storetypes.StoreUpgrades{ Deleted: []string{ "capability", }, Added: []string{}, }, }
Upgrade implements the v0.4.0 upgrade plan.
This upgrade migrates Uptick from legacy go-ethereum v1.10.x to cosmos/evm v0.6.1 (based on cosmos/go-ethereum v1.16.2).
===================================================================== MAJOR CHANGES IN THIS UPGRADE =====================================================================
1. EVM Module: x/evm → cosmos/evm x/vm
- go-ethereum upgraded from v1.10.17 → v1.16.2
- ChainConfig fields changed from Block-based to Time-based (ShanghaiBlock → ShanghaiTime, CancunBlock → CancunTime, PragueBlock → PragueTime)
- EIP-7702 SetCodeTx is now natively supported by cosmos/go-ethereum (no custom implementation needed)
- ChainConfig is now a global variable (set during NewKeeper), not stored in Params. The upgrade handler re-initializes it.
2. IBC Module: ibc-go v8 → v10
- capability module removed entirely
- ScopedKeeper references removed from all keepers
- IBCModule interface signatures changed (added channelVersion param)
- SendPacket/WriteAcknowledgement no longer require chanCap
3. SDK: v0.50 → v0.53
- x/params module deprecated (params now authority-based)
- gov v1beta1 proposals → gov v1 (for erc20 module)
- runtime.KVStoreService replaces direct StoreKey in keeper constructors
4. Wasm: wasmd v0.53 → v0.61
- WasmConfig → NodeConfig
- wasmvm v2 → v3
5. EVM Hardfork Activation
- In v032, Shanghai/Cancun/Prague were activated via Block height = 0
- In cosmos/evm v0.6.1, these are activated via Time (timestamp)
- The upgrade sets all fork times to 0 (activated immediately at upgrade)
- This ensures all EVM opcodes (PUSH0, BLOBHASH, etc.) are enabled
- EIP-7702 SetCodeTx (type 0x04) is enabled via PragueTime
6. Capability Store Cleanup
- The 'capability' module store is deleted (ibc-go v10 doesn't use it)
7. erc20 Module
- Uptick replaces its self-developed x/erc20 with cosmos/evm's x/erc20 (v0.6.1). The old MsgTransferERC20 / IBC provenance refund path is no longer wired; IBC coin->ERC20 conversion now goes through cosmos/evm's ERC20 IBC middleware + ibc_callbacks.go.
- Params migrated from x/params subspace to authority-based. EnableEVMHook is dropped (cosmos/evm uses PermissionlessRegistration).
- Existing OWNER_MODULE pairs are deleted (STRv2 addressing differs).
- Existing OWNER_EXTERNAL pairs keep their legacy "erc20/0x…" denom and remain functional; only NEW registrations use the "erc20:0x…" scheme.
===================================================================== ROLLBACK NOTE ===================================================================== This upgrade is NOT reversible. Once the capability store is deleted and ChainConfig is migrated to Time-based, the chain cannot roll back to the legacy implementation. Ensure all validators have upgraded before the upgrade height.
Functions ¶
This section is empty.
Types ¶
This section is empty.