mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-04 00:07:51 +00:00 
			
		
		
		
	Add bridge migration (#1214)
* Add bridge migration * Use NewGenesisState method * Update migrations with new params * Use nil for relayer instead of empty address Both are still valid
This commit is contained in:
		
							parent
							
								
									8aa176f05a
								
							
						
					
					
						commit
						f6c55b7015
					
				@ -3,12 +3,15 @@ package v0_17
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/client"
 | 
						"github.com/cosmos/cosmos-sdk/client"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sdk "github.com/cosmos/cosmos-sdk/types"
 | 
				
			||||||
	authz "github.com/cosmos/cosmos-sdk/x/authz"
 | 
						authz "github.com/cosmos/cosmos-sdk/x/authz"
 | 
				
			||||||
	genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
 | 
						genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
 | 
				
			||||||
	evmtypes "github.com/tharsis/ethermint/x/evm/types"
 | 
						evmtypes "github.com/tharsis/ethermint/x/evm/types"
 | 
				
			||||||
	feemarkettypes "github.com/tharsis/ethermint/x/feemarket/types"
 | 
						feemarkettypes "github.com/tharsis/ethermint/x/feemarket/types"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	evmutiltypes "github.com/kava-labs/kava/x/evmutil/types"
 | 
						evmutiltypes "github.com/kava-labs/kava/x/evmutil/types"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bridgetypes "github.com/kava-labs/kava-bridge/x/bridge/types"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func migrateAppState(appState genutiltypes.AppMap, clientCtx client.Context) {
 | 
					func migrateAppState(appState genutiltypes.AppMap, clientCtx client.Context) {
 | 
				
			||||||
@ -31,6 +34,19 @@ func migrateAppState(appState genutiltypes.AppMap, clientCtx client.Context) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	appState[evmtypes.ModuleName] = codec.MustMarshalJSON(evmGenState)
 | 
						appState[evmtypes.ModuleName] = codec.MustMarshalJSON(evmGenState)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// x/bridge
 | 
				
			||||||
 | 
						bridgeGenState := bridgetypes.NewGenesisState(
 | 
				
			||||||
 | 
							bridgetypes.NewParams(
 | 
				
			||||||
 | 
								false,                            // Bridge disabled
 | 
				
			||||||
 | 
								bridgetypes.EnabledERC20Tokens{}, // No bridge ERC20 tokens
 | 
				
			||||||
 | 
								nil,                              // No relayer
 | 
				
			||||||
 | 
								bridgetypes.ConversionPairs{},    // No conversion pairs
 | 
				
			||||||
 | 
							),
 | 
				
			||||||
 | 
							bridgetypes.ERC20BridgePairs{}, // Empty state as there has been no ERC20 contracts deployed
 | 
				
			||||||
 | 
							sdk.OneInt(),                   // NextWithdrawSequence starts at 1
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
						appState[bridgetypes.ModuleName] = codec.MustMarshalJSON(&bridgeGenState)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// x/feemarket
 | 
						// x/feemarket
 | 
				
			||||||
	feemarketState := feemarkettypes.DefaultGenesisState()
 | 
						feemarketState := feemarkettypes.DefaultGenesisState()
 | 
				
			||||||
	appState[feemarkettypes.ModuleName] = codec.MustMarshalJSON(feemarketState)
 | 
						appState[feemarkettypes.ModuleName] = codec.MustMarshalJSON(feemarketState)
 | 
				
			||||||
 | 
				
			|||||||
@ -5,10 +5,12 @@ import (
 | 
				
			|||||||
	"path/filepath"
 | 
						"path/filepath"
 | 
				
			||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bridgetypes "github.com/kava-labs/kava-bridge/x/bridge/types"
 | 
				
			||||||
	"github.com/kava-labs/kava/app"
 | 
						"github.com/kava-labs/kava/app"
 | 
				
			||||||
	"github.com/stretchr/testify/assert"
 | 
						"github.com/stretchr/testify/assert"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/client"
 | 
						"github.com/cosmos/cosmos-sdk/client"
 | 
				
			||||||
 | 
						sdk "github.com/cosmos/cosmos-sdk/types"
 | 
				
			||||||
	authz "github.com/cosmos/cosmos-sdk/x/authz"
 | 
						authz "github.com/cosmos/cosmos-sdk/x/authz"
 | 
				
			||||||
	genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
 | 
						genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
 | 
				
			||||||
	tmjson "github.com/tendermint/tendermint/libs/json"
 | 
						tmjson "github.com/tendermint/tendermint/libs/json"
 | 
				
			||||||
@ -74,6 +76,22 @@ func TestMigrateAuthz(t *testing.T) {
 | 
				
			|||||||
	})
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestMigrateBridge(t *testing.T) {
 | 
				
			||||||
 | 
						appMap, ctx := migrateToV17AndGetAppMap(t)
 | 
				
			||||||
 | 
						var genstate bridgetypes.GenesisState
 | 
				
			||||||
 | 
						err := ctx.Codec.UnmarshalJSON(appMap[bridgetypes.ModuleName], &genstate)
 | 
				
			||||||
 | 
						assert.NoError(t, err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						assert.Len(t, genstate.ERC20BridgePairs, 0)
 | 
				
			||||||
 | 
						assert.Equal(t, genstate.NextWithdrawSequence, sdk.OneInt())
 | 
				
			||||||
 | 
						assert.Equal(t, genstate.Params, bridgetypes.Params{
 | 
				
			||||||
 | 
							BridgeEnabled:          false,
 | 
				
			||||||
 | 
							EnabledERC20Tokens:     bridgetypes.EnabledERC20Tokens{},
 | 
				
			||||||
 | 
							Relayer:                sdk.AccAddress{},
 | 
				
			||||||
 | 
							EnabledConversionPairs: bridgetypes.ConversionPairs{},
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func migrateToV17AndGetAppMap(t *testing.T) (genutiltypes.AppMap, client.Context) {
 | 
					func migrateToV17AndGetAppMap(t *testing.T) (genutiltypes.AppMap, client.Context) {
 | 
				
			||||||
	genDoc, err := tmtypes.GenesisDocFromFile(filepath.Join("testdata", "genesis-v16.json"))
 | 
						genDoc, err := tmtypes.GenesisDocFromFile(filepath.Join("testdata", "genesis-v16.json"))
 | 
				
			||||||
	assert.NoError(t, err)
 | 
						assert.NoError(t, err)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										10
									
								
								migrate/v0_17/testdata/genesis-v17.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								migrate/v0_17/testdata/genesis-v17.json
									
									
									
									
										vendored
									
									
								
							@ -559,6 +559,16 @@
 | 
				
			|||||||
      ],
 | 
					      ],
 | 
				
			||||||
      "previous_block_time": "1970-01-01T00:00:00Z"
 | 
					      "previous_block_time": "1970-01-01T00:00:00Z"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "bridge": {
 | 
				
			||||||
 | 
					      "params": {
 | 
				
			||||||
 | 
					        "bridge_enabled": false,
 | 
				
			||||||
 | 
					        "enabled_erc20_tokens": [],
 | 
				
			||||||
 | 
					        "relayer": "",
 | 
				
			||||||
 | 
					        "enabled_conversion_pairs": []
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "erc20_bridge_pairs": [],
 | 
				
			||||||
 | 
					      "next_withdraw_sequence": "1"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "capability": { "index": "1", "owners": [] },
 | 
					    "capability": { "index": "1", "owners": [] },
 | 
				
			||||||
    "cdp": {
 | 
					    "cdp": {
 | 
				
			||||||
      "params": {
 | 
					      "params": {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user