diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 8e20b228..b4bc1f36 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -20,10 +20,10 @@ jobs: packages: write runs-on: ubuntu-20.04 steps: - - name: Set up Go 1.18 + - name: Set up Go 1.19 uses: actions/setup-go@v2 with: - go-version: 1.18 + go-version: 1.19 - name: checkout uses: actions/checkout@v2 - name: Set up Docker Buildx @@ -127,10 +127,10 @@ jobs: "Incentives", ] steps: - - name: Set up Go 1.18 + - name: Set up Go 1.19 uses: actions/setup-go@v2 with: - go-version: 1.18 + go-version: 1.19 - name: checkout uses: actions/checkout@v2 - name: go-cache diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5f5e4659..d2bedc9e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/setup-go@v3 with: - go-version: 1.18 + go-version: 1.19 - uses: actions/checkout@v2 - uses: technote-space/get-diff-action@v4 with: @@ -26,7 +26,7 @@ jobs: - uses: golangci/golangci-lint-action@v3 with: # Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version. - version: v1.47 + version: v1.55 args: --timeout 10m github-token: ${{ secrets.github_token }} if: env.GIT_DIFF diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d8d41570..392cadbb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/setup-go@v2 with: - go-version: '1.18' + go-version: '1.19' - run: echo ":rocket::rocket::rocket:" > ../release_notes.md if: startsWith(github.ref, 'refs/tags/') diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 12e2b882..3d875990 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -12,7 +12,7 @@ jobs: test: strategy: matrix: - go-version: [1.18] + go-version: [1.19] os: [ubuntu-latest] runs-on: ubuntu-latest steps: diff --git a/Makefile b/Makefile index c4cebe5c..3c8cdefe 100644 --- a/Makefile +++ b/Makefile @@ -351,7 +351,7 @@ tools-clean: # Integration tests # ##################### -ORCHESTRATOR_IMAGE := "ghcr.io/peggyjv/gravity-bridge-orchestrator:v2.0.4" +ORCHESTRATOR_IMAGE := "ghcr.io/peggyjv/gravity-bridge-orchestrator:main" e2e_build_images: e2e_clean_slate @docker pull $(ORCHESTRATOR_IMAGE) diff --git a/app/app.go b/app/app.go index efb8d2e9..d29cf5b7 100644 --- a/app/app.go +++ b/app/app.go @@ -10,20 +10,18 @@ import ( "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/grpc/tmservice" - "github.com/cosmos/cosmos-sdk/client/rpc" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/server/api" "github.com/cosmos/cosmos-sdk/server/config" servertypes "github.com/cosmos/cosmos-sdk/server/types" "github.com/cosmos/cosmos-sdk/simapp" - store "github.com/cosmos/cosmos-sdk/store/types" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" "github.com/cosmos/cosmos-sdk/version" "github.com/cosmos/cosmos-sdk/x/auth" "github.com/cosmos/cosmos-sdk/x/auth/ante" - authrest "github.com/cosmos/cosmos-sdk/x/auth/client/rest" authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation" authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" @@ -55,8 +53,11 @@ import ( "github.com/cosmos/cosmos-sdk/x/genutil" genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" "github.com/cosmos/cosmos-sdk/x/gov" + govclient "github.com/cosmos/cosmos-sdk/x/gov/client" govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" "github.com/cosmos/cosmos-sdk/x/mint" mintkeeper "github.com/cosmos/cosmos-sdk/x/mint/keeper" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" @@ -75,25 +76,25 @@ import ( upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client" upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - ica "github.com/cosmos/ibc-go/v3/modules/apps/27-interchain-accounts" - icahost "github.com/cosmos/ibc-go/v3/modules/apps/27-interchain-accounts/host" - icahostkeeper "github.com/cosmos/ibc-go/v3/modules/apps/27-interchain-accounts/host/keeper" - icahosttypes "github.com/cosmos/ibc-go/v3/modules/apps/27-interchain-accounts/host/types" - icatypes "github.com/cosmos/ibc-go/v3/modules/apps/27-interchain-accounts/types" - ibctransfer "github.com/cosmos/ibc-go/v3/modules/apps/transfer" - ibctransferkeeper "github.com/cosmos/ibc-go/v3/modules/apps/transfer/keeper" - ibctransfertypes "github.com/cosmos/ibc-go/v3/modules/apps/transfer/types" - ibc "github.com/cosmos/ibc-go/v3/modules/core" - ibcclient "github.com/cosmos/ibc-go/v3/modules/core/02-client" - ibcclienttypes "github.com/cosmos/ibc-go/v3/modules/core/02-client/types" - ibcporttypes "github.com/cosmos/ibc-go/v3/modules/core/05-port/types" - ibchost "github.com/cosmos/ibc-go/v3/modules/core/24-host" - ibckeeper "github.com/cosmos/ibc-go/v3/modules/core/keeper" + ica "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts" + icahost "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host" + icahostkeeper "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/keeper" + icahosttypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/types" + icatypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/types" + ibctransfer "github.com/cosmos/ibc-go/v6/modules/apps/transfer" + ibctransferkeeper "github.com/cosmos/ibc-go/v6/modules/apps/transfer/keeper" + ibctransfertypes "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types" + ibc "github.com/cosmos/ibc-go/v6/modules/core" + ibcclient "github.com/cosmos/ibc-go/v6/modules/core/02-client" + ibcclienttypes "github.com/cosmos/ibc-go/v6/modules/core/02-client/types" + ibcporttypes "github.com/cosmos/ibc-go/v6/modules/core/05-port/types" + ibchost "github.com/cosmos/ibc-go/v6/modules/core/24-host" + ibckeeper "github.com/cosmos/ibc-go/v6/modules/core/keeper" "github.com/gorilla/mux" - "github.com/peggyjv/gravity-bridge/module/v3/x/gravity" - gravityclient "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/client" - gravitykeeper "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/keeper" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v4/x/gravity" + gravityclient "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/client" + gravitykeeper "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/keeper" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" appParams "github.com/peggyjv/sommelier/v7/app/params" v4 "github.com/peggyjv/sommelier/v7/app/upgrades/v4" v5 "github.com/peggyjv/sommelier/v7/app/upgrades/v5" @@ -156,27 +157,29 @@ var ( mint.AppModuleBasic{}, distr.AppModuleBasic{}, gov.NewAppModuleBasic( - paramsclient.ProposalHandler, - distrclient.ProposalHandler, - upgradeclient.ProposalHandler, - upgradeclient.CancelProposalHandler, - gravityclient.ProposalHandler, - corkclient.AddProposalHandler, - corkclient.RemoveProposalHandler, - axelarcorkclient.AddProposalHandler, - axelarcorkclient.RemoveProposalHandler, - axelarcorkclient.AddChainConfigurationHandler, - axelarcorkclient.RemoveChainConfigurationHandler, - axelarcorkclient.ScheduledCorkProposalHandler, - axelarcorkclient.CommunityPoolEthereumSpendProposalHandler, - axelarcorkclient.UpgradeAxelarProxyContractHandler, - axelarcorkclient.CancelAxelarProxyContractUpgradeHandler, - corkclient.ScheduledCorkProposalHandler, - auctionclient.SetProposalHandler, - pubsubclient.AddPublisherProposalHandler, - pubsubclient.RemovePublisherProposalHandler, - pubsubclient.AddDefaultSubscriptionProposalHandler, - pubsubclient.RemoveDefaultSubscriptionProposalHandler, + []govclient.ProposalHandler{ + paramsclient.ProposalHandler, + distrclient.ProposalHandler, + upgradeclient.LegacyProposalHandler, + upgradeclient.LegacyCancelProposalHandler, + gravityclient.ProposalHandler, + corkclient.AddProposalHandler, + corkclient.RemoveProposalHandler, + axelarcorkclient.AddProposalHandler, + axelarcorkclient.RemoveProposalHandler, + axelarcorkclient.AddChainConfigurationHandler, + axelarcorkclient.RemoveChainConfigurationHandler, + axelarcorkclient.ScheduledCorkProposalHandler, + axelarcorkclient.CommunityPoolEthereumSpendProposalHandler, + axelarcorkclient.UpgradeAxelarProxyContractHandler, + axelarcorkclient.CancelAxelarProxyContractUpgradeHandler, + corkclient.ScheduledCorkProposalHandler, + auctionclient.SetProposalHandler, + pubsubclient.AddPublisherProposalHandler, + pubsubclient.RemovePublisherProposalHandler, + pubsubclient.AddDefaultSubscriptionProposalHandler, + pubsubclient.RemoveDefaultSubscriptionProposalHandler, + }, ), params.AppModuleBasic{}, crisis.AppModuleBasic{}, @@ -235,9 +238,9 @@ type SommelierApp struct { invCheckPeriod uint // keys to access the substores - keys map[string]*sdk.KVStoreKey - tkeys map[string]*sdk.TransientStoreKey - memKeys map[string]*sdk.MemoryStoreKey + keys map[string]*storetypes.KVStoreKey + tkeys map[string]*storetypes.TransientStoreKey + memKeys map[string]*storetypes.MemoryStoreKey // SDK keepers AccountKeeper authkeeper.AccountKeeper @@ -347,7 +350,7 @@ func NewSommelierApp( app.ParamsKeeper = initParamsKeeper(appCodec, legacyAmino, keys[paramstypes.StoreKey], tkeys[paramstypes.TStoreKey]) // set the BaseApp's parameter store - bApp.SetParamStore(app.ParamsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(paramskeeper.ConsensusParamsKeyTable())) + bApp.SetParamStore(app.ParamsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(paramstypes.ConsensusParamsKeyTable())) // add capability keeper and ScopeToModule for ibc module app.CapabilityKeeper = capabilitykeeper.NewKeeper(appCodec, keys[capabilitytypes.StoreKey], memKeys[capabilitytypes.MemStoreKey]) @@ -359,7 +362,7 @@ func NewSommelierApp( // add keepers app.AccountKeeper = authkeeper.NewAccountKeeper( - appCodec, keys[authtypes.StoreKey], app.GetSubspace(authtypes.ModuleName), authtypes.ProtoBaseAccount, maccPerms, + appCodec, keys[authtypes.StoreKey], app.GetSubspace(authtypes.ModuleName), authtypes.ProtoBaseAccount, maccPerms, appParams.Bech32PrefixAccAddr, ) app.BankKeeper = bankkeeper.NewBaseKeeper( appCodec, keys[banktypes.StoreKey], app.AccountKeeper, app.GetSubspace(banktypes.ModuleName), app.BlockedAddrs(), @@ -373,7 +376,7 @@ func NewSommelierApp( ) app.DistrKeeper = distrkeeper.NewKeeper( appCodec, keys[distrtypes.StoreKey], app.GetSubspace(distrtypes.ModuleName), app.AccountKeeper, app.BankKeeper, - &stakingKeeper, authtypes.FeeCollectorName, app.ModuleAccountAddrs(), + &stakingKeeper, authtypes.FeeCollectorName, ) app.SlashingKeeper = slashingkeeper.NewKeeper( appCodec, keys[slashingtypes.StoreKey], &stakingKeeper, app.GetSubspace(slashingtypes.ModuleName), @@ -383,7 +386,9 @@ func NewSommelierApp( ) app.FeeGrantKeeper = feegrantkeeper.NewKeeper(appCodec, keys[feegrant.StoreKey], app.AccountKeeper) - app.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, keys[upgradetypes.StoreKey], appCodec, homePath, app.BaseApp) + app.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, keys[upgradetypes.StoreKey], appCodec, homePath, app.BaseApp, + authtypes.NewModuleAddress(govtypes.ModuleName).String(), + ) // register the staking hooks // NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks @@ -394,7 +399,7 @@ func NewSommelierApp( ), ) - app.AuthzKeeper = authzkeeper.NewKeeper(keys[authzkeeper.StoreKey], appCodec, app.MsgServiceRouter()) + app.AuthzKeeper = authzkeeper.NewKeeper(keys[authzkeeper.StoreKey], appCodec, app.MsgServiceRouter(), app.AccountKeeper) // Create IBC Keeper app.IBCKeeper = ibckeeper.NewKeeper( @@ -436,10 +441,11 @@ func NewSommelierApp( app.keys[icahosttypes.StoreKey], app.GetSubspace(icahosttypes.SubModuleName), app.IBCKeeper.ChannelKeeper, + app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, app.AccountKeeper, scopedICAHostKeeper, - app.MsgServiceRouter(), + bApp.MsgServiceRouter(), ) icaHostIBCModule := icahost.NewIBCModule(app.ICAHostKeeper) @@ -488,8 +494,8 @@ func NewSommelierApp( )) // register the proposal types - govRouter := govtypes.NewRouter() - govRouter.AddRoute(govtypes.RouterKey, govtypes.ProposalHandler). + govRouter := govtypesv1beta1.NewRouter() + govRouter.AddRoute(govtypes.RouterKey, govtypesv1beta1.ProposalHandler). AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)). AddRoute(distrtypes.RouterKey, distr.NewCommunityPoolSpendProposalHandler(app.DistrKeeper)). AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)). @@ -501,7 +507,7 @@ func NewSommelierApp( AddRoute(pubsubtypes.RouterKey, pubsub.NewPubsubProposalHandler(app.PubsubKeeper)) app.GovKeeper = govkeeper.NewKeeper( appCodec, keys[govtypes.StoreKey], app.GetSubspace(govtypes.ModuleName), app.AccountKeeper, app.BankKeeper, - &stakingKeeper, govRouter, + &stakingKeeper, govRouter, app.MsgServiceRouter(), govtypes.DefaultConfig(), ) // Create static IBC router, add transfer route, then set and seal it @@ -541,7 +547,7 @@ func NewSommelierApp( crisis.NewAppModule(&app.CrisisKeeper, skipGenesisInvariants), gov.NewAppModule(appCodec, app.GovKeeper, app.AccountKeeper, app.BankKeeper), feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry), - mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper), + mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil), slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper), distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper), staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper), @@ -680,7 +686,7 @@ func NewSommelierApp( capability.NewAppModule(appCodec, *app.CapabilityKeeper), gov.NewAppModule(appCodec, app.GovKeeper, app.AccountKeeper, app.BankKeeper), feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry), - mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper), + mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil), staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper), distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper), slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper), @@ -706,6 +712,9 @@ func NewSommelierApp( // initialize BaseApp app.SetInitChainer(app.InitChainer) app.SetBeginBlocker(app.BeginBlocker) + + // TODO(bolten): is there any reason we might want to customize the ante handler to include + // the redundant relay IBC decorator? anteHandler, err := ante.NewAnteHandler( ante.HandlerOptions{ AccountKeeper: app.AccountKeeper, @@ -828,21 +837,21 @@ func (app *SommelierApp) InterfaceRegistry() types.InterfaceRegistry { // GetKey returns the KVStoreKey for the provided store key. // // NOTE: This is solely to be used for testing purposes. -func (app *SommelierApp) GetKey(storeKey string) *sdk.KVStoreKey { +func (app *SommelierApp) GetKey(storeKey string) *storetypes.KVStoreKey { return app.keys[storeKey] } // GetTKey returns the TransientStoreKey for the provided store key. // // NOTE: This is solely to be used for testing purposes. -func (app *SommelierApp) GetTKey(storeKey string) *sdk.TransientStoreKey { +func (app *SommelierApp) GetTKey(storeKey string) *storetypes.TransientStoreKey { return app.tkeys[storeKey] } // GetMemKey returns the MemStoreKey for the provided mem key. // // NOTE: This is solely used for testing purposes. -func (app *SommelierApp) GetMemKey(storeKey string) *sdk.MemoryStoreKey { +func (app *SommelierApp) GetMemKey(storeKey string) *storetypes.MemoryStoreKey { return app.memKeys[storeKey] } @@ -863,15 +872,11 @@ func (app *SommelierApp) SimulationManager() *module.SimulationManager { // API server. func (app *SommelierApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig) { clientCtx := apiSvr.ClientCtx - rpc.RegisterRoutes(clientCtx, apiSvr.Router) - authrest.RegisterTxRoutes(clientCtx, apiSvr.Router) // Register new tx routes from grpc-gateway. authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) // Register new tendermint queries routes from grpc-gateway. tmservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) - - // Register legacy and grpc-gateway routes for all modules. - ModuleBasics.RegisterRESTRoutes(clientCtx, apiSvr.Router) + // Register grpc-gateway routes for all modules. ModuleBasics.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) // register swagger API from root so that other applications can override easily @@ -887,7 +892,7 @@ func (app *SommelierApp) RegisterTxService(clientCtx client.Context) { // RegisterTendermintService implements the application.RegisterTendermintService method func (app *SommelierApp) RegisterTendermintService(clientCtx client.Context) { - tmservice.RegisterTendermintService(app.BaseApp.GRPCQueryRouter(), clientCtx, app.interfaceRegistry) + tmservice.RegisterTendermintService(clientCtx, app.BaseApp.GRPCQueryRouter(), app.interfaceRegistry, app.Query) } // RegisterSwaggerAPI registers swagger route with API Server @@ -911,7 +916,7 @@ func GetMaccPerms() map[string][]string { } // initParamsKeeper init params keeper and its subspaces -func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey sdk.StoreKey) paramskeeper.Keeper { +func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey storetypes.StoreKey) paramskeeper.Keeper { paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey) paramsKeeper.Subspace(authtypes.ModuleName) @@ -920,7 +925,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino paramsKeeper.Subspace(minttypes.ModuleName) paramsKeeper.Subspace(distrtypes.ModuleName) paramsKeeper.Subspace(slashingtypes.ModuleName) - paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govtypes.ParamKeyTable()) + paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govtypesv1.ParamKeyTable()) paramsKeeper.Subspace(crisistypes.ModuleName) paramsKeeper.Subspace(ibctransfertypes.ModuleName) paramsKeeper.Subspace(ibchost.ModuleName) @@ -946,29 +951,29 @@ func (app *SommelierApp) setupUpgradeStoreLoaders() { return } - var storeUpgrades *store.StoreUpgrades = nil + var storeUpgrades *storetypes.StoreUpgrades = nil if upgradeInfo.Name == v4.UpgradeName { - storeUpgrades = &store.StoreUpgrades{ + storeUpgrades = &storetypes.StoreUpgrades{ Added: []string{corktypes.ModuleName, cellarfeestypes.ModuleName}, Deleted: []string{"allocation"}, } } if upgradeInfo.Name == v5.UpgradeName { - storeUpgrades = &store.StoreUpgrades{ + storeUpgrades = &storetypes.StoreUpgrades{ Added: []string{incentivestypes.ModuleName}, } } if upgradeInfo.Name == v6.UpgradeName { - storeUpgrades = &store.StoreUpgrades{ + storeUpgrades = &storetypes.StoreUpgrades{ Added: []string{icahosttypes.SubModuleName}, } } if upgradeInfo.Name == v7.UpgradeName { - storeUpgrades = &store.StoreUpgrades{ + storeUpgrades = &storetypes.StoreUpgrades{ Added: []string{auctiontypes.ModuleName, pubsubtypes.ModuleName}, } } @@ -1013,6 +1018,7 @@ func (app *SommelierApp) setupUpgradeHandlers() { app.configurator, app.AuctionKeeper, app.CellarFeesKeeper, + app.ICAHostKeeper, app.PubsubKeeper, ), ) diff --git a/app/params/config.go b/app/params/config.go index efb4fa2e..87fc5b63 100644 --- a/app/params/config.go +++ b/app/params/config.go @@ -1,6 +1,7 @@ package params import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -47,16 +48,16 @@ func SetAddressPrefixes() { // source: https://github.com/cosmos/cosmos-sdk/blob/v0.43.0-beta1/types/address.go#L141 config.SetAddressVerifier(func(bytes []byte) error { if len(bytes) == 0 { - return sdkerrors.Wrap(sdkerrors.ErrUnknownAddress, "addresses cannot be empty") + return errorsmod.Wrap(sdkerrors.ErrUnknownAddress, "addresses cannot be empty") } if len(bytes) > 255 { - return sdkerrors.Wrapf(sdkerrors.ErrUnknownAddress, "address max length is %d, got %d", 255, len(bytes)) + return errorsmod.Wrapf(sdkerrors.ErrUnknownAddress, "address max length is %d, got %d", 255, len(bytes)) } // TODO: Do we want to allow addresses of lengths other than 20 and 32 bytes? if len(bytes) != 20 && len(bytes) != 32 { - return sdkerrors.Wrapf(sdkerrors.ErrUnknownAddress, "address length must be 20 or 32 bytes, got %d", len(bytes)) + return errorsmod.Wrapf(sdkerrors.ErrUnknownAddress, "address length must be 20 or 32 bytes, got %d", len(bytes)) } return nil diff --git a/app/upgrades/v4/upgrades.go b/app/upgrades/v4/upgrades.go index fccf1abe..a8e358bf 100644 --- a/app/upgrades/v4/upgrades.go +++ b/app/upgrades/v4/upgrades.go @@ -6,7 +6,7 @@ import ( authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" cellarfeestypes "github.com/peggyjv/sommelier/v7/x/cellarfees/types" corktypes "github.com/peggyjv/sommelier/v7/x/cork/types" ) diff --git a/app/upgrades/v6/upgrades.go b/app/upgrades/v6/upgrades.go index 00f9cf27..93f02777 100644 --- a/app/upgrades/v6/upgrades.go +++ b/app/upgrades/v6/upgrades.go @@ -5,14 +5,14 @@ import ( "github.com/cosmos/cosmos-sdk/types/module" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - ica "github.com/cosmos/ibc-go/v3/modules/apps/27-interchain-accounts" - icacontrollertypes "github.com/cosmos/ibc-go/v3/modules/apps/27-interchain-accounts/controller/types" - icahosttypes "github.com/cosmos/ibc-go/v3/modules/apps/27-interchain-accounts/host/types" - icatypes "github.com/cosmos/ibc-go/v3/modules/apps/27-interchain-accounts/types" - transfertypes "github.com/cosmos/ibc-go/v3/modules/apps/transfer/types" + ica "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts" + icacontrollertypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/controller/types" + icahosttypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/types" + icatypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/types" + transfertypes "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types" ) func CreateUpgradeHandler( @@ -38,8 +38,8 @@ func CreateUpgradeHandler( sdk.MsgTypeURL(&distrtypes.MsgWithdrawDelegatorReward{}), sdk.MsgTypeURL(&distrtypes.MsgWithdrawValidatorCommission{}), sdk.MsgTypeURL(&distrtypes.MsgFundCommunityPool{}), - sdk.MsgTypeURL(&govtypes.MsgVote{}), - sdk.MsgTypeURL(&govtypes.MsgVoteWeighted{}), + sdk.MsgTypeURL(&govtypesv1beta1.MsgVote{}), + sdk.MsgTypeURL(&govtypesv1beta1.MsgVoteWeighted{}), sdk.MsgTypeURL(&stakingtypes.MsgDelegate{}), sdk.MsgTypeURL(&stakingtypes.MsgUndelegate{}), sdk.MsgTypeURL(&stakingtypes.MsgBeginRedelegate{}), diff --git a/app/upgrades/v7/upgrades.go b/app/upgrades/v7/upgrades.go index c3340503..662e06c7 100644 --- a/app/upgrades/v7/upgrades.go +++ b/app/upgrades/v7/upgrades.go @@ -4,6 +4,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + icahostkeeper "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/keeper" + icahosttypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/types" auctionkeeper "github.com/peggyjv/sommelier/v7/x/auction/keeper" auctiontypes "github.com/peggyjv/sommelier/v7/x/auction/types" cellarfeeskeeper "github.com/peggyjv/sommelier/v7/x/cellarfees/keeper" @@ -17,11 +19,18 @@ func CreateUpgradeHandler( configurator module.Configurator, auctionKeeper auctionkeeper.Keeper, cellarfeesKeeper cellarfeeskeeper.Keeper, + icaHostKeeper icahostkeeper.Keeper, pubsubKeeper pubsubkeeper.Keeper, ) upgradetypes.UpgradeHandler { return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { ctx.Logger().Info("v7 upgrade: entering handler") + // TODO(bolten): get a sanity check on this + // Now that we're on IBC V6, we can update the ICA host module to allow all message types rather than + // the list we specified in the v6 upgrade -- a default of HostEnabled: true and the string "*" for messages + icaParams := icahosttypes.DefaultParams() + icaHostKeeper.SetParams(ctx, icaParams) + // We must manually run InitGenesis for pubsub and auctions so we can adjust their values // during the upgrade process. RunMigrations will migrate to the new cork version. Setting the consensus // version to 1 prevents RunMigrations from running InitGenesis itself. @@ -33,12 +42,15 @@ func CreateUpgradeHandler( ctx.Logger().Info("v7 upgrading: setting cellarfees default params") cellarfeesKeeper.SetParams(ctx, cellarfeestypes.DefaultParams()) + //TODO(bolten): verify that the default params are fine or if we need to customize them for auction and pubsub ctx.Logger().Info("v7 upgrade: initializing auction genesis state") auctionInitGenesis(ctx, auctionKeeper) ctx.Logger().Info("v7 upgrade: initializing pubsub genesis state") pubsubInitGenesis(ctx, pubsubKeeper) + //TODO(bolten): axelarcork module initialization + ctx.Logger().Info("v7 upgrade: running migrations and exiting handler") return mm.RunMigrations(ctx, configurator, fromVM) } diff --git a/cmd/sommelier/cmd/root.go b/cmd/sommelier/cmd/root.go index adec32e8..103d14a1 100644 --- a/cmd/sommelier/cmd/root.go +++ b/cmd/sommelier/cmd/root.go @@ -3,9 +3,7 @@ package cmd import ( "io" "os" - "path/filepath" - "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/config" "github.com/cosmos/cosmos-sdk/client/debug" @@ -15,8 +13,6 @@ import ( "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/server" servertypes "github.com/cosmos/cosmos-sdk/server/types" - "github.com/cosmos/cosmos-sdk/snapshots" - "github.com/cosmos/cosmos-sdk/store" sdk "github.com/cosmos/cosmos-sdk/types" authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli" "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -26,11 +22,12 @@ import ( genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli" "github.com/spf13/cast" "github.com/spf13/cobra" + tmcfg "github.com/tendermint/tendermint/config" tmcli "github.com/tendermint/tendermint/libs/cli" "github.com/tendermint/tendermint/libs/log" dbm "github.com/tendermint/tm-db" - bridgecmd "github.com/peggyjv/gravity-bridge/module/v3/cmd/gravity/cmd" + bridgecmd "github.com/peggyjv/gravity-bridge/module/v4/cmd/gravity/cmd" "github.com/peggyjv/sommelier/v7/app" "github.com/peggyjv/sommelier/v7/app/params" ) @@ -72,7 +69,7 @@ func NewRootCmd() (*cobra.Command, params.EncodingConfig) { return err } - return server.InterceptConfigsPreRunHandler(cmd, "", nil) + return server.InterceptConfigsPreRunHandler(cmd, "", nil, tmcfg.DefaultConfig()) }, } @@ -178,31 +175,19 @@ func txCommand() *cobra.Command { } func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts servertypes.AppOptions) servertypes.Application { - var cache sdk.MultiStorePersistentCache - - if cast.ToBool(appOpts.Get(server.FlagInterBlockCache)) { - cache = store.NewCommitKVStoreCacheManager() - } - skipUpgradeHeights := make(map[int64]bool) for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) { skipUpgradeHeights[int64(h)] = true } - pruningOpts, err := server.GetPruningOptionsFromFlags(appOpts) - if err != nil { - panic(err) - } - - snapshotDir := filepath.Join(cast.ToString(appOpts.Get(flags.FlagHome)), "data", "snapshots") - snapshotDB, err := sdk.NewLevelDB("metadata", snapshotDir) - if err != nil { - panic(err) - } - snapshotStore, err := snapshots.NewStore(snapshotDB, snapshotDir) - if err != nil { - panic(err) - } + // TODO(bolten): sanity check this update + // appears to do exactly the same things we were manually doing before, and also + // includes new baseapp options: + // + // baseapp.SetIAVLCacheSize(cast.ToInt(appOpts.Get(FlagIAVLCacheSize))), + // baseapp.SetIAVLDisableFastNode(cast.ToBool(appOpts.Get(FlagDisableIAVLFastNode))), + // baseapp.SetIAVLLazyLoading(cast.ToBool(appOpts.Get(FlagIAVLLazyLoading))), + baseappOptions := server.DefaultBaseappOptions(appOpts) return app.NewSommelierApp( logger, db, traceStore, true, skipUpgradeHeights, @@ -210,17 +195,7 @@ func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts serverty cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)), app.MakeEncodingConfig(), // Ideally, we would reuse the one created by NewRootCmd. appOpts, - baseapp.SetPruning(pruningOpts), - baseapp.SetMinGasPrices(cast.ToString(appOpts.Get(server.FlagMinGasPrices))), - baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(server.FlagHaltHeight))), - baseapp.SetHaltTime(cast.ToUint64(appOpts.Get(server.FlagHaltTime))), - baseapp.SetMinRetainBlocks(cast.ToUint64(appOpts.Get(server.FlagMinRetainBlocks))), - baseapp.SetInterBlockCache(cache), - baseapp.SetTrace(cast.ToBool(appOpts.Get(server.FlagTrace))), - baseapp.SetIndexEvents(cast.ToStringSlice(appOpts.Get(server.FlagIndexEvents))), - baseapp.SetSnapshotStore(snapshotStore), - baseapp.SetSnapshotInterval(cast.ToUint64(appOpts.Get(server.FlagStateSyncSnapshotInterval))), - baseapp.SetSnapshotKeepRecent(cast.ToUint32(appOpts.Get(server.FlagStateSyncSnapshotKeepRecent))), + baseappOptions..., ) } diff --git a/cmd/sommelier/cmd/testnet.go b/cmd/sommelier/cmd/testnet.go index d434ef16..d05e6672 100644 --- a/cmd/sommelier/cmd/testnet.go +++ b/cmd/sommelier/cmd/testnet.go @@ -165,7 +165,7 @@ func InitTestnet( memo := fmt.Sprintf("%s@%s:26656", nodeIDs[i], ip) genFiles = append(genFiles, nodeConfig.GenesisFile()) - kb, err := keyring.New(sdk.KeyringServiceName(), keyringBackend, nodeDir, inBuf) + kb, err := keyring.New(sdk.KeyringServiceName(), keyringBackend, nodeDir, inBuf, clientCtx.Codec) if err != nil { return err } diff --git a/cmd/sommelier/main.go b/cmd/sommelier/main.go index 79afc282..529ac90e 100644 --- a/cmd/sommelier/main.go +++ b/cmd/sommelier/main.go @@ -11,7 +11,7 @@ import ( func main() { rootCmd, _ := cmd.NewRootCmd() - if err := scmd.Execute(rootCmd, app.DefaultNodeHome); err != nil { + if err := scmd.Execute(rootCmd, "", app.DefaultNodeHome); err != nil { switch e := err.(type) { case server.ErrorCode: os.Exit(e.Code) diff --git a/go.mod b/go.mod index 42ef0729..6e7653c6 100644 --- a/go.mod +++ b/go.mod @@ -1,76 +1,87 @@ module github.com/peggyjv/sommelier/v7 -go 1.18 +go 1.19 require ( - github.com/cosmos/cosmos-sdk v0.45.10 + github.com/cosmos/cosmos-sdk v0.46.14 github.com/cosmos/go-bip39 v1.0.0 - github.com/cosmos/ibc-go/v3 v3.4.0 + github.com/cosmos/ibc-go/v6 v6.2.0 github.com/ethereum/go-ethereum v1.10.22 github.com/gogo/protobuf v1.3.3 github.com/golang/mock v1.6.0 - github.com/golang/protobuf v1.5.2 + github.com/golang/protobuf v1.5.3 github.com/gorilla/mux v1.8.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/miguelmota/go-ethereum-hdwallet v0.1.1 github.com/ory/dockertest/v3 v3.10.0 - github.com/peggyjv/gravity-bridge/module/v3 v3.0.0-20230425134518-c0644797435c + github.com/peggyjv/gravity-bridge/module/v4 v4.0.0-20231211214131-bf2a31eb986f github.com/rakyll/statik v0.1.7 github.com/regen-network/cosmos-proto v0.3.1 github.com/spf13/cast v1.5.0 github.com/spf13/cobra v1.6.1 github.com/spf13/viper v1.14.0 - github.com/stretchr/testify v1.8.1 - github.com/tendermint/tendermint v0.34.22 + github.com/stretchr/testify v1.8.2 + github.com/tendermint/tendermint v0.34.29 github.com/tendermint/tm-db v0.6.7 - google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 - google.golang.org/grpc v1.52.0 + google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 + google.golang.org/grpc v1.54.0 gopkg.in/yaml.v2 v2.4.0 ) require ( - filippo.io/edwards25519 v1.0.0-beta.2 // indirect - github.com/99designs/keyring v1.1.6 // indirect + cloud.google.com/go v0.110.0 // indirect + cloud.google.com/go/compute v1.18.0 // indirect + cloud.google.com/go/compute/metadata v0.2.3 // indirect + cloud.google.com/go/iam v0.12.0 // indirect + cloud.google.com/go/storage v1.28.1 // indirect + cosmossdk.io/errors v1.0.0-beta.7 // indirect + cosmossdk.io/math v1.0.0-rc.0 // indirect + filippo.io/edwards25519 v1.0.0-rc.1 // indirect + github.com/99designs/keyring v1.2.1 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect - github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect - github.com/DataDog/zstd v1.4.5 // indirect + github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect github.com/Microsoft/go-winio v0.6.0 // indirect github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect github.com/StackExchange/wmi v1.2.1 // indirect github.com/Workiva/go-datastructures v1.0.53 // indirect - github.com/armon/go-metrics v0.4.0 // indirect + github.com/armon/go-metrics v0.4.1 // indirect + github.com/aws/aws-sdk-go v1.40.45 // indirect github.com/beorn7/perks v1.0.1 // indirect + github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.1.0 // indirect github.com/btcsuite/btcd v0.22.1 // indirect - github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.1.2 // indirect - github.com/coinbase/rosetta-sdk-go v0.7.0 // indirect - github.com/confio/ics23/go v0.8.0 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect + github.com/cockroachdb/apd/v2 v2.0.2 // indirect + github.com/coinbase/rosetta-sdk-go v0.7.9 // indirect + github.com/cometbft/cometbft-db v0.7.0 // indirect + github.com/confio/ics23/go v0.9.0 // indirect github.com/containerd/continuity v0.3.0 // indirect - github.com/cosmos/btcutil v1.0.4 // indirect + github.com/cosmos/btcutil v1.0.5 // indirect + github.com/cosmos/cosmos-proto v1.0.0-alpha8 // indirect github.com/cosmos/gorocksdb v1.2.0 // indirect - github.com/cosmos/iavl v0.19.3 // indirect - github.com/cosmos/ledger-cosmos-go v0.11.1 // indirect - github.com/cosmos/ledger-go v0.9.2 // indirect + github.com/cosmos/iavl v0.19.6 // indirect + github.com/cosmos/ledger-cosmos-go v0.12.2 // indirect github.com/creachadair/taskgroup v0.3.2 // indirect - github.com/danieljoos/wincred v1.1.0 // indirect + github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/deckarep/golang-set v1.8.0 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect - github.com/dgraph-io/badger/v2 v2.2007.2 // indirect - github.com/dgraph-io/ristretto v0.0.3 // indirect + github.com/dgraph-io/badger/v2 v2.2007.4 // indirect + github.com/dgraph-io/ristretto v0.1.0 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/docker/cli v20.10.17+incompatible // indirect - github.com/docker/docker v20.10.17+incompatible // indirect + github.com/docker/docker v20.10.19+incompatible // indirect github.com/docker/go-connections v0.4.0 // indirect - github.com/docker/go-units v0.4.0 // indirect + github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.0 // indirect - github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b // indirect + github.com/dvsekhvalnov/jose2go v1.5.0 // indirect github.com/felixge/httpsnoop v1.0.2 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-kit/kit v0.12.0 // indirect @@ -80,55 +91,67 @@ require ( github.com/go-stack/stack v1.8.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/gateway v1.1.0 // indirect + github.com/golang/glog v1.0.0 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/snappy v0.0.4 // indirect - github.com/google/btree v1.0.1 // indirect + github.com/google/btree v1.1.2 // indirect + github.com/google/go-cmp v0.5.9 // indirect github.com/google/orderedcode v0.0.1 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.3.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect + github.com/googleapis/gax-go/v2 v2.7.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hashicorp/go-cleanhttp v0.5.2 // indirect + github.com/hashicorp/go-getter v1.6.1 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-safetemp v1.0.0 // indirect + github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87 // indirect - github.com/imdario/mergo v0.3.12 // indirect - github.com/improbable-eng/grpc-web v0.14.1 // indirect + github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 // indirect + github.com/imdario/mergo v0.3.13 // indirect + github.com/improbable-eng/grpc-web v0.15.0 // indirect github.com/inconshreveable/mousetrap v1.0.1 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d // indirect - github.com/klauspost/compress v1.15.9 // indirect - github.com/lib/pq v1.10.6 // indirect + github.com/klauspost/compress v1.16.0 // indirect + github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/magiconair/properties v1.8.6 // indirect + github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.16 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/mattn/go-isatty v0.0.18 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 // indirect + github.com/opencontainers/image-spec v1.1.0-rc2 // indirect github.com/opencontainers/runc v1.1.5 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.0.5 // indirect - github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect + github.com/pelletier/go-toml/v2 v2.0.7 // indirect + github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.12.2 // indirect - github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.34.0 // indirect - github.com/prometheus/procfs v0.7.3 // indirect + github.com/prometheus/client_golang v1.14.0 // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.42.0 // indirect + github.com/prometheus/procfs v0.9.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rjeczalik/notify v0.9.1 // indirect github.com/rs/cors v1.8.2 // indirect - github.com/rs/zerolog v1.27.0 // indirect + github.com/rs/zerolog v1.29.1 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect github.com/sirupsen/logrus v1.9.0 // indirect @@ -136,37 +159,47 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/subosito/gotenv v1.4.1 // indirect - github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect - github.com/tendermint/btcd v0.1.1 // indirect - github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect + github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect github.com/tendermint/go-amino v0.16.0 // indirect + github.com/tidwall/btree v1.5.0 // indirect github.com/tklauser/go-sysconf v0.3.9 // indirect github.com/tklauser/numcpus v0.3.0 // indirect github.com/tyler-smith/go-bip39 v1.0.2 // indirect + github.com/ulikunitz/xz v0.5.8 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/zondax/hid v0.9.0 // indirect + github.com/zondax/hid v0.9.1 // indirect + github.com/zondax/ledger-go v0.14.1 // indirect go.etcd.io/bbolt v1.3.6 // indirect - golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect - golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect + go.opencensus.io v0.24.0 // indirect + golang.org/x/crypto v0.7.0 // indirect + golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 // indirect golang.org/x/mod v0.9.0 // indirect - golang.org/x/net v0.8.0 // indirect + golang.org/x/net v0.9.0 // indirect + golang.org/x/oauth2 v0.5.0 // indirect golang.org/x/sys v0.7.0 // indirect - golang.org/x/term v0.6.0 // indirect - golang.org/x/text v0.8.0 // indirect + golang.org/x/term v0.7.0 // indirect + golang.org/x/text v0.9.0 // indirect golang.org/x/tools v0.7.0 // indirect - google.golang.org/protobuf v1.28.1 // indirect + golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + google.golang.org/api v0.110.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/protobuf v1.30.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v3 v3.0.1 // indirect nhooyr.io/websocket v1.8.6 // indirect + sigs.k8s.io/yaml v1.3.0 // indirect ) -replace google.golang.org/grpc => google.golang.org/grpc v1.33.2 - replace github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 -replace github.com/tendermint/tendermint => github.com/informalsystems/tendermint v0.34.22 +replace github.com/99designs/keyring => github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76 + +// use cometbft +replace github.com/tendermint/tendermint => github.com/cometbft/cometbft v0.34.28 -replace github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 +// replace broken goleveldb +replace github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 diff --git a/go.sum b/go.sum index 85d753ad..762108e5 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,4 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= @@ -18,6 +19,8 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= +cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -25,8 +28,15 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= +cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY= +cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/iam v0.12.0 h1:DRtTY29b75ciH6Ov1PHb4/iat2CLCvrOm40Q0a6DFpE= +cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -37,14 +47,23 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcbgI= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= +cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= +cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= +cosmossdk.io/math v1.0.0-rc.0 h1:ml46ukocrAAoBpYKMidF0R2tQJ1Uxfns0yH8wqgMAFc= +cosmossdk.io/math v1.0.0-rc.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0-beta.2 h1:/BZRNzm8N4K4eWfK28dL4yescorxtO7YG1yun8fy+pI= -filippo.io/edwards25519 v1.0.0-beta.2/go.mod h1:X+pm78QAUPtFLi1z9PYIlS/bdDnvbCOGKtZ+ACWEf7o= -github.com/99designs/keyring v1.1.6 h1:kVDC2uCgVwecxCk+9zoCt2uEL6dt+dfVzMvGgnVcIuM= -github.com/99designs/keyring v1.1.6/go.mod h1:16e0ds7LGQQcT59QqkTg72Hh5ShM51Byv5PEmW6uoRU= +filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= +filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= +git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= +git.sr.ht/~sircmpwn/go-bare v0.0.0-20210406120253-ab86bc2846d9/go.mod h1:BVJwbDfVjCjoFiKrhkei6NdGcZYpkDkdyCdg1ukytRA= github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= +github.com/Azure/azure-sdk-for-go/sdk/azcore v0.21.1/go.mod h1:fBF9PQNqB8scdgpZ3ufzaLntG0AG7C1WjPMsiFOmfHM= +github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.3/go.mod h1:KLF4gFr6DcKFZwSuH8w8yEK6DpFl3LP5rhdvAb7Yz5I= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.3.0/go.mod h1:tPaiy8S5bQ+S5sOiDlINkp7+Ef339+Nz5L5XO+cnOHo= github.com/Azure/azure-storage-blob-go v0.7.0/go.mod h1:f9YQKtsG1nMisotuTPpO0tjNuEjKRYAcJU8/ydDI++4= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= @@ -60,13 +79,11 @@ github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6L github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= -github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= +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/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.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= -github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= -github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/DataDog/zstd v1.5.0/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE= @@ -79,7 +96,6 @@ github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMx github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= -github.com/VictoriaMetrics/fastcache v1.5.7/go.mod h1:ptDBkNMQI4RtmVo8VS/XwRY6RoTu1dAWCbrk+6WsEM8= github.com/VictoriaMetrics/fastcache v1.6.0 h1:C/3Oi3EiBCqufydp1neRZkqcwmEiuRT9c3fqvvgKm5o= github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= @@ -103,17 +119,18 @@ github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kd github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/aristanetworks/goarista v0.0.0-20170210015632-ea17b1a17847/go.mod h1:D/tb0zPVXnP7fmsLZjtdUhSsumbK/ij54UXjjVgMGxQ= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-metrics v0.4.0 h1:yCQqn7dwca4ITXb+CbubHmedzaQYHhNhrEXLYUeEe8Q= -github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= +github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/aws/aws-sdk-go v1.25.48/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.40.45 h1:QN1nsY27ssD/JmW4s83qmSb+uL6DG4GmCDzjmJB4xUI= +github.com/aws/aws-sdk-go v1.40.45/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= @@ -128,23 +145,26 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= +github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/btcsuite/btcd v0.0.0-20171128150713-2e60448ffcc6/go.mod h1:Dmm/EzmjnCiweXmzRIAiUWCInVmPgjkzgv5k4tVyXiQ= -github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d/go.mod h1:d3C0AkH6BRcvO8T0UEPu53cnw4IbV63x1bEjildYhO0= github.com/btcsuite/btcd v0.0.0-20190315201642-aa6e0f35703c/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= +github.com/btcsuite/btcd v0.21.0-beta.0.20201114000516-e9c7a5ac6401/go.mod h1:Sv4JPQ3/M+teHz9Bo5jBpkNcP0x6r7rdihlNL/7tTAs= github.com/btcsuite/btcd v0.22.1 h1:CnwP9LM/M9xuRrGSCGeMVs9iv09uMqwsVX7EeIpgV2c= github.com/btcsuite/btcd v0.22.1/go.mod h1:wqgTSL29+50LRkmOVknEdmt8ZojIzhuWvgu/iptuN7Y= -github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k= -github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU= +github.com/btcsuite/btcd/btcec/v2 v2.1.2/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= +github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= +github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcutil v1.1.2 h1:XLMbX8JQEiwMcYft2EGi8zPUkoa0abKIU6/BJSRsjzQ= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= -github.com/btcsuite/btcutil v0.0.0-20180706230648-ab6388e0c60a/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= @@ -157,10 +177,13 @@ github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/bufbuild/protocompile v0.1.0 h1:HjgJBI85hY/qmW5tw/66sNDZ7z0UDdVSi/5r40WHw4s= +github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -169,25 +192,42 @@ github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= +github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= +github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= -github.com/cloudflare/cloudflare-go v0.10.2-0.20190916151808-a80f83b9add9/go.mod h1:1MxXX1Ux4x6mqPmjkUgTP1CdXIBXKX7T+Jk9Gxrmx+U= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3hQ7C/YWzIGLeu5c304= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= +github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/coinbase/rosetta-sdk-go v0.7.0 h1:lmTO/JEpCvZgpbkOITL95rA80CPKb5CtMzLaqF2mCNg= -github.com/coinbase/rosetta-sdk-go v0.7.0/go.mod h1:7nD3oBPIiHqhRprqvMgPoGxe/nyq3yftRmpsy29coWE= +github.com/coinbase/kryptology v1.8.0/go.mod h1:RYXOAPdzOGUe3qlSFkMGn58i3xUA8hmxYHksuq+8ciI= +github.com/coinbase/rosetta-sdk-go v0.7.9 h1:lqllBjMnazTjIqYrOGv8h8jxjg9+hJazIGZr9ZvoCcA= +github.com/coinbase/rosetta-sdk-go v0.7.9/go.mod h1:0/knutI7XGVqXmmH4OQD8OckFrbQ8yMsUZTG7FXCR2M= +github.com/cometbft/cometbft v0.34.28 h1:gwryf55P1SWMUP4nOXpRVI2D0yPoYEzN+IBqmRBOsDc= +github.com/cometbft/cometbft v0.34.28/go.mod h1:L9shMfbkZ8B+7JlwANEr+NZbBcn+hBpwdbeYvA5rLCw= +github.com/cometbft/cometbft-db v0.7.0 h1:uBjbrBx4QzU0zOEnU8KxoDl18dMNgDh+zZRUE0ucsbo= +github.com/cometbft/cometbft-db v0.7.0/go.mod h1:yiKJIm2WKrt6x8Cyxtq9YTEcIMPcEe4XPxhgX59Fzf0= +github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= +github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ= +github.com/consensys/bavard v0.1.8-0.20210915155054-088da2f7f54a/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f/go.mod h1:815PAHg3wvysy0SyIqanF8gZ0Y1wjk/hrDHD/iT88+Q= +github.com/consensys/gnark-crypto v0.5.3/go.mod h1:hOdPlWQV1gDLp7faZVeg8Y0iEPFaOUnCc4XeCCk96p0= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= @@ -196,27 +236,27 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cosmos/btcutil v1.0.4 h1:n7C2ngKXo7UC9gNyMNLbzqz7Asuf+7Qv4gnX/rOdQ44= -github.com/cosmos/btcutil v1.0.4/go.mod h1:Ffqc8Hn6TJUdDgHBwIZLtrLQC1KdJ9jGJl/TvgUaxbU= -github.com/cosmos/cosmos-sdk v0.45.10 h1:YRf1N6C7OFCc8FJ5wuhcnDDySJNDn5DxSscVgbeXgz4= -github.com/cosmos/cosmos-sdk v0.45.10/go.mod h1:CbfWNs4PuxxsvRD/snQuSBDwIhtsD7rIDTVQyYMKTa0= -github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 h1:iKclrn3YEOwk4jQHT2ulgzuXyxmzmPczUalMwW4XH9k= -github.com/cosmos/cosmos-sdk/ics23/go v0.8.0/go.mod h1:2a4dBq88TUoqoWAU5eu0lGvpFP3wWDPgdHPargtyw30= +github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= +github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= +github.com/cosmos/cosmos-proto v1.0.0-alpha8 h1:d3pCRuMYYvGA5bM0ZbbjKn+AoQD4A7dyNG2wzwWalUw= +github.com/cosmos/cosmos-proto v1.0.0-alpha8/go.mod h1:6/p+Bc4O8JKeZqe0VqUGTX31eoYqemTT4C1hLCWsO7I= +github.com/cosmos/cosmos-sdk v0.46.14 h1:xlrUaMZT6QACdtWputs+ZxbAMWGYktWK+zlc8J4tKoE= +github.com/cosmos/cosmos-sdk v0.46.14/go.mod h1:9MRixWsgoJ2UmVsCRRePtENFPP3cM+gTC5azEpxgllo= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gorocksdb v1.2.0 h1:d0l3jJG8M4hBouIZq0mDUHZ+zjOx044J3nGRskwTb4Y= github.com/cosmos/gorocksdb v1.2.0/go.mod h1:aaKvKItm514hKfNJpUJXnnOWeBnk2GL4+Qw9NHizILw= -github.com/cosmos/iavl v0.19.3 h1:cESO0OwTTxQm5rmyESKW+zESheDUYI7CcZDWWDwnuxg= -github.com/cosmos/iavl v0.19.3/go.mod h1:X9PKD3J0iFxdmgNLa7b2LYWdsGd90ToV5cAONApkEPw= -github.com/cosmos/ibc-go/v3 v3.4.0 h1:ha3cqEG36pqMWqA1D+kxDWBTZXpeFMd/aZIQF7I0xro= -github.com/cosmos/ibc-go/v3 v3.4.0/go.mod h1:VwB/vWu4ysT5DN2aF78d17LYmx3omSAdq6gpKvM7XRA= -github.com/cosmos/ledger-cosmos-go v0.11.1 h1:9JIYsGnXP613pb2vPjFeMMjBI5lEDsEaF6oYorTy6J4= -github.com/cosmos/ledger-cosmos-go v0.11.1/go.mod h1:J8//BsAGTo3OC/vDLjMRFLW6q0WAaXvHnVc7ZmE8iUY= -github.com/cosmos/ledger-go v0.9.2 h1:Nnao/dLwaVTk1Q5U9THldpUMMXU94BOTWPddSmVB6pI= -github.com/cosmos/ledger-go v0.9.2/go.mod h1:oZJ2hHAZROdlHiwTg4t7kP+GKIIkBT+o6c9QWFanOyI= +github.com/cosmos/iavl v0.19.6 h1:XY78yEeNPrEYyNCKlqr9chrwoeSDJ0bV2VjocTk//OU= +github.com/cosmos/iavl v0.19.6/go.mod h1:X9PKD3J0iFxdmgNLa7b2LYWdsGd90ToV5cAONApkEPw= +github.com/cosmos/ibc-go/v6 v6.2.0 h1:HKS5WNxQrlmjowHb73J9LqlNJfvTnvkbhXZ9QzNTU7Q= +github.com/cosmos/ibc-go/v6 v6.2.0/go.mod h1:+S3sxcNwOhgraYDJAhIFDg5ipXHaUnJrg7tOQqGyWlc= +github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76 h1:DdzS1m6o/pCqeZ8VOAit/gyATedRgjvkVI+UCrLpyuU= +github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76/go.mod h1:0mkLWIoZuQ7uBoospo5Q9zIpqq6rYCPJDSUdeCJvPM8= +github.com/cosmos/ledger-cosmos-go v0.12.2 h1:/XYaBlE2BJxtvpkHiBm97gFGSGmYGKunKyF3nNqAXZA= +github.com/cosmos/ledger-cosmos-go v0.12.2/go.mod h1:ZcqYgnfNJ6lAXe4HPtWgarNEY+B74i+2/8MhZw4ziiI= github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= @@ -225,12 +265,14 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/creachadair/taskgroup v0.3.2 h1:zlfutDS+5XG40AOxcHDSThxKzns8Tnr9jnr6VqkYlkM= github.com/creachadair/taskgroup v0.3.2/go.mod h1:wieWwecHVzsidg2CsUnFinW1faVN4+kq+TDlRJQ0Wbk= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U= -github.com/danieljoos/wincred v1.1.0 h1:3RNcEpBg4IhIChZdFRSdlQt1QjCp1sMAPIrOnm7Yf8g= -github.com/danieljoos/wincred v1.1.0/go.mod h1:XYlo+eRTsVA9aHGp7NGjFkPla4m+DCL7hqDjlFjiygg= +github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= +github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -241,16 +283,20 @@ github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsP github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc= github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= +github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M= +github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dgraph-io/badger/v2 v2.2007.2 h1:EjjK0KqwaFMlPin1ajhP943VPENHJdEz1KLIegjaI3k= -github.com/dgraph-io/badger/v2 v2.2007.2/go.mod h1:26P/7fbL4kUZVEVKLAKXkBXKOydDmM2p1e+NhhnBCAE= +github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= +github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= -github.com/dgraph-io/ristretto v0.0.3 h1:jh22xisGBjrEVnRZ1DVTpBVQm0Xndu8sMl0CWDzSIBI= github.com/dgraph-io/ristretto v0.0.3/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= +github.com/dgraph-io/ristretto v0.1.0 h1:Jv3CGQHp9OjuMBSne1485aDpUkTKEcUqF+jm/LuerPI= +github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= @@ -258,45 +304,53 @@ github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WA github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= +github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/docker/cli v20.10.17+incompatible h1:eO2KS7ZFeov5UJeaDmIs1NFEDRf32PaqRpvoEkKBy5M= github.com/docker/cli v20.10.17+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.17+incompatible h1:JYCuMrWaVNophQTOrMMoSwudOVEfcegoZZrleKc1xwE= -github.com/docker/docker v20.10.17+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.19+incompatible h1:lzEmjivyNHFHMNAFLXORMBXyGIhw/UP4DvJwvyKYq64= +github.com/docker/docker v20.10.19+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498/go.mod h1:Mw6PkjjMXWbTj+nnj4s3QPXq1jaT0s5pC0iFD4+BOAA= +github.com/dop251/goja v0.0.0-20211011172007-d99e4b8cbf48/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= +github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b h1:HBah4D48ypg3J7Np4N+HY/ZR76fx3HEUGxDU6Uk39oQ= github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b/go.mod h1:7BvyPhdbLxMXIYTFPLsyJRFMsKmOZnQmzh6Gb+uquuM= -github.com/dvyukov/go-fuzz v0.0.0-20200318091601-be3528f3a813/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw= +github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= +github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= -github.com/edsrzf/mmap-go v0.0.0-20160512033002-935e0e8a636c/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/ethereum/go-ethereum v1.9.25/go.mod h1:vMkFiYLHI4tgPw4k2j4MHKoovchFE8plZ0M9VMk4/oM= github.com/ethereum/go-ethereum v1.10.4/go.mod h1:nEE0TP5MtxGzOMd7egIrbPJMQBnhVU3ELNxhBglIzhg= +github.com/ethereum/go-ethereum v1.10.17/go.mod h1:Lt5WzjM07XlXc95YzrhosmR4J9Ahd6X2wyEV2SvGhk0= github.com/ethereum/go-ethereum v1.10.22 h1:HbEgsDo1YTGIf4KB/NNpn+XH+PiNJXUZ9ksRxiqWyMc= github.com/ethereum/go-ethereum v1.10.22/go.mod h1:EYFyF19u3ezGLD4RqOkLq+ZCXzYbLoNDdZlMt7kyKFg= github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk= -github.com/fatih/color v1.3.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o= github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fjl/memsize v0.0.0-20180418122429-ca190fb6ffbc/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= @@ -311,13 +365,16 @@ github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4 github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= +github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= +github.com/gin-gonic/gin v1.7.0 h1:jGB9xAJQ12AIGNB4HguylppmDK1Am9ppF7XnGXXJuoU= github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= +github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -326,8 +383,6 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -339,14 +394,17 @@ github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dT github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= +github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= @@ -365,14 +423,21 @@ github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/gateway v1.1.0 h1:u0SuhL9+Il+UbjM9VIE3ntfRujKbvVpFvNB4HbjeVQ0= github.com/gogo/gateway v1.1.0/go.mod h1:S7rR8FRQyG3QFESeSv4l2WnsyzlCLG0CzBbUUo/mbic= +github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/golang-jwt/jwt/v4 v4.3.0 h1:kHL1vqdqWNfATmA0FNMdmZNMyZI1U6O31X4rlIPoBog= +github.com/golang-jwt/jwt/v4 v4.3.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= @@ -397,18 +462,17 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3-0.20201103224600-674baa8c7fc3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= +github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -418,16 +482,20 @@ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa h1:Q75Upo5UN4JbPFURXZ8nLKYUvF85dyFRop/vQ0Rv+64= github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -447,10 +515,15 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ= +github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -461,13 +534,12 @@ github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1-0.20190629185528-ae1634f6a989/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/graph-gophers/graphql-go v0.0.0-20191115155744-f33e81362277/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/graph-gophers/graphql-go v0.0.0-20201113091052-beb923fada29/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= +github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= @@ -488,8 +560,13 @@ github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoP github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= +github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-getter v1.6.1 h1:NASsgP4q6tL94WH6nJxKWj8As2H/2kop/bB1d8JMyRY= +github.com/hashicorp/go-getter v1.6.1/go.mod h1:IZCrswsZPeWv9IkVnLElzRU/gz/QPi6pZHn4tv6vbwA= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -497,16 +574,20 @@ github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iP github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= +github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= +github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= @@ -515,48 +596,51 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87 h1:uUjLpLt6bVvZ72SQc/B4dXcPBw4Vgd7soowdRl52qEM= -github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87/go.mod h1:XGsKKeXxeRr95aEOgipvluMPlgjr7dGlk9ZTWOjcUcg= +github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 h1:aSVUgRRRtOrZOC1fYmY9gV0e9z/Iu+xNVSASWjsuyGU= +github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3/go.mod h1:5PC6ZNPde8bBqU/ewGZig35+UIZtw9Ytxez8/q5ZyFE= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= -github.com/holiman/uint256 v1.1.1/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/holiman/uint256 v1.2.0 h1:gpSYcPLWGv4sG43I2mVLiDZCNDh/EpGjSk8tmtxitHM= github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo= +github.com/huin/goupnp v1.0.3-0.20220313090229-ca81a64b4204/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= -github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/improbable-eng/grpc-web v0.14.1 h1:NrN4PY71A6tAz2sKDvC5JCauENWp0ykG8Oq1H3cpFvw= -github.com/improbable-eng/grpc-web v0.14.1/go.mod h1:zEjGHa8DAlkoOXmswrNvhUGEYQA9UI7DhrGeHR1DMGU= +github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= +github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= +github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= +github.com/improbable-eng/grpc-web v0.15.0/go.mod h1:1sy9HKV4Jt9aEs9JSnkWlRJPuPtwNr0l57L4f878wP8= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= -github.com/influxdata/influxdb v1.2.3-0.20180221223340-01288bdb0883/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= +github.com/influxdata/influxdb-client-go/v2 v2.4.0/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk= github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= +github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= +github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= -github.com/informalsystems/tendermint v0.34.22 h1:Ww7cBQwiBhCAboiKp/MaNqVdcd47CNKSIEK4YxtfPkk= -github.com/informalsystems/tendermint v0.34.22/go.mod h1:YpP5vBEAKUT4g6oyfjKgFeZmdB/GjkJAxfF+cgmJg6Y= github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= +github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b h1:izTof8BKh/nE1wrKOrloNA5q4odOarjf+Xpe+4qow98= +github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= +github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= @@ -568,19 +652,17 @@ github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.1.1-0.20170430222011-975b5c4c7c21/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= +github.com/karalabe/usb v0.0.2/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d h1:Z+RDyXzjKE0i2sTjZ/b1uxiGtPhFy34Ou/Tk0qwN0kM= github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d/go.mod h1:JJNrCn9otv/2QP4D7SMJBgaleKpOf66PnW6F5WGNRIc= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -588,9 +670,11 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.2/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= @@ -599,30 +683,41 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg= +github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.10.6 h1:jbk+ZieJ0D7EVGJYpL9QTz7/YW6UHbmdnZWYyK5cdBs= -github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= +github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lucasjones/reggen v0.0.0-20180717132126-cdb49ff09d77/go.mod h1:5ELEyG+X8f+meRWHuqUOewBOhvHkl7M76pdGEansxW4= +github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= +github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= +github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= @@ -631,10 +726,13 @@ github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HN github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5-0.20180830101745-3fb116b82035/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= +github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= @@ -643,8 +741,8 @@ github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miguelmota/go-ethereum-hdwallet v0.1.1 h1:zdXGlHao7idpCBjEGTXThVAtMKs+IxAgivZ75xqkWK0= github.com/miguelmota/go-ethereum-hdwallet v0.1.1/go.mod h1:f9m9uXokAHA6WNoYOPjj4AqjJS5pquQRiYYj/XSyPYc= @@ -658,14 +756,18 @@ github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrk github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= +github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= +github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae h1:O4SWKdcHVCvYqyDV+9CJA1fcDN2L11Bule0iFy3YlAI= github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= @@ -675,7 +777,7 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= @@ -693,15 +795,14 @@ github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzE github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/neilotoole/errgroup v0.1.5/go.mod h1:Q2nLGf+594h0CLBs/Mbg6qOr7GtqDK7C2S41udRnToE= +github.com/neilotoole/errgroup v0.1.6/go.mod h1:Q2nLGf+594h0CLBs/Mbg6qOr7GtqDK7C2S41udRnToE= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.2-0.20190409134802-7e037d187b0c/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -712,13 +813,13 @@ github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9k github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 h1:rc3tiVYb5z54aKaDfakKn0dDjIyPpTtszkjuMzyt7ec= -github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= +github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= @@ -735,26 +836,27 @@ github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= github.com/ory/dockertest/v3 v3.10.0 h1:4K3z2VMe8Woe++invjaTB7VRyQXQy5UY+loujO4aNE4= github.com/ory/dockertest/v3 v3.10.0/go.mod h1:nr57ZbRWMqfsdGdFNLHz5jjNdDb7VVFnzAeW1n5N1Lg= -github.com/otiai10/copy v1.6.0 h1:IinKAryFFuPONZ7cm6T6E2QX/vcJwSnlaA5lfoaXIiQ= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= -github.com/pborman/uuid v0.0.0-20170112150404-1b00554d8222/go.mod h1:VyrYX9gd7irzKovcSS6BIIEwPRkP2Wm2m9ufcdFSJ34= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/peggyjv/gravity-bridge/module/v3 v3.0.0-20230425134518-c0644797435c h1:G/CujtUj/t5H3XCiUBK8ao+6n0T8pqsUX9amrIXwhCk= -github.com/peggyjv/gravity-bridge/module/v3 v3.0.0-20230425134518-c0644797435c/go.mod h1:6hJ61P6sBw3dVBBt+qMCXj2SJjq1Qf/1miKOtDaYWEI= +github.com/peggyjv/gravity-bridge/module/v4 v4.0.0-20231130211750-e1fa9902c9d9 h1:3aqB5WI8S1FtvsoU7HAM+35czUtDvEZJa1feK8/9xRg= +github.com/peggyjv/gravity-bridge/module/v4 v4.0.0-20231130211750-e1fa9902c9d9/go.mod h1:biwoVDKWggMYtzuUZOuqaJD8B40XHrXg3zOJjeAhT78= +github.com/peggyjv/gravity-bridge/module/v4 v4.0.0-20231211214131-bf2a31eb986f h1:xaVjypGpS3+VUXzEb2YFaTK632Id6jVWY1ViS4nljJs= +github.com/peggyjv/gravity-bridge/module/v4 v4.0.0-20231211214131-bf2a31eb986f/go.mod h1:n8Jj3X+w6q0Xz19w8feRRl2sfIGV+3FGU4anzXBQGbA= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg= -github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= +github.com/pelletier/go-toml/v2 v2.0.7 h1:muncTPStnKRos5dpVKULv2FVd4bMOhNePj9CjgDb8Us= +github.com/pelletier/go-toml/v2 v2.0.7/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= -github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= +github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU= +github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= @@ -775,17 +877,16 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.12.2 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34= -github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -794,20 +895,16 @@ github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt2 github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.34.0 h1:RBmGO9d/FVjqHT0yUGQwBJhkwKV+wPCn7KGpvfab0uE= -github.com/prometheus/common v0.34.0/go.mod h1:gB3sOl7P0TvJabZpLY5uQMpUqRCPPCyRLCZYc7JZTNE= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= @@ -825,17 +922,15 @@ github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRr github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= -github.com/rs/cors v0.0.0-20160617231935-a62a804a8a00/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/rs/xhandler v0.0.0-20160618193221-ed27b6fd6521/go.mod h1:RvLn4FgxWubrpZHtQLnOf6EwhN2hEMusxZOhcW9H3UQ= -github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs= -github.com/rs/zerolog v1.27.0/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= -github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= +github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc= +github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -849,7 +944,6 @@ github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KR github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shirou/gopsutil v2.20.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -889,8 +983,6 @@ github.com/spf13/viper v1.14.0 h1:Rg7d3Lo706X9tHsJMUjdiwMpHB7W8WnSVOssIY+JElU= github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4 h1:Gb2Tyox57NRNuZ2d3rmvB3pcmbu7O1RS3m8WRx7ilrg= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= -github.com/steakknife/bloomfilter v0.0.0-20180922174646-6819c0d2a570/go.mod h1:8OR4w3TdeIHIh1g6EMY5p0gVNOovcWC+1vpc7naMuAw= -github.com/steakknife/hamming v0.0.0-20180906055917-c99c65617cd3/go.mod h1:hpGUWaI9xL8pRQCTXQgocU38Qw1g0Us7n5PxxTwTCYU= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -909,27 +1001,27 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs= github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= -github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= -github.com/tendermint/btcd v0.1.1 h1:0VcxPfflS2zZ3RiOAHkBiFUcPvbtRj5O7zHmcJWHV7s= -github.com/tendermint/btcd v0.1.1/go.mod h1:DC6/m53jtQzr/NFmMNEu0rxf18/ktVoVtMrnDD5pN+U= -github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 h1:hqAk8riJvK4RMWx1aInLzndwxKalgi5rTqgfXxOxbEI= -github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15/go.mod h1:z4YtwM70uOnk8h0pjJYlj3zdYwi9l03By6iAIF5j/Pk= +github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= +github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= github.com/tendermint/tm-db v0.6.7 h1:fE00Cbl0jayAoqlExN6oyQJ7fR/ZtoVOmvPJ//+shu8= github.com/tendermint/tm-db v0.6.7/go.mod h1:byQDzFkZV1syXr/ReXS808NxA2xvyuuVgXOJ/088L6I= -github.com/tidwall/gjson v1.6.7/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= -github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/sjson v1.1.4/go.mod h1:wXpKXu8CtDjKAZ+3DrKY5ROCorDFahq8l0tey/Lx1fg= +github.com/tidwall/btree v1.5.0 h1:iV0yVY/frd7r6qGBXfEYs7DH0gTDgrKTrDjS7xt/IyQ= +github.com/tidwall/btree v1.5.0/go.mod h1:LGm8L/DZjPLmeWGjv5kFrY8dL4uVhMmzmmLYmsObdKE= +github.com/tidwall/gjson v1.12.1/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.14.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= +github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.4/go.mod h1:098SZ494YoMWPmMO6ct4dcFnqxwj9r/gF0Etp19pSNM= github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tinylib/msgp v1.1.5/go.mod h1:eQsjooMTnV42mHu917E26IogZ2930nFyBQdofk10Udg= github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= @@ -949,17 +1041,21 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ulikunitz/xz v0.5.8 h1:ERv8V6GKqVi23rgu5cj9pVfVzJbOqAY2Ntl88O6c2nQ= +github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/urfave/cli/v2 v2.10.2 h1:x3p8awjp/2arX+Nl/G2040AZpOCHS/eMJJ1/a+mye4Y= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vmihailenco/msgpack/v5 v5.1.4/go.mod h1:C5gboKD0TJPqWDTVTtrQNfRbiBwHZGo8UTqP/9/XvLI= -github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= -github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208/go.mod h1:IotVbo4F+mw0EzQ08zFqg7pK3FebNXpaMsRy2RT+Ees= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= @@ -976,8 +1072,10 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zondax/hid v0.9.0 h1:eiT3P6vNxAEVxXMw66eZUAAnU2zD33JBkfG/EnfAKl8= -github.com/zondax/hid v0.9.0/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= +github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.1 h1:Pip65OOl4iJ84WTpA4BKChvOufMhhbxED3BaihoZN4c= +github.com/zondax/ledger-go v0.14.1/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= @@ -990,6 +1088,8 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -1016,18 +1116,19 @@ golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= @@ -1036,11 +1137,12 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= +golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 h1:LGJsf5LRplCck6jUCH3dBL2dmycNruWNF5xugkSlfXw= +golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -1053,12 +1155,10 @@ golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20200801112145-973feb4309de/go.mod h1:skQtrUTUwhdJvXM/2KKJzY8pDgNr9I/FOMqDVRPBUS4= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191209134235-331c550502dd/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -1068,6 +1168,7 @@ golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1104,19 +1205,22 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1126,8 +1230,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1141,6 +1245,7 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1150,6 +1255,7 @@ golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1161,6 +1267,7 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1193,9 +1300,8 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1211,26 +1317,29 @@ golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220517195934-5e4e11fc645e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1240,16 +1349,19 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1277,7 +1389,6 @@ golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117012304-6edc0a871e69/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1307,6 +1418,7 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1314,6 +1426,7 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= @@ -1340,12 +1453,16 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.110.0 h1:l+rh0KYUooe9JGbGVx71tbFo4SMbMTXK3I3ia2QSEeU= +google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -1391,10 +1508,34 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 h1:a2S6M0+660BgMNl++4JPlcAO/CjkqYItDEZwkoDQK7c= -google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1408,14 +1549,17 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= @@ -1441,12 +1585,14 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= gotest.tools/v3 v3.3.0 h1:MfDY1b1/0xN1CyMlQDac0ziEy9zJQd9CXBRRDHw2jJo= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1457,9 +1603,13 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= +pgregory.net/rapid v0.5.3 h1:163N50IHFqr1phZens4FQOdPgfJscR7a562mjQqeo4M= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/integration_tests/auction_test.go b/integration_tests/auction_test.go index fdbde39a..9e19a3be 100644 --- a/integration_tests/auction_test.go +++ b/integration_tests/auction_test.go @@ -7,7 +7,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" "github.com/peggyjv/sommelier/v7/x/auction/types" cellarfees "github.com/peggyjv/sommelier/v7/x/cellarfees/types" ) @@ -17,7 +17,7 @@ func (s *IntegrationTestSuite) TestAuctionModule() { val := s.chain.validators[0] kb, err := val.keyring() s.Require().NoError(err) - val0ClientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.keyInfo.GetAddress()) + val0ClientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.address()) s.Require().NoError(err) auctionQueryClient := types.NewQueryClient(val0ClientCtx) @@ -33,10 +33,10 @@ func (s *IntegrationTestSuite) TestAuctionModule() { s.T().Logf("Create governance proposal to update some token prices") proposer := s.chain.proposer - proposerCtx, err := s.chain.clientContext("tcp://localhost:26657", proposer.keyring, "proposer", proposer.keyInfo.GetAddress()) + proposerCtx, err := s.chain.clientContext("tcp://localhost:26657", proposer.keyring, "proposer", proposer.address()) s.Require().NoError(err) orch := s.chain.orchestrators[0] - orchClientCtx, err := s.chain.clientContext("tcp://localhost:26657", orch.keyring, "orch", orch.keyInfo.GetAddress()) + orchClientCtx, err := s.chain.clientContext("tcp://localhost:26657", orch.keyring, "orch", orch.address()) s.Require().NoError(err) proposal := types.SetTokenPricesProposal{ @@ -61,7 +61,7 @@ func (s *IntegrationTestSuite) TestAuctionModule() { }, } - proposalMsg, err := govtypes.NewMsgSubmitProposal( + proposalMsg, err := govtypesv1beta1.NewMsgSubmitProposal( &proposal, sdk.Coins{ { @@ -69,7 +69,7 @@ func (s *IntegrationTestSuite) TestAuctionModule() { Amount: stakeAmount.Quo(sdk.NewInt(2)), }, }, - proposer.keyInfo.GetAddress(), + proposer.address(), ) s.Require().NoError(err, "Unable to create governance proposal") @@ -79,10 +79,10 @@ func (s *IntegrationTestSuite) TestAuctionModule() { s.Require().Zero(submitProposalResponse.Code, "raw log: %s", submitProposalResponse.RawLog) s.T().Log("Check proposal was submitted correctly") - govQueryClient := govtypes.NewQueryClient(orchClientCtx) + govQueryClient := govtypesv1beta1.NewQueryClient(orchClientCtx) s.Require().Eventually(func() bool { - proposalsQueryResponse, err := govQueryClient.Proposals(context.Background(), &govtypes.QueryProposalsRequest{}) + proposalsQueryResponse, err := govQueryClient.Proposals(context.Background(), &govtypesv1beta1.QueryProposalsRequest{}) if err != nil { s.T().Logf("error querying proposals: %e", err) return false @@ -90,7 +90,7 @@ func (s *IntegrationTestSuite) TestAuctionModule() { s.Require().NotEmpty(proposalsQueryResponse.Proposals) s.Require().Equal(uint64(1), proposalsQueryResponse.Proposals[0].ProposalId, "not proposal id 1") - s.Require().Equal(govtypes.StatusVotingPeriod, proposalsQueryResponse.Proposals[0].Status, "proposal not in voting period") + s.Require().Equal(govtypesv1beta1.StatusVotingPeriod, proposalsQueryResponse.Proposals[0].Status, "proposal not in voting period") return true }, time.Second*30, time.Second*5, "proposal submission was never found") @@ -99,10 +99,10 @@ func (s *IntegrationTestSuite) TestAuctionModule() { for _, val := range s.chain.validators { kr, err := val.keyring() s.Require().NoError(err) - localClientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kr, "val", val.keyInfo.GetAddress()) + localClientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kr, "val", val.address()) s.Require().NoError(err) - voteMsg := govtypes.NewMsgVote(val.keyInfo.GetAddress(), 1, govtypes.OptionYes) + voteMsg := govtypesv1beta1.NewMsgVote(val.address(), 1, govtypesv1beta1.OptionYes) voteResponse, err := s.chain.sendMsgs(*localClientCtx, voteMsg) s.Require().NoError(err) s.Require().Zero(voteResponse.Code, "Vote error: %s", voteResponse.RawLog) @@ -110,8 +110,8 @@ func (s *IntegrationTestSuite) TestAuctionModule() { s.T().Log("Waiting for proposal to be approved..") s.Require().Eventually(func() bool { - proposalQueryResponse, _ := govQueryClient.Proposal(context.Background(), &govtypes.QueryProposalRequest{ProposalId: 1}) - return govtypes.StatusPassed == proposalQueryResponse.Proposal.Status + proposalQueryResponse, _ := govQueryClient.Proposal(context.Background(), &govtypesv1beta1.QueryProposalRequest{ProposalId: 1}) + return govtypesv1beta1.StatusPassed == proposalQueryResponse.Proposal.Status }, time.Second*30, time.Second*5, "proposal was never accepted") s.T().Log("Proposal approved!") @@ -120,7 +120,7 @@ func (s *IntegrationTestSuite) TestAuctionModule() { s.Require().NoError(err) s.T().Logf("Auction module token balances before bids %v", balanceRes.Balances) - bidderAddress := proposer.keyInfo.GetAddress().String() + bidderAddress := proposer.address().String() initialBidderBalanceRes, err := bankQueryClient.AllBalances(context.Background(), &banktypes.QueryAllBalancesRequest{Address: bidderAddress}) s.Require().NoError(err) found, initialBidderSomm := balanceOfDenom(initialBidderBalanceRes.Balances, testDenom) diff --git a/integration_tests/cellarfees_test.go b/integration_tests/cellarfees_test.go index cd40708f..3c440603 100644 --- a/integration_tests/cellarfees_test.go +++ b/integration_tests/cellarfees_test.go @@ -26,7 +26,7 @@ func (s *IntegrationTestSuite) TestCellarFees() { ethClient, err := ethclient.Dial(fmt.Sprintf("http://%s", s.ethResource.GetHostPort("8545/tcp"))) s.Require().NoError(err) - clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.keyInfo.GetAddress()) + clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.address()) s.Require().NoError(err) auctionQueryClient := auctiontypes.NewQueryClient(clientCtx) @@ -203,12 +203,12 @@ func (s *IntegrationTestSuite) TestCellarFees() { orch := s.chain.orchestrators[0] bidRequest1 := auctiontypes.MsgSubmitBidRequest{ AuctionId: alphaAuctionID, - Signer: orch.keyInfo.GetAddress().String(), + Signer: orch.address().String(), MaxBidInUsomm: sdk.NewCoin(testDenom, sdk.NewIntFromUint64(300000)), SaleTokenMinimumAmount: sdk.NewCoin(alphaFeeDenom, sdk.NewIntFromUint64(150000)), } - orchClientCtx, err := s.chain.clientContext("tcp://localhost:26657", orch.keyring, "orch", orch.keyInfo.GetAddress()) + orchClientCtx, err := s.chain.clientContext("tcp://localhost:26657", orch.keyring, "orch", orch.address()) s.Require().NoError(err, "Failed to create client for orchestrator") _, err = s.chain.sendMsgs(*orchClientCtx, &bidRequest1) s.Require().NoError(err, "Failed to submit bid") @@ -267,7 +267,7 @@ func (s *IntegrationTestSuite) TestCellarFees() { s.T().Log("Distribution rate is linear. Increasing the reward supply by bidding on the BETA auction") bidRequest2 := auctiontypes.MsgSubmitBidRequest{ AuctionId: betaAuctionID, - Signer: orch.keyInfo.GetAddress().String(), + Signer: orch.address().String(), MaxBidInUsomm: sdk.NewCoin(testDenom, sdk.NewIntFromUint64(1400000)), SaleTokenMinimumAmount: sdk.NewCoin(betaFeeDenom, sdk.NewIntFromUint64(140000)), } @@ -301,7 +301,7 @@ func (s *IntegrationTestSuite) TestCellarFees() { rewardRateBaseline := sdk.ZeroDec() rewardsRes, err := distQueryClient.DelegationRewards(ctx, &disttypes.QueryDelegationRewardsRequest{ - DelegatorAddress: val.keyInfo.GetAddress().String(), + DelegatorAddress: val.address().String(), ValidatorAddress: "sommvaloper199sjfhaw3hempwzljw0lgwsm9kk6r8e5ef3hmp", }) s.Require().NoError(err) @@ -312,7 +312,7 @@ func (s *IntegrationTestSuite) TestCellarFees() { time.Sleep(time.Second * 12) rewardsRes, err = distQueryClient.DelegationRewards(ctx, &disttypes.QueryDelegationRewardsRequest{ - DelegatorAddress: val.keyInfo.GetAddress().String(), + DelegatorAddress: val.address().String(), ValidatorAddress: "sommvaloper199sjfhaw3hempwzljw0lgwsm9kk6r8e5ef3hmp", }) s.Require().NoError(err) diff --git a/integration_tests/chain.go b/integration_tests/chain.go index f8191067..54677cb4 100644 --- a/integration_tests/chain.go +++ b/integration_tests/chain.go @@ -4,7 +4,6 @@ import ( "fmt" "os" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" corktypes "github.com/peggyjv/sommelier/v7/x/cork/types" "github.com/cosmos/cosmos-sdk/client" @@ -22,8 +21,9 @@ import ( "github.com/cosmos/cosmos-sdk/types/tx/signing" sdkTx "github.com/cosmos/cosmos-sdk/x/auth/tx" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" "github.com/peggyjv/sommelier/v7/app" "github.com/peggyjv/sommelier/v7/app/params" tmrand "github.com/tendermint/tendermint/libs/rand" @@ -149,14 +149,14 @@ func (c *chain) createAndInitProposerWithMnemonic(mnemonic string) error { hdPath := hd.CreateHDPath(sdk.CoinType, 1, 0) // create keys - info, kb, err := createMemoryKeyFromMnemonic("proposer", mnemonic, "", hdPath) + record, kb, err := createMemoryKeyFromMnemonic("proposer", mnemonic, "", hdPath) if err != nil { return err } proposer := proposer{} - proposer.keyInfo = *info + proposer.keyRecord = *record proposer.mnemonic = mnemonic proposer.keyring = kb @@ -186,12 +186,12 @@ func (c *chain) createAndInitOrchestratorsWithMnemonics(mnemonics []string) erro orchestrator := c.createOrchestrator(i) // create keys - info, kb, err := createMemoryKeyFromMnemonic("orch", mnemonics[i], "", hdPath) + record, kb, err := createMemoryKeyFromMnemonic("orch", mnemonics[i], "", hdPath) if err != nil { return err } - orchestrator.keyInfo = *info + orchestrator.keyRecord = *record orchestrator.mnemonic = mnemonics[i] orchestrator.keyring = kb @@ -222,7 +222,7 @@ func (c *chain) clientContext(nodeURI string, kb *keyring.Keyring, fromName stri &stakingtypes.MsgCreateValidator{}, &gravitytypes.MsgDelegateKeys{}, ) - interfaceRegistry.RegisterImplementations((*govtypes.Content)(nil), + interfaceRegistry.RegisterImplementations((*govtypesv1beta1.Content)(nil), &corktypes.AddManagedCellarIDsProposal{}, &corktypes.RemoveManagedCellarIDsProposal{}, &corktypes.ScheduledCorkProposal{}, @@ -278,7 +278,6 @@ func (c *chain) sendMsgs(clientCtx client.Context, msgs ...sdk.Msg) (*sdk.TxResp WithSignMode(signing.SignMode_SIGN_MODE_DIRECT) fromAddr := clientCtx.GetFromAddress() - fromName := clientCtx.GetFromName() if err := txf.AccountRetriever().EnsureExists(clientCtx, fromAddr); err != nil { return nil, err @@ -300,29 +299,24 @@ func (c *chain) sendMsgs(clientCtx client.Context, msgs ...sdk.Msg) (*sdk.TxResp } } - txf.WithFees("246913560usomm") + txf = txf.WithFees("246913560usomm") - txb, err := tx.BuildUnsignedTx(txf, msgs...) + err := tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msgs...) if err != nil { return nil, err } - txb.SetFeeAmount(sdk.Coins{{Denom: "usomm", Amount: sdk.NewInt(feeAmount)}}) - - err = tx.Sign(txf, fromName, txb, false) - if err != nil { - return nil, err - } - - txBytes, err := clientCtx.TxConfig.TxEncoder()(txb.GetTx()) + resBytes := []byte{} + _, err = clientCtx.Input.Read(resBytes) if err != nil { return nil, err } - res, err := clientCtx.BroadcastTx(txBytes) + var res sdk.TxResponse + err = cdc.Unmarshal(resBytes, &res) if err != nil { return nil, err } - return res, nil + return &res, nil } diff --git a/integration_tests/cork_test.go b/integration_tests/cork_test.go index 4db82596..275d81a6 100644 --- a/integration_tests/cork_test.go +++ b/integration_tests/cork_test.go @@ -5,8 +5,8 @@ import ( "fmt" "strings" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" + "cosmossdk.io/math" "github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/common" @@ -61,7 +61,7 @@ const CounterABI = ` func ABIEncodedGet() []byte { encodedCall, err := abi.JSON(strings.NewReader(CounterABI)) if err != nil { - panic(sdkerrors.Wrap(err, "bad ABI definition in code")) + panic(errorsmod.Wrap(err, "bad ABI definition in code")) } abiEncodedCall, err := encodedCall.Pack("get") @@ -75,7 +75,7 @@ func ABIEncodedGet() []byte { func ABIEncodedInc() []byte { encodedCall, err := abi.JSON(strings.NewReader(CounterABI)) if err != nil { - panic(sdkerrors.Wrap(err, "bad ABI definition in code")) + panic(errorsmod.Wrap(err, "bad ABI definition in code")) } abiEncodedCall, err := encodedCall.Pack("inc") @@ -86,7 +86,7 @@ func ABIEncodedInc() []byte { return abiEncodedCall } -func (s *IntegrationTestSuite) getCurrentCount() (*sdk.Int, error) { +func (s *IntegrationTestSuite) getCurrentCount() (*math.Int, error) { ethClient, err := ethclient.Dial(fmt.Sprintf("http://%s", s.ethResource.GetHostPort("8545/tcp"))) if err != nil { return nil, err diff --git a/integration_tests/ethereum.go b/integration_tests/ethereum.go index fb04af4d..38cd7283 100644 --- a/integration_tests/ethereum.go +++ b/integration_tests/ethereum.go @@ -8,14 +8,15 @@ import ( "math/big" "strings" + errorsmod "cosmossdk.io/errors" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/common" ethereumtypes "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethclient" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" ) type EthereumConfig struct { @@ -143,11 +144,11 @@ const stateLastValsetNonceABIJSON = `[ func packCall(abiString, method string, args []interface{}) []byte { encodedCall, err := abi.JSON(strings.NewReader(abiString)) if err != nil { - panic(sdkerrors.Wrap(err, "bad ABI definition in code")) + panic(errorsmod.Wrap(err, "bad ABI definition in code")) } abiEncodedCall, err := encodedCall.Pack(method, args...) if err != nil { - panic(sdkerrors.Wrap(err, "error packing calling")) + panic(errorsmod.Wrap(err, "error packing calling")) } return abiEncodedCall } @@ -161,7 +162,7 @@ func PackDeployERC20(denom string, name string, symbol string, decimals uint8) [ }) } -func PackSendToCosmos(tokenContract common.Address, destination sdk.AccAddress, amount sdk.Int) []byte { +func PackSendToCosmos(tokenContract common.Address, destination sdk.AccAddress, amount math.Int) []byte { destinationBytes, _ := byteArrayToFixByteArray(destination.Bytes()) return packCall(gravitytypes.SendToCosmosABIJSON, "sendToCosmos", []interface{}{ tokenContract, @@ -198,7 +199,7 @@ func PackLastValsetNonce() []byte { return packCall(stateLastValsetNonceABIJSON, "state_lastValsetNonce", []interface{}{}) } -func UnpackEthUInt(bz []byte) sdk.Int { +func UnpackEthUInt(bz []byte) math.Int { output := big.NewInt(0) output.SetBytes(bz) diff --git a/integration_tests/incentives_test.go b/integration_tests/incentives_test.go index 467c497f..ccbb9abf 100644 --- a/integration_tests/incentives_test.go +++ b/integration_tests/incentives_test.go @@ -9,7 +9,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/bech32" disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" paramsproposal "github.com/cosmos/cosmos-sdk/x/params/types/proposal" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" @@ -23,16 +23,16 @@ func (s *IntegrationTestSuite) TestIncentives() { defer cancel() val := s.chain.validators[0] - s.T().Logf("validator %s", val.keyInfo.GetAddress().String()) + s.T().Logf("validator %s", val.address().String()) kb, err := val.keyring() s.Require().NoError(err) - _, bytes, err := bech32.DecodeAndConvert(val.keyInfo.GetAddress().String()) + _, bytes, err := bech32.DecodeAndConvert(val.address().String()) s.Require().NoError(err) valOperatorAddress, err := bech32.ConvertAndEncode("sommvaloper", bytes) s.Require().NoError(err) - clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.keyInfo.GetAddress()) + clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.address()) s.Require().NoError(err) incentivesQueryClient := incentivestypes.NewQueryClient(clientCtx) @@ -67,10 +67,10 @@ func (s *IntegrationTestSuite) TestIncentives() { s.T().Log("submitting proposal to enable incentives") proposer := s.chain.proposer - proposerCtx, err := s.chain.clientContext("tcp://localhost:26657", proposer.keyring, "proposer", proposer.keyInfo.GetAddress()) + proposerCtx, err := s.chain.clientContext("tcp://localhost:26657", proposer.keyring, "proposer", proposer.address()) s.Require().NoError(err) orch := s.chain.orchestrators[0] - orchClientCtx, err := s.chain.clientContext("tcp://localhost:26657", orch.keyring, "orch", orch.keyInfo.GetAddress()) + orchClientCtx, err := s.chain.clientContext("tcp://localhost:26657", orch.keyring, "orch", orch.address()) s.Require().NoError(err) // Collin: test takes about ~110 blocks to reach the cutoff check at the end on my machine. @@ -95,7 +95,7 @@ func (s *IntegrationTestSuite) TestIncentives() { }, } - proposalMsg, err := govtypes.NewMsgSubmitProposal( + proposalMsg, err := govtypesv1beta1.NewMsgSubmitProposal( &proposal, sdk.Coins{ { @@ -103,7 +103,7 @@ func (s *IntegrationTestSuite) TestIncentives() { Amount: stakeAmount.Quo(sdk.NewInt(2)), }, }, - proposer.keyInfo.GetAddress(), + proposer.address(), ) s.Require().NoError(err, "Unable to create governance proposal") submitProposalResponse, err := s.chain.sendMsgs(*proposerCtx, proposalMsg) @@ -111,10 +111,10 @@ func (s *IntegrationTestSuite) TestIncentives() { s.Require().Zero(submitProposalResponse.Code, "raw log: %s", submitProposalResponse.RawLog) s.T().Log("check proposal was submitted correctly") - govQueryClient := govtypes.NewQueryClient(orchClientCtx) + govQueryClient := govtypesv1beta1.NewQueryClient(orchClientCtx) s.Require().Eventually(func() bool { - proposalsQueryResponse, err := govQueryClient.Proposals(context.Background(), &govtypes.QueryProposalsRequest{}) + proposalsQueryResponse, err := govQueryClient.Proposals(context.Background(), &govtypesv1beta1.QueryProposalsRequest{}) if err != nil { s.T().Logf("error querying proposals: %e", err) return false @@ -122,7 +122,7 @@ func (s *IntegrationTestSuite) TestIncentives() { s.Require().NotEmpty(proposalsQueryResponse.Proposals) s.Require().Equal(uint64(1), proposalsQueryResponse.Proposals[0].ProposalId, "not proposal id 1") - s.Require().Equal(govtypes.StatusVotingPeriod, proposalsQueryResponse.Proposals[0].Status, "proposal not in voting period") + s.Require().Equal(govtypesv1beta1.StatusVotingPeriod, proposalsQueryResponse.Proposals[0].Status, "proposal not in voting period") return true }, time.Second*30, time.Second*5, "proposal submission was never found") @@ -131,10 +131,10 @@ func (s *IntegrationTestSuite) TestIncentives() { for _, val := range s.chain.validators { kr, err := val.keyring() s.Require().NoError(err) - localClientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kr, "val", val.keyInfo.GetAddress()) + localClientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kr, "val", val.address()) s.Require().NoError(err) - voteMsg := govtypes.NewMsgVote(val.keyInfo.GetAddress(), 1, govtypes.OptionYes) + voteMsg := govtypesv1beta1.NewMsgVote(val.address(), 1, govtypesv1beta1.OptionYes) voteResponse, err := s.chain.sendMsgs(*localClientCtx, voteMsg) s.Require().NoError(err) s.Require().Zero(voteResponse.Code, "Vote error: %s", voteResponse.RawLog) @@ -142,8 +142,8 @@ func (s *IntegrationTestSuite) TestIncentives() { s.T().Log("waiting for proposal to be approved..") s.Require().Eventually(func() bool { - proposalQueryResponse, _ := govQueryClient.Proposal(context.Background(), &govtypes.QueryProposalRequest{ProposalId: 1}) - return govtypes.StatusPassed == proposalQueryResponse.Proposal.Status + proposalQueryResponse, _ := govQueryClient.Proposal(context.Background(), &govtypesv1beta1.QueryProposalRequest{ProposalId: 1}) + return govtypesv1beta1.StatusPassed == proposalQueryResponse.Proposal.Status }, time.Second*30, time.Second*5, "proposal was never accepted") s.T().Log("proposal approved!") @@ -161,7 +161,7 @@ func (s *IntegrationTestSuite) TestIncentives() { actualDistributionPerBlock := (afterAmount.Sub(beforeAmount)).Quo(sdk.NewDec(afterHeight - beforeHeight)).Mul(sdk.NewDec(int64(len(s.chain.validators)))) s.T().Logf("before: %s, after: %s, blocks %d-%d", beforeAmount.String(), afterAmount.String(), beforeHeight, afterHeight) s.Require().True(afterAmount.GT(beforeAmount)) - s.Require().Equal(expectedDistributionPerBlock.Amount.ToDec(), actualDistributionPerBlock) + s.Require().Equal(sdk.NewDecFromInt(expectedDistributionPerBlock.Amount), actualDistributionPerBlock) s.T().Log("verifying APY query returns expected value") mintParams, err := mintQueryClient.Params(ctx, &minttypes.QueryParamsRequest{}) @@ -170,7 +170,7 @@ func (s *IntegrationTestSuite) TestIncentives() { s.Require().NoError(err) tokensTotal := stakingPool.Pool.BondedTokens.Add(stakingPool.Pool.NotBondedTokens) // assumes bonded ratio is 100% - expectedAPY := actualDistributionPerBlock.Mul(sdk.NewDec(int64(mintParams.Params.BlocksPerYear))).Quo(tokensTotal.ToDec()) + expectedAPY := actualDistributionPerBlock.Mul(sdk.NewDec(int64(mintParams.Params.BlocksPerYear))).Quo(sdk.NewDecFromInt(tokensTotal)) incentivesAPYRes, err = incentivesQueryClient.QueryAPY(ctx, &incentivestypes.QueryAPYRequest{}) s.Require().NoError(err) APY, err := sdk.NewDecFromStr(incentivesAPYRes.Apy[:10]) diff --git a/integration_tests/keys.go b/integration_tests/keys.go index 233ac690..63bebe57 100644 --- a/integration_tests/keys.go +++ b/integration_tests/keys.go @@ -23,8 +23,8 @@ func createMnemonic() (string, error) { //nolint:unused return mnemonic, nil } -func createMemoryKeyFromMnemonic(name string, mnemonic string, passphrase string, hdPath *hd.BIP44Params) (*keyring.Info, *keyring.Keyring, error) { - kb, err := keyring.New("testnet", keyring.BackendMemory, "", nil) +func createMemoryKeyFromMnemonic(name string, mnemonic string, passphrase string, hdPath *hd.BIP44Params) (*keyring.Record, *keyring.Keyring, error) { + kb, err := keyring.New("testnet", keyring.BackendMemory, "", nil, cdc) if err != nil { return nil, nil, err } @@ -46,7 +46,7 @@ func createMemoryKeyFromMnemonic(name string, mnemonic string, passphrase string return nil, nil, err } - return &account, &kb, nil + return account, &kb, nil } func ethereumKeyFromMnemonic(mnemonic string) (*ethereumKey, error) { diff --git a/integration_tests/orchestrator.go b/integration_tests/orchestrator.go index a191df91..483b4771 100644 --- a/integration_tests/orchestrator.go +++ b/integration_tests/orchestrator.go @@ -4,15 +4,25 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/crypto/keyring" + sdk "github.com/cosmos/cosmos-sdk/types" ) type orchestrator struct { - index int - mnemonic string - keyInfo keyring.Info - keyring *keyring.Keyring + index int + mnemonic string + keyRecord keyring.Record + keyring *keyring.Keyring } func (o *orchestrator) instanceName() string { return fmt.Sprintf("orchestrator%d", o.index) } + +func (o *orchestrator) address() sdk.AccAddress { + addr, err := o.keyRecord.GetAddress() + if err != nil { + panic(err) + } + + return addr +} diff --git a/integration_tests/proposer.go b/integration_tests/proposer.go index 23bf5f33..26620d5e 100644 --- a/integration_tests/proposer.go +++ b/integration_tests/proposer.go @@ -2,10 +2,20 @@ package integration_tests import ( "github.com/cosmos/cosmos-sdk/crypto/keyring" + sdk "github.com/cosmos/cosmos-sdk/types" ) type proposer struct { - mnemonic string - keyInfo keyring.Info - keyring *keyring.Keyring + mnemonic string + keyRecord keyring.Record + keyring *keyring.Keyring +} + +func (o *proposer) address() sdk.AccAddress { + addr, err := o.keyRecord.GetAddress() + if err != nil { + panic(err) + } + + return addr } diff --git a/integration_tests/scheduled_cork_test.go b/integration_tests/scheduled_cork_test.go index 7b50e808..51f94677 100644 --- a/integration_tests/scheduled_cork_test.go +++ b/integration_tests/scheduled_cork_test.go @@ -6,9 +6,9 @@ import ( "time" sdk "github.com/cosmos/cosmos-sdk/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" "github.com/ethereum/go-ethereum/common" - gbtypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + gbtypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" "github.com/peggyjv/sommelier/v7/x/cork/types" ) @@ -16,7 +16,7 @@ func (s *IntegrationTestSuite) TestScheduledCork() { s.Run("Bring up chain, and schedule a cork call to ethereum", func() { s.T().Log("submitting a scheduled cork porposal with unsupported cellar ID to verify rejection") proposer := s.chain.proposer - proposerCtx, err := s.chain.clientContext("tcp://localhost:26657", proposer.keyring, "proposer", proposer.keyInfo.GetAddress()) + proposerCtx, err := s.chain.clientContext("tcp://localhost:26657", proposer.keyring, "proposer", proposer.address()) s.Require().NoError(err) invalidProposal := types.ScheduledCorkProposal{ Title: "invalid proposal", @@ -24,7 +24,7 @@ func (s *IntegrationTestSuite) TestScheduledCork() { TargetContractAddress: "0x0000000000000000000000000000000000000000", ContractCallProtoJson: "{\"thing\": 1}", } - proposalMsg, err := govtypes.NewMsgSubmitProposal( + proposalMsg, err := govtypesv1beta1.NewMsgSubmitProposal( &invalidProposal, sdk.Coins{ { @@ -32,13 +32,17 @@ func (s *IntegrationTestSuite) TestScheduledCork() { Amount: stakeAmount.Quo(sdk.NewInt(2)), }, }, - proposer.keyInfo.GetAddress(), + proposer.address(), ) s.Require().NoError(err, "unable to create governance proposal") submitProposalResponse, err := s.chain.sendMsgs(*proposerCtx, proposalMsg) s.Require().NoError(err) - s.Require().Equal(uint32(5), submitProposalResponse.Code, "raw log: %s", submitProposalResponse.RawLog) + s.Require().Zero(submitProposalResponse.Code, "raw log: %s", submitProposalResponse.RawLog) + govQueryClient := govtypesv1beta1.NewQueryClient(proposerCtx) + proposalsQueryResponse, err := govQueryClient.Proposals(context.Background(), &govtypesv1beta1.QueryProposalsRequest{}) + s.Require().NoError(err) + s.Require().Empty(proposalsQueryResponse.Proposals) s.T().Log("proposal rejected as expected!") // makes sure ethereum can be contacted and counter contract is working @@ -51,7 +55,7 @@ func (s *IntegrationTestSuite) TestScheduledCork() { s.Require().Eventuallyf(func() bool { kb, err := val.keyring() s.Require().NoError(err) - clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.keyInfo.GetAddress()) + clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.address()) s.Require().NoError(err) queryClient := types.NewQueryClient(clientCtx) @@ -72,7 +76,7 @@ func (s *IntegrationTestSuite) TestScheduledCork() { Ids: []string{counterContract.Hex()}, }, } - proposalMsg, err = govtypes.NewMsgSubmitProposal( + proposalMsg, err = govtypesv1beta1.NewMsgSubmitProposal( &proposal, sdk.Coins{ { @@ -80,7 +84,7 @@ func (s *IntegrationTestSuite) TestScheduledCork() { Amount: stakeAmount.Quo(sdk.NewInt(2)), }, }, - proposer.keyInfo.GetAddress(), + proposer.address(), ) s.Require().NoError(err, "unable to create governance proposal") @@ -90,21 +94,20 @@ func (s *IntegrationTestSuite) TestScheduledCork() { s.Require().Zero(submitProposalResponse.Code, "raw log: %s", submitProposalResponse.RawLog) s.T().Log("check proposal was submitted correctly") - govQueryClient := govtypes.NewQueryClient(proposerCtx) - proposalsQueryResponse, err := govQueryClient.Proposals(context.Background(), &govtypes.QueryProposalsRequest{}) + proposalsQueryResponse, err = govQueryClient.Proposals(context.Background(), &govtypesv1beta1.QueryProposalsRequest{}) s.Require().NoError(err) s.Require().NotEmpty(proposalsQueryResponse.Proposals) s.Require().Equal(uint64(1), proposalsQueryResponse.Proposals[0].ProposalId, "not proposal id 1") - s.Require().Equal(govtypes.StatusVotingPeriod, proposalsQueryResponse.Proposals[0].Status, "proposal not in voting period") + s.Require().Equal(govtypesv1beta1.StatusVotingPeriod, proposalsQueryResponse.Proposals[0].Status, "proposal not in voting period") s.T().Log("vote for proposal allowing contract") for _, val := range s.chain.validators { kr, err := val.keyring() s.Require().NoError(err) - clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kr, "val", val.keyInfo.GetAddress()) + clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kr, "val", val.address()) s.Require().NoError(err) - voteMsg := govtypes.NewMsgVote(val.keyInfo.GetAddress(), 1, govtypes.OptionYes) + voteMsg := govtypesv1beta1.NewMsgVote(val.address(), 1, govtypesv1beta1.OptionYes) voteResponse, err := s.chain.sendMsgs(*clientCtx, voteMsg) s.Require().NoError(err) s.Require().Zero(voteResponse.Code, "vote error: %s", voteResponse.RawLog) @@ -112,9 +115,9 @@ func (s *IntegrationTestSuite) TestScheduledCork() { s.T().Log("wait for proposal to be approved") s.Require().Eventuallyf(func() bool { - proposalQueryResponse, err := govQueryClient.Proposal(context.Background(), &govtypes.QueryProposalRequest{ProposalId: 1}) + proposalQueryResponse, err := govQueryClient.Proposal(context.Background(), &govtypesv1beta1.QueryProposalRequest{ProposalId: 1}) s.Require().NoError(err) - return govtypes.StatusPassed == proposalQueryResponse.Proposal.Status + return govtypesv1beta1.StatusPassed == proposalQueryResponse.Proposal.Status }, time.Second*30, time.Second*5, "proposal was never accepted") s.T().Log("verify that contract exists in allowed addresses") @@ -122,7 +125,7 @@ func (s *IntegrationTestSuite) TestScheduledCork() { s.Require().Eventuallyf(func() bool { kb, err := val.keyring() s.Require().NoError(err) - clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.keyInfo.GetAddress()) + clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.address()) s.Require().NoError(err) queryClient := types.NewQueryClient(clientCtx) @@ -161,13 +164,13 @@ func (s *IntegrationTestSuite) TestScheduledCork() { for i, orch := range s.chain.orchestrators { i := i orch := orch - clientCtx, err := s.chain.clientContext("tcp://localhost:26657", orch.keyring, "orch", orch.keyInfo.GetAddress()) + clientCtx, err := s.chain.clientContext("tcp://localhost:26657", orch.keyring, "orch", orch.address()) s.Require().NoError(err) corkMsg, err := types.NewMsgScheduleCorkRequest( ABIEncodedInc(), counterContract, uint64(targetBlockHeight), - orch.keyInfo.GetAddress()) + orch.address()) s.Require().NoError(err, "failed to construct cork") response, err := s.chain.sendMsgs(*clientCtx, corkMsg) s.Require().NoError(err, "failed to send cork to node %d", i) @@ -191,7 +194,7 @@ func (s *IntegrationTestSuite) TestScheduledCork() { s.Require().Eventuallyf(func() bool { kb, err := val.keyring() s.Require().NoError(err) - clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.keyInfo.GetAddress()) + clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.address()) s.Require().NoError(err) node, err := clientCtx.GetNode() @@ -252,7 +255,7 @@ func (s *IntegrationTestSuite) TestScheduledCork() { ContractCallProtoJson: "{\"cellar_id\":\"0x123801a7D398351b8bE11C439e05C5B3259aeC9B\",\"cellar_v1\":{\"some_fuction\":{\"function_args\":{}},\"block_height\":12345}}", BlockHeight: uint64(targetBlockHeight), } - corkProposalMsg, err := govtypes.NewMsgSubmitProposal( + corkProposalMsg, err := govtypesv1beta1.NewMsgSubmitProposal( &corkProposal, sdk.Coins{ { @@ -260,7 +263,7 @@ func (s *IntegrationTestSuite) TestScheduledCork() { Amount: stakeAmount.Quo(sdk.NewInt(2)), }, }, - proposer.keyInfo.GetAddress(), + proposer.address(), ) s.Require().NoError(err, "Unable to create governance proposal") @@ -272,7 +275,7 @@ func (s *IntegrationTestSuite) TestScheduledCork() { s.T().Log("Check proposal was submitted correctly") s.Require().Eventually(func() bool { - proposalsQueryResponse, err := govQueryClient.Proposals(context.Background(), &govtypes.QueryProposalsRequest{}) + proposalsQueryResponse, err := govQueryClient.Proposals(context.Background(), &govtypesv1beta1.QueryProposalsRequest{}) if err != nil { s.T().Logf("error querying proposals: %e", err) return false @@ -280,7 +283,7 @@ func (s *IntegrationTestSuite) TestScheduledCork() { s.Require().NotEmpty(proposalsQueryResponse.Proposals) s.Require().Equal(uint64(2), proposalsQueryResponse.Proposals[1].ProposalId, "not proposal id 2") - s.Require().Equal(govtypes.StatusVotingPeriod, proposalsQueryResponse.Proposals[1].Status, "proposal not in voting period") + s.Require().Equal(govtypesv1beta1.StatusVotingPeriod, proposalsQueryResponse.Proposals[1].Status, "proposal not in voting period") return true }, time.Second*30, time.Second*5, "proposal submission was never found") @@ -289,10 +292,10 @@ func (s *IntegrationTestSuite) TestScheduledCork() { for _, val := range s.chain.validators { kr, err := val.keyring() s.Require().NoError(err) - localClientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kr, "val", val.keyInfo.GetAddress()) + localClientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kr, "val", val.address()) s.Require().NoError(err) - voteMsg := govtypes.NewMsgVote(val.keyInfo.GetAddress(), 2, govtypes.OptionYes) + voteMsg := govtypesv1beta1.NewMsgVote(val.address(), 2, govtypesv1beta1.OptionYes) voteResponse, err := s.chain.sendMsgs(*localClientCtx, voteMsg) s.Require().NoError(err) s.Require().Zero(voteResponse.Code, "Vote error: %s", voteResponse.RawLog) @@ -300,8 +303,8 @@ func (s *IntegrationTestSuite) TestScheduledCork() { s.T().Log("Waiting for proposal to be approved..") s.Require().Eventually(func() bool { - proposalQueryResponse, _ := govQueryClient.Proposal(context.Background(), &govtypes.QueryProposalRequest{ProposalId: 2}) - return govtypes.StatusPassed == proposalQueryResponse.Proposal.Status + proposalQueryResponse, _ := govQueryClient.Proposal(context.Background(), &govtypesv1beta1.QueryProposalRequest{ProposalId: 2}) + return govtypesv1beta1.StatusPassed == proposalQueryResponse.Proposal.Status }, time.Second*30, time.Second*5, "proposal was never accepted") s.T().Log("Proposal approved!") }) diff --git a/integration_tests/setup_test.go b/integration_tests/setup_test.go index edcb7e17..df55e24a 100644 --- a/integration_tests/setup_test.go +++ b/integration_tests/setup_test.go @@ -16,12 +16,13 @@ import ( authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" "github.com/peggyjv/sommelier/v7/app/params" auctiontypes "github.com/peggyjv/sommelier/v7/x/auction/types" cellarfeestypes "github.com/peggyjv/sommelier/v7/x/cellarfees/types" corktypes "github.com/peggyjv/sommelier/v7/x/cork/types" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/ethclient" @@ -160,20 +161,20 @@ func (s *IntegrationTestSuite) initNodes(nodeCount int) { //nolint:unused val0ConfigDir := s.chain.validators[0].configDir() for _, val := range s.chain.validators { s.Require().NoError( - addGenesisAccount(val0ConfigDir, "", initBalanceStr, val.keyInfo.GetAddress()), + addGenesisAccount(val0ConfigDir, "", initBalanceStr, val.address()), ) } // add orchestrator accounts to genesis file for _, orch := range s.chain.orchestrators { s.Require().NoError( - addGenesisAccount(val0ConfigDir, "", initBalanceStr, orch.keyInfo.GetAddress()), + addGenesisAccount(val0ConfigDir, "", initBalanceStr, orch.address()), ) } // add proposer account to genesis file (so it can bid) s.Require().NoError( - addGenesisAccount(val0ConfigDir, "", initBalanceStr, s.chain.proposer.keyInfo.GetAddress()), + addGenesisAccount(val0ConfigDir, "", initBalanceStr, s.chain.proposer.address()), ) // copy the genesis file to the remaining validators @@ -196,7 +197,7 @@ func (s *IntegrationTestSuite) initNodesWithMnemonics(mnemonics ...string) { for _, val := range s.chain.validators { // Fund the first validator with some funds to be used by auction module integration tests s.Require().NoError( - addGenesisAccount(val0ConfigDir, "", initBalanceStr, val.keyInfo.GetAddress()), + addGenesisAccount(val0ConfigDir, "", initBalanceStr, val.address()), ) } @@ -204,13 +205,13 @@ func (s *IntegrationTestSuite) initNodesWithMnemonics(mnemonics ...string) { for _, orch := range s.chain.orchestrators { // Fund the first orchestrator with some funds to be used by auction module integration tests s.Require().NoError( - addGenesisAccount(val0ConfigDir, "", initBalanceStr, orch.keyInfo.GetAddress()), + addGenesisAccount(val0ConfigDir, "", initBalanceStr, orch.address()), ) } // add proposer account to genesis file (so it can bid) s.Require().NoError( - addGenesisAccount(val0ConfigDir, "", initBalanceStr, s.chain.proposer.keyInfo.GetAddress()), + addGenesisAccount(val0ConfigDir, "", initBalanceStr, s.chain.proposer.address()), ) // copy the genesis file to the remaining validators @@ -318,7 +319,7 @@ func (s *IntegrationTestSuite) initGenesis() { s.Require().NoError(err) appGenState[banktypes.ModuleName] = bz - var govGenState govtypes.GenesisState + var govGenState govtypesv1beta1.GenesisState s.Require().NoError(cdc.UnmarshalJSON(appGenState[govtypes.ModuleName], &govGenState)) // set short voting period to allow gov proposals in tests diff --git a/integration_tests/validator.go b/integration_tests/validator.go index 33068e55..66f7a5c1 100644 --- a/integration_tests/validator.go +++ b/integration_tests/validator.go @@ -22,7 +22,7 @@ import ( stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/crypto" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" "github.com/peggyjv/sommelier/v7/app" tmcfg "github.com/tendermint/tendermint/config" tmos "github.com/tendermint/tendermint/libs/os" @@ -35,7 +35,7 @@ type validator struct { index int moniker string mnemonic string - keyInfo keyring.Info + keyRecord keyring.Record privateKey cryptotypes.PrivKey consensusKey privval.FilePVKey nodeKey p2p.NodeKey @@ -134,7 +134,7 @@ func (v *validator) createConsensusKey() error { } func (v *validator) createKeyFromMnemonic(name, mnemonic string, passphrase string) error { - kb, err := keyring.New(keyringAppName, keyring.BackendTest, v.configDir(), nil) + kb, err := keyring.New(keyringAppName, keyring.BackendTest, v.configDir(), nil, cdc) if err != nil { return err } @@ -145,7 +145,7 @@ func (v *validator) createKeyFromMnemonic(name, mnemonic string, passphrase stri return err } - info, err := kb.NewAccount(name, mnemonic, passphrase, sdk.FullFundraiserPath, algo) + record, err := kb.NewAccount(name, mnemonic, passphrase, sdk.FullFundraiserPath, algo) if err != nil { return err } @@ -160,7 +160,7 @@ func (v *validator) createKeyFromMnemonic(name, mnemonic string, passphrase stri return err } - v.keyInfo = info + v.keyRecord = *record v.mnemonic = mnemonic v.privateKey = privKey @@ -225,8 +225,13 @@ func (v *validator) buildCreateValidatorMsg(amount sdk.Coin) (sdk.Msg, error) { return nil, err } + addr, err := v.keyRecord.GetAddress() + if err != nil { + return nil, err + } + return stakingtypes.NewMsgCreateValidator( - sdk.ValAddress(v.keyInfo.GetAddress()), + sdk.ValAddress(addr), valPubKey, amount, description, @@ -247,7 +252,7 @@ func (v *validator) buildDelegateKeysMsg() sdk.Msg { } signMsg := gravitytypes.DelegateKeysSignMsg{ - ValidatorAddress: sdk.ValAddress(v.keyInfo.GetAddress()).String(), + ValidatorAddress: sdk.ValAddress(v.address()).String(), Nonce: 0, } @@ -259,8 +264,8 @@ func (v *validator) buildDelegateKeysMsg() sdk.Msg { } return gravitytypes.NewMsgDelegateKeys( - sdk.ValAddress(v.keyInfo.GetAddress()), - v.chain.orchestrators[v.index].keyInfo.GetAddress(), + sdk.ValAddress(v.address()), + v.chain.orchestrators[v.index].address(), v.ethereumKey.address, ethSig, ) @@ -292,7 +297,7 @@ func (v *validator) signMsg(msgs ...sdk.Msg) (*sdktx.Tx, error) { // also doesn't affect its generated sign bytes, so for code's simplicity // sake, we put it here. sig := txsigning.SignatureV2{ - PubKey: v.keyInfo.GetPubKey(), + PubKey: v.pubKey(), Data: &txsigning.SingleSignatureData{ SignMode: txsigning.SignMode_SIGN_MODE_DIRECT, Signature: nil, @@ -319,7 +324,7 @@ func (v *validator) signMsg(msgs ...sdk.Msg) (*sdktx.Tx, error) { } sig = txsigning.SignatureV2{ - PubKey: v.keyInfo.GetPubKey(), + PubKey: v.pubKey(), Data: &txsigning.SingleSignatureData{ SignMode: txsigning.SignMode_SIGN_MODE_DIRECT, Signature: sigBytes, @@ -340,5 +345,23 @@ func (v *validator) signMsg(msgs ...sdk.Msg) (*sdktx.Tx, error) { } func (v *validator) keyring() (keyring.Keyring, error) { - return keyring.New(keyringAppName, keyring.BackendTest, v.configDir(), nil) + return keyring.New(keyringAppName, keyring.BackendTest, v.configDir(), nil, cdc) +} + +func (v *validator) address() sdk.AccAddress { + addr, err := v.keyRecord.GetAddress() + if err != nil { + panic(err) + } + + return addr +} + +func (v *validator) pubKey() cryptotypes.PubKey { + pubKey, err := v.keyRecord.GetPubKey() + if err != nil { + panic(err) + } + + return pubKey } diff --git a/x/auction/client/cli/query.go b/x/auction/client/cli/query.go index 9877ffc4..a5296f54 100644 --- a/x/auction/client/cli/query.go +++ b/x/auction/client/cli/query.go @@ -3,9 +3,10 @@ package cli import ( "fmt" + "cosmossdk.io/math" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/peggyjv/sommelier/v7/x/auction/types" "github.com/spf13/cobra" ) @@ -77,7 +78,7 @@ func queryActiveAuction() *cobra.Command { return err } - auctionID, err := sdk.ParseUint(args[0]) + auctionID, err := math.ParseUint(args[0]) if err != nil { return err } @@ -113,7 +114,7 @@ func queryEndedAuction() *cobra.Command { return err } - auctionID, err := sdk.ParseUint(args[0]) + auctionID, err := math.ParseUint(args[0]) if err != nil { return err } @@ -285,12 +286,12 @@ func queryBid() *cobra.Command { return err } - auctionID, err := sdk.ParseUint(args[0]) + auctionID, err := math.ParseUint(args[0]) if err != nil { return err } - bidID, err := sdk.ParseUint(args[0]) + bidID, err := math.ParseUint(args[0]) if err != nil { return err } @@ -327,7 +328,7 @@ func queryBidsByAuction() *cobra.Command { return err } - auctionID, err := sdk.ParseUint(args[0]) + auctionID, err := math.ParseUint(args[0]) if err != nil { return err } diff --git a/x/auction/client/cli/query_test.go b/x/auction/client/cli/query_test.go index 365c0bcf..19adaa16 100644 --- a/x/auction/client/cli/query_test.go +++ b/x/auction/client/cli/query_test.go @@ -1,9 +1,9 @@ package cli import ( + "fmt" "testing" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/stretchr/testify/require" ) @@ -18,7 +18,7 @@ func TestQueryParamsCmd(t *testing.T) { args: []string{ "1", }, - err: sdkerrors.New("", uint32(1), "unknown command \"1\" for \"parameters\""), + err: fmt.Errorf("unknown command \"1\" for \"parameters\""), }, } @@ -40,7 +40,7 @@ func TestQueryActiveAuction(t *testing.T) { { name: "Insufficient args", args: []string{}, - err: sdkerrors.New("", uint32(1), "accepts 1 arg(s), received 0"), + err: fmt.Errorf("accepts 1 arg(s), received 0"), }, { name: "Too many args", @@ -48,7 +48,7 @@ func TestQueryActiveAuction(t *testing.T) { "1", "2", }, - err: sdkerrors.New("", uint32(1), "accepts 1 arg(s), received 2"), + err: fmt.Errorf("accepts 1 arg(s), received 2"), }, } @@ -70,7 +70,7 @@ func TestQueryEndedAuction(t *testing.T) { { name: "Insufficient args", args: []string{}, - err: sdkerrors.New("", uint32(1), "accepts 1 arg(s), received 0"), + err: fmt.Errorf("accepts 1 arg(s), received 0"), }, { name: "Too many args", @@ -78,7 +78,7 @@ func TestQueryEndedAuction(t *testing.T) { "1", "2", }, - err: sdkerrors.New("", uint32(1), "accepts 1 arg(s), received 2"), + err: fmt.Errorf("accepts 1 arg(s), received 2"), }, } @@ -102,7 +102,7 @@ func TestActiveAuctionsCmd(t *testing.T) { args: []string{ "1", }, - err: sdkerrors.New("", uint32(1), "unknown command \"1\" for \"active-auctions\""), + err: fmt.Errorf("unknown command \"1\" for \"active-auctions\""), }, } @@ -126,7 +126,7 @@ func TestEndedAuctionsCmd(t *testing.T) { args: []string{ "1", }, - err: sdkerrors.New("", uint32(1), "unknown command \"1\" for \"ended-auctions\""), + err: fmt.Errorf("unknown command \"1\" for \"ended-auctions\""), }, } @@ -148,7 +148,7 @@ func TestQueryActiveAuctionsByDenom(t *testing.T) { { name: "Insufficient args", args: []string{}, - err: sdkerrors.New("", uint32(1), "accepts 1 arg(s), received 0"), + err: fmt.Errorf("accepts 1 arg(s), received 0"), }, { name: "Too many args", @@ -156,7 +156,7 @@ func TestQueryActiveAuctionsByDenom(t *testing.T) { "1", "2", }, - err: sdkerrors.New("", uint32(1), "accepts 1 arg(s), received 2"), + err: fmt.Errorf("accepts 1 arg(s), received 2"), }, } @@ -178,7 +178,7 @@ func TestQueryEndedAuctionsByDenom(t *testing.T) { { name: "Insufficient args", args: []string{}, - err: sdkerrors.New("", uint32(1), "accepts 1 arg(s), received 0"), + err: fmt.Errorf("accepts 1 arg(s), received 0"), }, { name: "Too many args", @@ -186,7 +186,7 @@ func TestQueryEndedAuctionsByDenom(t *testing.T) { "1", "2", }, - err: sdkerrors.New("", uint32(1), "accepts 1 arg(s), received 2"), + err: fmt.Errorf("accepts 1 arg(s), received 2"), }, } @@ -210,7 +210,7 @@ func TestQueryBids(t *testing.T) { args: []string{ "1", }, - err: sdkerrors.New("", uint32(1), "accepts 2 arg(s), received 1"), + err: fmt.Errorf("accepts 2 arg(s), received 1"), }, { name: "Too many args", @@ -219,7 +219,7 @@ func TestQueryBids(t *testing.T) { "2", "3", }, - err: sdkerrors.New("", uint32(1), "accepts 2 arg(s), received 3"), + err: fmt.Errorf("accepts 2 arg(s), received 3"), }, } @@ -241,7 +241,7 @@ func TestQueryBidByAuction(t *testing.T) { { name: "Insufficient args", args: []string{}, - err: sdkerrors.New("", uint32(1), "accepts 1 arg(s), received 0"), + err: fmt.Errorf("accepts 1 arg(s), received 0"), }, { name: "Too many args", @@ -249,7 +249,7 @@ func TestQueryBidByAuction(t *testing.T) { "1", "2", }, - err: sdkerrors.New("", uint32(1), "accepts 1 arg(s), received 2"), + err: fmt.Errorf("accepts 1 arg(s), received 2"), }, } diff --git a/x/auction/client/cli/tx.go b/x/auction/client/cli/tx.go index e0e44b4e..f4890e1c 100644 --- a/x/auction/client/cli/tx.go +++ b/x/auction/client/cli/tx.go @@ -2,15 +2,17 @@ package cli import ( "fmt" - "io/ioutil" + "os" "strings" + "cosmossdk.io/math" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/tx" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/version" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" types "github.com/peggyjv/sommelier/v7/x/auction/types" "github.com/spf13/cobra" ) @@ -64,7 +66,7 @@ Where proposal.json contains: } proposal := types.SetTokenPricesProposalWithDeposit{} - contents, err := ioutil.ReadFile(args[0]) + contents, err := os.ReadFile(args[0]) if err != nil { return err } @@ -89,7 +91,7 @@ Where proposal.json contains: } from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -119,7 +121,7 @@ $ %s tx auction submit-bid 1 10000usomm 50000gravity0xdac17f958d2ee523a220620699 return err } - auctionID, err := sdk.ParseUint(args[0]) + auctionID, err := math.ParseUint(args[0]) if err != nil { return err } diff --git a/x/auction/client/cli/tx_test.go b/x/auction/client/cli/tx_test.go index 624a027b..890c2499 100644 --- a/x/auction/client/cli/tx_test.go +++ b/x/auction/client/cli/tx_test.go @@ -2,11 +2,10 @@ package cli import ( "fmt" - "io/ioutil" + "os" "testing" "github.com/cosmos/cosmos-sdk/simapp/params" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/peggyjv/sommelier/v7/x/auction/types" "github.com/cosmos/cosmos-sdk/testutil" @@ -26,10 +25,10 @@ func TestParseSetTokenPricesProposal(t *testing.T) { `) proposal := types.SetTokenPricesProposalWithDeposit{} - contents, err := ioutil.ReadFile(okJSON.Name()) + contents, err := os.ReadFile(okJSON.Name()) require.NoError(t, err) - err = encodingConfig.Marshaler.UnmarshalJSON(contents, &proposal) + err = encodingConfig.Codec.UnmarshalJSON(contents, &proposal) require.NoError(t, err) require.Equal(t, "My token proposal", proposal.Title) @@ -52,12 +51,12 @@ func TestSubmitBid(t *testing.T) { "50000gravity0xdac17f958d2ee523a2206206994597c13d831ec7", fmt.Sprintf("--%s=%s", "from", "cosmos16zrkzad482haunrn25ywvwy6fclh3vh7r0hcny"), }, - err: sdkerrors.New("", uint32(1), "cosmos16zrkzad482haunrn25ywvwy6fclh3vh7r0hcny.info: key not found"), // Expect key not found error since this is just a mock request + err: fmt.Errorf("cosmos16zrkzad482haunrn25ywvwy6fclh3vh7r0hcny.info: key not found"), // Expect key not found error since this is just a mock request }, { name: "Insufficient args", args: []string{}, - err: sdkerrors.New("", uint32(1), "accepts 3 arg(s), received 0"), + err: fmt.Errorf("accepts 3 arg(s), received 0"), }, { name: "Too many args", @@ -67,7 +66,7 @@ func TestSubmitBid(t *testing.T) { "3", "4", }, - err: sdkerrors.New("", uint32(1), "accepts 3 arg(s), received 4"), + err: fmt.Errorf("accepts 3 arg(s), received 4"), }, { name: "Missing 'from' field", @@ -76,7 +75,7 @@ func TestSubmitBid(t *testing.T) { "10000usomm", "50000gravity0xdac17f958d2ee523a2206206994597c13d831ec7", }, - err: sdkerrors.New("", uint32(1), "must include `--from` flag"), + err: fmt.Errorf("must include `--from` flag"), }, { name: "Invalid bid", @@ -85,7 +84,7 @@ func TestSubmitBid(t *testing.T) { "10000", "50000gravity0xdac17f958d2ee523a2206206994597c13d831ec7", }, - err: sdkerrors.New("", uint32(1), "invalid decimal coin expression: 10000"), + err: fmt.Errorf("invalid decimal coin expression: 10000"), }, { name: "Invalid minimum amount", @@ -94,7 +93,7 @@ func TestSubmitBid(t *testing.T) { "10000usomm", "50000", }, - err: sdkerrors.New("", uint32(1), "invalid decimal coin expression: 50000"), + err: fmt.Errorf("invalid decimal coin expression: 50000"), }, } diff --git a/x/auction/client/proposal_handler.go b/x/auction/client/proposal_handler.go index 66c9c4ed..63c1dd96 100644 --- a/x/auction/client/proposal_handler.go +++ b/x/auction/client/proposal_handler.go @@ -3,9 +3,8 @@ package client import ( govclient "github.com/cosmos/cosmos-sdk/x/gov/client" "github.com/peggyjv/sommelier/v7/x/auction/client/cli" - "github.com/peggyjv/sommelier/v7/x/auction/client/rest" ) var ( - SetProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitSetTokenPricesProposal, rest.SetProposalRESTHandler) + SetProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitSetTokenPricesProposal) ) diff --git a/x/auction/client/rest/rest.go b/x/auction/client/rest/rest.go deleted file mode 100644 index 5b47285f..00000000 --- a/x/auction/client/rest/rest.go +++ /dev/null @@ -1,50 +0,0 @@ -package rest - -import ( - "net/http" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/tx" - "github.com/cosmos/cosmos-sdk/types/rest" - govrest "github.com/cosmos/cosmos-sdk/x/gov/client/rest" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - "github.com/peggyjv/sommelier/v7/x/auction/types" -) - -// SetProposalRESTHandler returns a ProposalRESTHandler that exposes the set token price update REST handler with a given sub-route. -func SetProposalRESTHandler(clientCtx client.Context) govrest.ProposalRESTHandler { - return govrest.ProposalRESTHandler{ - SubRoute: "set_token_prices", - Handler: postSetProposalHandlerFn(clientCtx), - } -} - -func postSetProposalHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req SetTokenPricesProposalReq - if !rest.ReadRESTReq(w, r, clientCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - content := types.NewSetTokenPricesProposal( - req.Title, - req.Description, - req.TokenPrices, - ) - - msg, err := govtypes.NewMsgSubmitProposal(content, req.Deposit, req.Proposer) - if rest.CheckBadRequestError(w, err) { - return - } - if rest.CheckBadRequestError(w, msg.ValidateBasic()) { - return - } - - tx.WriteGeneratedTxResponse(clientCtx, w, req.BaseReq, msg) - } -} diff --git a/x/auction/client/rest/utils.go b/x/auction/client/rest/utils.go deleted file mode 100644 index 9cabfdb4..00000000 --- a/x/auction/client/rest/utils.go +++ /dev/null @@ -1,20 +0,0 @@ -package rest - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/rest" - "github.com/peggyjv/sommelier/v7/x/auction/types" -) - -type ( - // SetTokenPricesProposalReq defines a token price set proposal request body. - SetTokenPricesProposalReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - - Title string `json:"title" yaml:"title"` - Description string `json:"description" yaml:"description"` - TokenPrices []*types.ProposedTokenPrice `json:"token_prices" yaml:"token_prices"` - Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` - Deposit sdk.Coins `json:"deposit" yaml:"deposit"` - } -) diff --git a/x/auction/handler.go b/x/auction/handler.go index f7eff268..e64486a3 100644 --- a/x/auction/handler.go +++ b/x/auction/handler.go @@ -1,8 +1,9 @@ package auction import ( + errorsmod "cosmossdk.io/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" sdk "github.com/cosmos/cosmos-sdk/types" @@ -19,19 +20,19 @@ func NewHandler(k keeper.Keeper) sdk.Handler { res, err := k.SubmitBid(sdk.WrapSDKContext(ctx), msg) return sdk.WrapServiceResult(ctx, res, err) default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized auction message type: %T", msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized auction message type: %T", msg) } } } -func NewSetTokenPricesProposalHandler(k keeper.Keeper) govtypes.Handler { - return func(ctx sdk.Context, content govtypes.Content) error { +func NewSetTokenPricesProposalHandler(k keeper.Keeper) govtypesv1beta1.Handler { + return func(ctx sdk.Context, content govtypesv1beta1.Content) error { switch c := content.(type) { case *types.SetTokenPricesProposal: return keeper.HandleSetTokenPricesProposal(ctx, k, *c) default: - return sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized proposal content type: %T", c) + return errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized proposal content type: %T", c) } } } diff --git a/x/auction/keeper/keeper.go b/x/auction/keeper/keeper.go index 3f958e6d..49edb1de 100644 --- a/x/auction/keeper/keeper.go +++ b/x/auction/keeper/keeper.go @@ -6,10 +6,11 @@ import ( "encoding/binary" + errorsmod "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/store/prefix" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" "github.com/peggyjv/sommelier/v7/app/params" @@ -19,7 +20,7 @@ import ( // Keeper of the auction store type Keeper struct { - storeKey sdk.StoreKey + storeKey storetypes.StoreKey cdc codec.BinaryCodec paramSpace paramtypes.Subspace bankKeeper types.BankKeeper @@ -30,7 +31,7 @@ type Keeper struct { // NewKeeper creates a new auction Keeper instance func NewKeeper( - cdc codec.BinaryCodec, key sdk.StoreKey, paramSpace paramtypes.Subspace, + cdc codec.BinaryCodec, key storetypes.StoreKey, paramSpace paramtypes.Subspace, bankKeeper types.BankKeeper, accountKeeper types.AccountKeeper, fundingModuleAccounts map[string]bool, proceedsModuleAccounts map[string]bool, ) Keeper { // set KeyTable if it has not already been set @@ -185,33 +186,33 @@ func (k Keeper) BeginAuction(ctx sdk.Context, proceedsModuleAccount string) error { // Validate starting token balance if !startingTokensForSale.IsPositive() { - return sdkerrors.Wrapf(types.ErrAuctionStartingAmountMustBePositve, "Starting tokens for sale: %s", startingTokensForSale.String()) + return errorsmod.Wrapf(types.ErrAuctionStartingAmountMustBePositve, "Starting tokens for sale: %s", startingTokensForSale.String()) } // Validate funding module if _, ok := k.fundingModuleAccounts[fundingModuleAccount]; !ok { - return sdkerrors.Wrapf(types.ErrUnauthorizedFundingModule, "Module Account: %s", fundingModuleAccount) + return errorsmod.Wrapf(types.ErrUnauthorizedFundingModule, "Module Account: %s", fundingModuleAccount) } // Validate proceeds module if _, ok := k.proceedsModuleAccounts[proceedsModuleAccount]; !ok { - return sdkerrors.Wrapf(types.ErrUnauthorizedProceedsModule, "Module Account: %s", proceedsModuleAccount) + return errorsmod.Wrapf(types.ErrUnauthorizedProceedsModule, "Module Account: %s", proceedsModuleAccount) } // Verify sale token price freshness is acceptable lastSaleTokenPrice, found := k.GetTokenPrice(ctx, startingTokensForSale.Denom) if !found { - return sdkerrors.Wrapf(types.ErrCouldNotFindSaleTokenPrice, "starting amount denom: %s", startingTokensForSale.Denom) + return errorsmod.Wrapf(types.ErrCouldNotFindSaleTokenPrice, "starting amount denom: %s", startingTokensForSale.Denom) } else if k.tokenPriceTooOld(ctx, &lastSaleTokenPrice) { - return sdkerrors.Wrapf(types.ErrLastSaleTokenPriceTooOld, "starting amount denom: %s", startingTokensForSale.Denom) + return errorsmod.Wrapf(types.ErrLastSaleTokenPriceTooOld, "starting amount denom: %s", startingTokensForSale.Denom) } // Verify usomm token price freshness is acceptable lastUsommTokenPrice, found := k.GetTokenPrice(ctx, params.BaseCoinUnit) if !found { - return sdkerrors.Wrap(types.ErrCouldNotFindSommTokenPrice, params.BaseCoinUnit) + return errorsmod.Wrap(types.ErrCouldNotFindSommTokenPrice, params.BaseCoinUnit) } else if k.tokenPriceTooOld(ctx, &lastUsommTokenPrice) { - return sdkerrors.Wrap(types.ErrLastSommTokenPriceTooOld, params.BaseCoinUnit) + return errorsmod.Wrap(types.ErrLastSommTokenPriceTooOld, params.BaseCoinUnit) } // Calculate usomm per sale token price @@ -247,7 +248,7 @@ func (k Keeper) BeginAuction(ctx sdk.Context, var err error = nil k.IterateAuctions(ctx, types.GetActiveAuctionsPrefix(), func(auctionID uint32, auction types.Auction) (stop bool) { if auction.StartingTokensForSale.Denom == startingTokensForSale.Denom { - err = sdkerrors.Wrapf(types.ErrCannotStartTwoAuctionsForSameDenomSimultaneously, "Denom: %s", auction.StartingTokensForSale.Denom) + err = errorsmod.Wrapf(types.ErrCannotStartTwoAuctionsForSameDenomSimultaneously, "Denom: %s", auction.StartingTokensForSale.Denom) return true } return false diff --git a/x/auction/keeper/keeper_test.go b/x/auction/keeper/keeper_test.go index 945b5c32..447ac535 100644 --- a/x/auction/keeper/keeper_test.go +++ b/x/auction/keeper/keeper_test.go @@ -10,8 +10,8 @@ import ( "github.com/golang/mock/gomock" "github.com/stretchr/testify/suite" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/peggyjv/sommelier/v7/app/params" moduletestutil "github.com/peggyjv/sommelier/v7/testutil" @@ -283,7 +283,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForBeginAuction() { fundingModuleAccount: "cork", proceedsModuleAccount: permissionedReciever.GetName(), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrUnauthorizedFundingModule, "Module Account: cork"), + expectedError: errorsmod.Wrapf(auctionTypes.ErrUnauthorizedFundingModule, "Module Account: cork"), runsBefore: func() {}, }, { @@ -296,7 +296,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForBeginAuction() { fundingModuleAccount: permissionedFunder.GetName(), proceedsModuleAccount: "gravity", }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrUnauthorizedProceedsModule, "Module Account: gravity"), + expectedError: errorsmod.Wrapf(auctionTypes.ErrUnauthorizedProceedsModule, "Module Account: gravity"), runsBefore: func() {}, }, { @@ -309,7 +309,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForBeginAuction() { fundingModuleAccount: permissionedFunder.GetName(), proceedsModuleAccount: permissionedReciever.GetName(), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrCouldNotFindSaleTokenPrice, "starting amount denom: anvil"), + expectedError: errorsmod.Wrapf(auctionTypes.ErrCouldNotFindSaleTokenPrice, "starting amount denom: anvil"), runsBefore: func() {}, }, { @@ -322,7 +322,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForBeginAuction() { fundingModuleAccount: permissionedFunder.GetName(), proceedsModuleAccount: permissionedReciever.GetName(), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrLastSaleTokenPriceTooOld, "starting amount denom: %s", saleToken), + expectedError: errorsmod.Wrapf(auctionTypes.ErrLastSaleTokenPriceTooOld, "starting amount denom: %s", saleToken), runsBefore: func() { auctionKeeper.setTokenPrice(ctx, saleTokenPrice) }, @@ -337,7 +337,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForBeginAuction() { fundingModuleAccount: permissionedFunder.GetName(), proceedsModuleAccount: permissionedReciever.GetName(), }, - expectedError: sdkerrors.Wrap(auctionTypes.ErrCouldNotFindSommTokenPrice, params.BaseCoinUnit), + expectedError: errorsmod.Wrap(auctionTypes.ErrCouldNotFindSommTokenPrice, params.BaseCoinUnit), runsBefore: func() {}, }, { @@ -350,7 +350,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForBeginAuction() { fundingModuleAccount: permissionedFunder.GetName(), proceedsModuleAccount: permissionedReciever.GetName(), }, - expectedError: sdkerrors.Wrap(auctionTypes.ErrLastSommTokenPriceTooOld, params.BaseCoinUnit), + expectedError: errorsmod.Wrap(auctionTypes.ErrLastSommTokenPriceTooOld, params.BaseCoinUnit), runsBefore: func() { auctionKeeper.setTokenPrice(ctx, sommPrice) }, @@ -365,7 +365,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForBeginAuction() { fundingModuleAccount: permissionedFunder.GetName(), proceedsModuleAccount: permissionedReciever.GetName(), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrInvalidInitialDecreaseRate, "Initial price decrease rate 0.000000000000000000"), + expectedError: errorsmod.Wrapf(auctionTypes.ErrInvalidInitialDecreaseRate, "Initial price decrease rate 0.000000000000000000"), runsBefore: func() {}, }, { @@ -378,7 +378,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForBeginAuction() { fundingModuleAccount: permissionedFunder.GetName(), proceedsModuleAccount: permissionedReciever.GetName(), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrInvalidInitialDecreaseRate, "Initial price decrease rate 1.000000000000000000"), + expectedError: errorsmod.Wrapf(auctionTypes.ErrInvalidInitialDecreaseRate, "Initial price decrease rate 1.000000000000000000"), runsBefore: func() {}, }, { @@ -391,7 +391,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForBeginAuction() { fundingModuleAccount: permissionedFunder.GetName(), proceedsModuleAccount: permissionedReciever.GetName(), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrCannotStartTwoAuctionsForSameDenomSimultaneously, "Denom: %s", auctionedSaleTokens.Denom), + expectedError: errorsmod.Wrapf(auctionTypes.ErrCannotStartTwoAuctionsForSameDenomSimultaneously, "Denom: %s", auctionedSaleTokens.Denom), runsBefore: func() { // Mock initial bank keeper fund transfer suite.mockSendCoinsFromModuleToModule(ctx, permissionedFunder.GetName(), auctionTypes.ModuleName, sdk.NewCoins(auctionedSaleTokens)) diff --git a/x/auction/keeper/msg_server.go b/x/auction/keeper/msg_server.go index 35df65a9..3853aba1 100644 --- a/x/auction/keeper/msg_server.go +++ b/x/auction/keeper/msg_server.go @@ -4,8 +4,8 @@ import ( "context" "fmt" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/peggyjv/sommelier/v7/app/params" "github.com/peggyjv/sommelier/v7/x/auction/types" @@ -21,12 +21,12 @@ func (k Keeper) SubmitBid(c context.Context, msg *types.MsgSubmitBidRequest) (*t // Verify auction auction, found := k.GetActiveAuctionByID(ctx, msg.GetAuctionId()) if !found { - return &types.MsgSubmitBidResponse{}, sdkerrors.Wrapf(types.ErrAuctionNotFound, "Auction id: %d", msg.GetAuctionId()) + return &types.MsgSubmitBidResponse{}, errorsmod.Wrapf(types.ErrAuctionNotFound, "Auction id: %d", msg.GetAuctionId()) } // Verify auction coin type and bidder coin type are equal if auction.GetStartingTokensForSale().Denom != msg.GetSaleTokenMinimumAmount().Denom { - return &types.MsgSubmitBidResponse{}, sdkerrors.Wrapf(types.ErrBidAuctionDenomMismatch, "Bid denom: %s, Auction denom: %s", msg.GetSaleTokenMinimumAmount().Denom, auction.GetStartingTokensForSale().Denom) + return &types.MsgSubmitBidResponse{}, errorsmod.Wrapf(types.ErrBidAuctionDenomMismatch, "Bid denom: %s, Auction denom: %s", msg.GetSaleTokenMinimumAmount().Denom, auction.GetStartingTokensForSale().Denom) } // Query our module address for funds @@ -38,24 +38,24 @@ func (k Keeper) SubmitBid(c context.Context, msg *types.MsgSubmitBidRequest) (*t // To prevent spamming of many small bids, check that minimum bid amount is satisfied (unless amount left in auction is < minimum bid req)** minUsommBid := sdk.NewIntFromUint64(k.GetParamSet(ctx).MinimumBidInUsomm) - saleTokenBalanceValueInUsommRemaining := totalSaleTokenBalance.Amount.ToDec().Mul(auction.CurrentUnitPriceInUsomm) + saleTokenBalanceValueInUsommRemaining := sdk.NewDecFromInt(totalSaleTokenBalance.Amount).Mul(auction.CurrentUnitPriceInUsomm) // **If remaining amount in auction is LT minUsommBid param, update minUsommBid to smallest possible value left in auction to prevent spamming in this edge case - if saleTokenBalanceValueInUsommRemaining.LT(minUsommBid.ToDec()) { + if saleTokenBalanceValueInUsommRemaining.LT(sdk.NewDecFromInt(minUsommBid)) { minUsommBid = sdk.NewInt(saleTokenBalanceValueInUsommRemaining.TruncateInt64()) } if maxBidInUsomm.LT(minUsommBid) { - return &types.MsgSubmitBidResponse{}, sdkerrors.Wrapf(types.ErrBidAmountIsTooSmall, "bid amount: %s, minimum amount in usomm: %s", maxBidInUsomm.String(), minUsommBid.String()) + return &types.MsgSubmitBidResponse{}, errorsmod.Wrapf(types.ErrBidAmountIsTooSmall, "bid amount: %s, minimum amount in usomm: %s", maxBidInUsomm.String(), minUsommBid.String()) } // Calculate minimum purchase price // Note we round up, thus making the price more expensive to prevent this rounding from being exploited - minimumPurchasePriceInUsomm := sdk.NewInt(auction.CurrentUnitPriceInUsomm.Mul(minimumSaleTokenPurchaseAmount.ToDec()).Ceil().TruncateInt64()) + minimumPurchasePriceInUsomm := sdk.NewInt(auction.CurrentUnitPriceInUsomm.Mul(sdk.NewDecFromInt(minimumSaleTokenPurchaseAmount)).Ceil().TruncateInt64()) // Verify minimum price is <= bid, note this also checks the max bid is enough to purchase at least one sale token if minimumPurchasePriceInUsomm.GT(maxBidInUsomm) { - return &types.MsgSubmitBidResponse{}, sdkerrors.Wrapf(types.ErrInsufficientBid, "minimum purchase price: %s, max bid: %s", minimumPurchasePriceInUsomm.String(), maxBidInUsomm.String()) + return &types.MsgSubmitBidResponse{}, errorsmod.Wrapf(types.ErrInsufficientBid, "minimum purchase price: %s, max bid: %s", minimumPurchasePriceInUsomm.String(), maxBidInUsomm.String()) } // Start off fulfilled sale token amount at 0 @@ -63,7 +63,8 @@ func (k Keeper) SubmitBid(c context.Context, msg *types.MsgSubmitBidRequest) (*t // See how many whole tokens of base denom can be purchased // Round down, can't purchase fractional sale tokens - saleTokensToPurchase := msg.MaxBidInUsomm.Amount.ToDec().Quo(auction.CurrentUnitPriceInUsomm).TruncateInt() + + saleTokensToPurchase := sdk.NewDecFromInt(msg.MaxBidInUsomm.Amount).Quo(auction.CurrentUnitPriceInUsomm).TruncateInt() // Figure out how much of bid we can fulfill if totalSaleTokenBalance.Amount.GTE(saleTokensToPurchase) { @@ -73,11 +74,11 @@ func (k Keeper) SubmitBid(c context.Context, msg *types.MsgSubmitBidRequest) (*t totalFulfilledSaleTokens.Amount = totalSaleTokenBalance.Amount } else { - return &types.MsgSubmitBidResponse{}, sdkerrors.Wrapf(types.ErrMinimumPurchaseAmountLargerThanTokensRemaining, "Minimum purchase: %s, amount remaining: %s", minimumSaleTokenPurchaseAmount.String(), auction.RemainingTokensForSale.String()) + return &types.MsgSubmitBidResponse{}, errorsmod.Wrapf(types.ErrMinimumPurchaseAmountLargerThanTokensRemaining, "Minimum purchase: %s, amount remaining: %s", minimumSaleTokenPurchaseAmount.String(), auction.RemainingTokensForSale.String()) } // Round up to prevent exploitability; ensure you can't get more than you pay for - usommAmount := sdk.NewInt(totalFulfilledSaleTokens.Amount.ToDec().Mul(auction.CurrentUnitPriceInUsomm).Ceil().TruncateInt64()) + usommAmount := sdk.NewInt(sdk.NewDecFromInt(totalFulfilledSaleTokens.Amount).Mul(auction.CurrentUnitPriceInUsomm).Ceil().TruncateInt64()) totalUsommPaid := sdk.NewCoin(params.BaseCoinUnit, usommAmount) newBidID := k.GetLastBidID(ctx) + 1 diff --git a/x/auction/keeper/msg_server_test.go b/x/auction/keeper/msg_server_test.go index 1d2a72ae..20e56424 100644 --- a/x/auction/keeper/msg_server_test.go +++ b/x/auction/keeper/msg_server_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/peggyjv/sommelier/v7/app/params" @@ -211,7 +211,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForSubmitBid() { MaxBidInUsomm: sdk.NewCoin(params.BaseCoinUnit, sdk.NewInt(100)), SaleTokenMinimumAmount: sdk.NewCoin(saleToken, sdk.NewInt(1)), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrAuctionNotFound, "Auction id: %d", uint32(420)), + expectedError: errorsmod.Wrapf(auctionTypes.ErrAuctionNotFound, "Auction id: %d", uint32(420)), runsBefore: func() {}, submitBidResponse: &auctionTypes.MsgSubmitBidResponse{}, }, @@ -223,7 +223,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForSubmitBid() { MaxBidInUsomm: sdk.NewCoin(params.BaseCoinUnit, sdk.NewInt(100)), SaleTokenMinimumAmount: sdk.NewCoin("blemflarcks", sdk.NewInt(1)), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrBidAuctionDenomMismatch, "Bid denom: blemflarcks, Auction denom: %s", saleToken), + expectedError: errorsmod.Wrapf(auctionTypes.ErrBidAuctionDenomMismatch, "Bid denom: blemflarcks, Auction denom: %s", saleToken), runsBefore: func() {}, submitBidResponse: &auctionTypes.MsgSubmitBidResponse{}, }, @@ -235,7 +235,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForSubmitBid() { MaxBidInUsomm: sdk.NewCoin(params.BaseCoinUnit, sdk.NewInt(1000000)), SaleTokenMinimumAmount: sdk.NewCoin(saleToken, sdk.NewInt(1000000)), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrInsufficientBid, "minimum purchase price: 2000000, max bid: 1000000"), + expectedError: errorsmod.Wrapf(auctionTypes.ErrInsufficientBid, "minimum purchase price: 2000000, max bid: 1000000"), runsBefore: func() { suite.mockGetModuleAccount(ctx) suite.mockGetBalance(ctx, authtypes.NewEmptyModuleAccount("mock").GetAddress(), saleToken, originalAuction.RemainingTokensForSale) @@ -250,7 +250,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForSubmitBid() { MaxBidInUsomm: sdk.NewCoin(params.BaseCoinUnit, sdk.NewInt(2)), SaleTokenMinimumAmount: sdk.NewCoin(saleToken, sdk.NewInt(1)), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrBidAmountIsTooSmall, "bid amount: 2, minimum amount in usomm: %s", fmt.Sprint(auctionTypes.DefaultParams().MinimumBidInUsomm)), + expectedError: errorsmod.Wrapf(auctionTypes.ErrBidAmountIsTooSmall, "bid amount: 2, minimum amount in usomm: %s", fmt.Sprint(auctionTypes.DefaultParams().MinimumBidInUsomm)), runsBefore: func() { suite.mockGetModuleAccount(ctx) suite.mockGetBalance(ctx, authtypes.NewEmptyModuleAccount("mock").GetAddress(), saleToken, originalAuction.RemainingTokensForSale) @@ -265,7 +265,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForSubmitBid() { MaxBidInUsomm: sdk.NewCoin(params.BaseCoinUnit, sdk.NewInt(4000000)), SaleTokenMinimumAmount: sdk.NewCoin(saleToken, sdk.NewInt(1000002)), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrMinimumPurchaseAmountLargerThanTokensRemaining, "Minimum purchase: %s, amount remaining: %s", sdk.NewInt(1000002), originalAuction.RemainingTokensForSale.String()), + expectedError: errorsmod.Wrapf(auctionTypes.ErrMinimumPurchaseAmountLargerThanTokensRemaining, "Minimum purchase: %s, amount remaining: %s", sdk.NewInt(1000002), originalAuction.RemainingTokensForSale.String()), runsBefore: func() { suite.mockGetModuleAccount(ctx) suite.mockGetBalance(ctx, authtypes.NewEmptyModuleAccount("mock").GetAddress(), saleToken, originalAuction.RemainingTokensForSale) @@ -280,7 +280,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForSubmitBid() { MaxBidInUsomm: sdk.NewCoin("cinnamonRollCoin", sdk.NewInt(2000000)), SaleTokenMinimumAmount: sdk.NewCoin(saleToken, sdk.NewInt(1000000)), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrBidMustBeInUsomm, "bid: %s", sdk.NewCoin("cinnamonRollCoin", sdk.NewInt(2000000)).String()), + expectedError: errorsmod.Wrapf(auctionTypes.ErrBidMustBeInUsomm, "bid: %s", sdk.NewCoin("cinnamonRollCoin", sdk.NewInt(2000000)).String()), runsBefore: func() { suite.mockGetModuleAccount(ctx) suite.mockGetBalance(ctx, authtypes.NewEmptyModuleAccount("mock").GetAddress(), saleToken, originalAuction.RemainingTokensForSale) @@ -295,7 +295,7 @@ func (suite *KeeperTestSuite) TestUnhappyPathsForSubmitBid() { MaxBidInUsomm: sdk.NewCoin(params.BaseCoinUnit, sdk.NewInt(2000000)), SaleTokenMinimumAmount: sdk.NewCoin(saleToken, sdk.NewInt(0)), }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrMinimumAmountMustBePositive, "sale token amount: %s", sdk.NewCoin(saleToken, sdk.NewInt(0)).String()), + expectedError: errorsmod.Wrapf(auctionTypes.ErrMinimumAmountMustBePositive, "sale token amount: %s", sdk.NewCoin(saleToken, sdk.NewInt(0)).String()), runsBefore: func() { suite.mockGetModuleAccount(ctx) suite.mockGetBalance(ctx, authtypes.NewEmptyModuleAccount("mock").GetAddress(), saleToken, originalAuction.RemainingTokensForSale) diff --git a/x/auction/keeper/proposal_handler_test.go b/x/auction/keeper/proposal_handler_test.go index 742f291a..60e72ca6 100644 --- a/x/auction/keeper/proposal_handler_test.go +++ b/x/auction/keeper/proposal_handler_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" govTypes "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/peggyjv/sommelier/v7/app/params" auctionTypes "github.com/peggyjv/sommelier/v7/x/auction/types" @@ -71,7 +71,7 @@ func (suite *KeeperTestSuite) TestUnhappPathForProposalHandler() { Description: "Description", TokenPrices: []*auctionTypes.ProposedTokenPrice{}, }, - expectedError: sdkerrors.Wrap(govTypes.ErrInvalidProposalContent, "proposal title cannot be blank"), + expectedError: errorsmod.Wrap(govTypes.ErrInvalidProposalContent, "proposal title cannot be blank"), }, { name: "Validate basic canary 2 -- cannot have non usomm & non gravity denom", @@ -85,7 +85,7 @@ func (suite *KeeperTestSuite) TestUnhappPathForProposalHandler() { }, }, }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrInvalidTokenPriceDenom, "denom: weth"), + expectedError: errorsmod.Wrapf(auctionTypes.ErrInvalidTokenPriceDenom, "denom: weth"), }, { name: "Cannot attempt to update prices twice for a denom in one proposal", @@ -103,7 +103,7 @@ func (suite *KeeperTestSuite) TestUnhappPathForProposalHandler() { }, }, }, - expectedError: sdkerrors.Wrapf(auctionTypes.ErrTokenPriceProposalAttemptsToUpdateTokenPriceMoreThanOnce, "denom: gravity0x761d38e5ddf6ccf6cf7c55759d5210750b5d60f3"), + expectedError: errorsmod.Wrapf(auctionTypes.ErrTokenPriceProposalAttemptsToUpdateTokenPriceMoreThanOnce, "denom: gravity0x761d38e5ddf6ccf6cf7c55759d5210750b5d60f3"), }, } diff --git a/x/auction/module.go b/x/auction/module.go index 23efaa86..5085193f 100644 --- a/x/auction/module.go +++ b/x/auction/module.go @@ -11,7 +11,6 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" sim "github.com/cosmos/cosmos-sdk/types/simulation" - "github.com/gorilla/mux" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/peggyjv/sommelier/v7/x/auction/client/cli" "github.com/peggyjv/sommelier/v7/x/auction/keeper" @@ -53,10 +52,6 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, _ client.TxEncodingCo return gs.Validate() } -// RegisterRESTRoutes doesn't support legacy REST routes. -// We don't want to support the legacy rest server here -func (AppModuleBasic) RegisterRESTRoutes(_ client.Context, _ *mux.Router) {} - // GetTxCmd returns the root tx command for the auction module. func (AppModuleBasic) GetTxCmd() *cobra.Command { return cli.GetTxCmd() diff --git a/x/auction/types/auction.go b/x/auction/types/auction.go index b4f9f6ee..bf35ec71 100644 --- a/x/auction/types/auction.go +++ b/x/auction/types/auction.go @@ -3,55 +3,56 @@ package types import ( "strings" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" "github.com/peggyjv/sommelier/v7/app/params" ) func (a *Auction) ValidateBasic() error { if a.Id == 0 { - return sdkerrors.Wrapf(ErrAuctionIDMustBeNonZero, "id: %d", a.Id) + return errorsmod.Wrapf(ErrAuctionIDMustBeNonZero, "id: %d", a.Id) } if !a.StartingTokensForSale.IsPositive() { - return sdkerrors.Wrapf(ErrAuctionStartingAmountMustBePositve, "Starting tokens for sale: %s", a.StartingTokensForSale.String()) + return errorsmod.Wrapf(ErrAuctionStartingAmountMustBePositve, "Starting tokens for sale: %s", a.StartingTokensForSale.String()) } if a.StartingTokensForSale.Denom == params.BaseCoinUnit { - return sdkerrors.Wrapf(ErrCannotAuctionUsomm, "Starting denom tokens for sale: %s", params.BaseCoinUnit) + return errorsmod.Wrapf(ErrCannotAuctionUsomm, "Starting denom tokens for sale: %s", params.BaseCoinUnit) } if a.StartBlock == 0 { - return sdkerrors.Wrapf(ErrInvalidStartBlock, "start block: %d", a.StartBlock) + return errorsmod.Wrapf(ErrInvalidStartBlock, "start block: %d", a.StartBlock) } if a.InitialPriceDecreaseRate.LTE(sdk.NewDec(0)) || a.InitialPriceDecreaseRate.GTE(sdk.NewDec(1)) { - return sdkerrors.Wrapf(ErrInvalidInitialDecreaseRate, "Initial price decrease rate %s", a.InitialPriceDecreaseRate.String()) + return errorsmod.Wrapf(ErrInvalidInitialDecreaseRate, "Initial price decrease rate %s", a.InitialPriceDecreaseRate.String()) } if a.CurrentPriceDecreaseRate.LTE(sdk.NewDec(0)) || a.CurrentPriceDecreaseRate.GTE(sdk.NewDec(1)) { - return sdkerrors.Wrapf(ErrInvalidCurrentDecreaseRate, "Current price decrease rate %s", a.CurrentPriceDecreaseRate.String()) + return errorsmod.Wrapf(ErrInvalidCurrentDecreaseRate, "Current price decrease rate %s", a.CurrentPriceDecreaseRate.String()) } if a.PriceDecreaseBlockInterval == 0 { - return sdkerrors.Wrapf(ErrInvalidBlockDecreaseInterval, "price decrease block interval: %d", a.PriceDecreaseBlockInterval) + return errorsmod.Wrapf(ErrInvalidBlockDecreaseInterval, "price decrease block interval: %d", a.PriceDecreaseBlockInterval) } if !a.InitialUnitPriceInUsomm.IsPositive() { - return sdkerrors.Wrapf(ErrPriceMustBePositive, "initial unit price in usomm: %s", a.InitialUnitPriceInUsomm.String()) + return errorsmod.Wrapf(ErrPriceMustBePositive, "initial unit price in usomm: %s", a.InitialUnitPriceInUsomm.String()) } if !a.CurrentUnitPriceInUsomm.IsPositive() { - return sdkerrors.Wrapf(ErrPriceMustBePositive, "current unit price in usomm: %s", a.CurrentUnitPriceInUsomm.String()) + return errorsmod.Wrapf(ErrPriceMustBePositive, "current unit price in usomm: %s", a.CurrentUnitPriceInUsomm.String()) } if a.FundingModuleAccount == "" { - return sdkerrors.Wrapf(ErrUnauthorizedFundingModule, "funding module account: %s", a.FundingModuleAccount) + return errorsmod.Wrapf(ErrUnauthorizedFundingModule, "funding module account: %s", a.FundingModuleAccount) } if a.ProceedsModuleAccount == "" { - return sdkerrors.Wrapf(ErrUnauthorizedFundingModule, "proceeds module account: %s", a.ProceedsModuleAccount) + return errorsmod.Wrapf(ErrUnauthorizedFundingModule, "proceeds module account: %s", a.ProceedsModuleAccount) } return nil @@ -59,51 +60,51 @@ func (a *Auction) ValidateBasic() error { func (b *Bid) ValidateBasic() error { if b.Id == 0 { - return sdkerrors.Wrapf(ErrBidIDMustBeNonZero, "id: %d", b.Id) + return errorsmod.Wrapf(ErrBidIDMustBeNonZero, "id: %d", b.Id) } if b.AuctionId == 0 { - return sdkerrors.Wrapf(ErrAuctionIDMustBeNonZero, "id: %d", b.AuctionId) + return errorsmod.Wrapf(ErrAuctionIDMustBeNonZero, "id: %d", b.AuctionId) } if b.Bidder == "" { - return sdkerrors.Wrapf(ErrAddressExpected, "bidder: %s", b.Bidder) + return errorsmod.Wrapf(ErrAddressExpected, "bidder: %s", b.Bidder) } if _, err := sdk.AccAddressFromBech32(b.Bidder); err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) + return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) } if !b.MaxBidInUsomm.IsPositive() { - return sdkerrors.Wrapf(ErrBidAmountMustBePositive, "bid amount in usomm: %s", b.MaxBidInUsomm.String()) + return errorsmod.Wrapf(ErrBidAmountMustBePositive, "bid amount in usomm: %s", b.MaxBidInUsomm.String()) } if b.MaxBidInUsomm.Denom != params.BaseCoinUnit { - return sdkerrors.Wrapf(ErrBidMustBeInUsomm, "bid: %s", b.MaxBidInUsomm.String()) + return errorsmod.Wrapf(ErrBidMustBeInUsomm, "bid: %s", b.MaxBidInUsomm.String()) } if !strings.HasPrefix(b.SaleTokenMinimumAmount.Denom, gravitytypes.GravityDenomPrefix) { - return sdkerrors.Wrapf(ErrInvalidTokenBeingBidOn, "sale token: %s", b.SaleTokenMinimumAmount.String()) + return errorsmod.Wrapf(ErrInvalidTokenBeingBidOn, "sale token: %s", b.SaleTokenMinimumAmount.String()) } if !b.SaleTokenMinimumAmount.IsPositive() { - return sdkerrors.Wrapf(ErrMinimumAmountMustBePositive, "sale token amount: %s", b.SaleTokenMinimumAmount.String()) + return errorsmod.Wrapf(ErrMinimumAmountMustBePositive, "sale token amount: %s", b.SaleTokenMinimumAmount.String()) } if b.TotalFulfilledSaleTokens.Amount.IsNegative() { - return sdkerrors.Wrapf(ErrBidFulfilledSaleTokenAmountMustBeNonNegative, "fulfilled sale token amount: %s", b.TotalFulfilledSaleTokens.String()) + return errorsmod.Wrapf(ErrBidFulfilledSaleTokenAmountMustBeNonNegative, "fulfilled sale token amount: %s", b.TotalFulfilledSaleTokens.String()) } if !b.SaleTokenUnitPriceInUsomm.IsPositive() { - return sdkerrors.Wrapf(ErrBidUnitPriceInUsommMustBePositive, "sale token unit price: %s", b.SaleTokenUnitPriceInUsomm.String()) + return errorsmod.Wrapf(ErrBidUnitPriceInUsommMustBePositive, "sale token unit price: %s", b.SaleTokenUnitPriceInUsomm.String()) } if b.TotalUsommPaid.IsNegative() { - return sdkerrors.Wrapf(ErrBidPaymentCannotBeNegative, "payment in usomm: %s", b.TotalUsommPaid.String()) + return errorsmod.Wrapf(ErrBidPaymentCannotBeNegative, "payment in usomm: %s", b.TotalUsommPaid.String()) } if b.TotalUsommPaid.Denom != params.BaseCoinUnit { - return sdkerrors.Wrapf(ErrBidMustBeInUsomm, "payment denom: %s", b.TotalUsommPaid.Denom) + return errorsmod.Wrapf(ErrBidMustBeInUsomm, "payment denom: %s", b.TotalUsommPaid.Denom) } return nil @@ -111,23 +112,23 @@ func (b *Bid) ValidateBasic() error { func (t *TokenPrice) ValidateBasic() error { if t.Denom == "" { - return sdkerrors.Wrapf(ErrDenomCannotBeEmpty, "price denom: %s", t.Denom) + return errorsmod.Wrapf(ErrDenomCannotBeEmpty, "price denom: %s", t.Denom) } if !t.UsdPrice.IsPositive() { - return sdkerrors.Wrapf(ErrPriceMustBePositive, "usd price: %s", t.UsdPrice.String()) + return errorsmod.Wrapf(ErrPriceMustBePositive, "usd price: %s", t.UsdPrice.String()) } if t.LastUpdatedBlock == 0 { - return sdkerrors.Wrapf(ErrInvalidLastUpdatedBlock, "block: %d", t.LastUpdatedBlock) + return errorsmod.Wrapf(ErrInvalidLastUpdatedBlock, "block: %d", t.LastUpdatedBlock) } if !strings.HasPrefix(t.Denom, gravitytypes.GravityDenomPrefix) && t.Denom != params.BaseCoinUnit { - return sdkerrors.Wrapf(ErrInvalidTokenPriceDenom, "denom: %s", t.Denom) + return errorsmod.Wrapf(ErrInvalidTokenPriceDenom, "denom: %s", t.Denom) } if t.Exponent > 18 { - return sdkerrors.Wrapf(ErrTokenPriceExponentTooHigh, "exponent: %d", t.Exponent) + return errorsmod.Wrapf(ErrTokenPriceExponentTooHigh, "exponent: %d", t.Exponent) } return nil @@ -135,19 +136,19 @@ func (t *TokenPrice) ValidateBasic() error { func (t *ProposedTokenPrice) ValidateBasic() error { if t.Denom == "" { - return sdkerrors.Wrapf(ErrDenomCannotBeEmpty, "price denom: %s", t.Denom) + return errorsmod.Wrapf(ErrDenomCannotBeEmpty, "price denom: %s", t.Denom) } if !t.UsdPrice.IsPositive() { - return sdkerrors.Wrapf(ErrPriceMustBePositive, "usd price: %s", t.UsdPrice.String()) + return errorsmod.Wrapf(ErrPriceMustBePositive, "usd price: %s", t.UsdPrice.String()) } if !strings.HasPrefix(t.Denom, gravitytypes.GravityDenomPrefix) && t.Denom != params.BaseCoinUnit { - return sdkerrors.Wrapf(ErrInvalidTokenPriceDenom, "denom: %s", t.Denom) + return errorsmod.Wrapf(ErrInvalidTokenPriceDenom, "denom: %s", t.Denom) } if t.Exponent > 18 { - return sdkerrors.Wrapf(ErrTokenPriceExponentTooHigh, "exponent: %d", t.Exponent) + return errorsmod.Wrapf(ErrTokenPriceExponentTooHigh, "exponent: %d", t.Exponent) } return nil diff --git a/x/auction/types/auction_test.go b/x/auction/types/auction_test.go index 91ac8d7b..20bdf242 100644 --- a/x/auction/types/auction_test.go +++ b/x/auction/types/auction_test.go @@ -3,6 +3,7 @@ package types import ( "testing" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/peggyjv/sommelier/v7/app/params" @@ -57,7 +58,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "someModule", }, expPass: false, - err: sdkerrors.Wrapf(ErrAuctionIDMustBeNonZero, "id: 0"), + err: errorsmod.Wrapf(ErrAuctionIDMustBeNonZero, "id: 0"), }, { name: "Starting tokens for sale must be positive", @@ -76,7 +77,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "someModule", }, expPass: false, - err: sdkerrors.Wrapf(ErrAuctionStartingAmountMustBePositve, "Starting tokens for sale: %s", sdk.NewCoin("gravity0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", sdk.NewIntFromUint64(0)).String()), + err: errorsmod.Wrapf(ErrAuctionStartingAmountMustBePositve, "Starting tokens for sale: %s", sdk.NewCoin("gravity0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", sdk.NewIntFromUint64(0)).String()), }, { name: "Starting tokens for sale cannot be usomm", @@ -95,7 +96,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "someModule", }, expPass: false, - err: sdkerrors.Wrapf(ErrCannotAuctionUsomm, "Starting denom tokens for sale: %s", params.BaseCoinUnit), + err: errorsmod.Wrapf(ErrCannotAuctionUsomm, "Starting denom tokens for sale: %s", params.BaseCoinUnit), }, { name: "Start block must be positive", @@ -114,7 +115,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "someModule", }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidStartBlock, "start block: 0"), + err: errorsmod.Wrapf(ErrInvalidStartBlock, "start block: 0"), }, { name: "Initial decrease rate cannot be <= 0", @@ -133,7 +134,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "someModule", }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidInitialDecreaseRate, "Initial price decrease rate %s", sdk.MustNewDecFromStr("0.0").String()), + err: errorsmod.Wrapf(ErrInvalidInitialDecreaseRate, "Initial price decrease rate %s", sdk.MustNewDecFromStr("0.0").String()), }, { name: "Initial decrease rate cannot be >= 0", @@ -152,7 +153,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "someModule", }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidInitialDecreaseRate, "Initial price decrease rate %s", sdk.MustNewDecFromStr("1.0").String()), + err: errorsmod.Wrapf(ErrInvalidInitialDecreaseRate, "Initial price decrease rate %s", sdk.MustNewDecFromStr("1.0").String()), }, { name: "Current decrease rate cannot be <= 0", @@ -171,7 +172,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "someModule", }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidCurrentDecreaseRate, "Current price decrease rate %s", sdk.MustNewDecFromStr("0.0").String()), + err: errorsmod.Wrapf(ErrInvalidCurrentDecreaseRate, "Current price decrease rate %s", sdk.MustNewDecFromStr("0.0").String()), }, { name: "Current decrease rate cannot be >= 0", @@ -190,7 +191,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "someModule", }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidCurrentDecreaseRate, "Current price decrease rate %s", sdk.MustNewDecFromStr("1.0").String()), + err: errorsmod.Wrapf(ErrInvalidCurrentDecreaseRate, "Current price decrease rate %s", sdk.MustNewDecFromStr("1.0").String()), }, { name: "Price decrease block interval cannot be 0", @@ -209,7 +210,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "someModule", }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidBlockDecreaseInterval, "price decrease block interval: 0"), + err: errorsmod.Wrapf(ErrInvalidBlockDecreaseInterval, "price decrease block interval: 0"), }, { name: "Initial unit price in usomm must be positive", @@ -228,7 +229,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "someModule", }, expPass: false, - err: sdkerrors.Wrapf(ErrPriceMustBePositive, "initial unit price in usomm: %s", sdk.MustNewDecFromStr("0.0").String()), + err: errorsmod.Wrapf(ErrPriceMustBePositive, "initial unit price in usomm: %s", sdk.MustNewDecFromStr("0.0").String()), }, { name: "Current unit price in usomm must be positive", @@ -247,7 +248,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "someModule", }, expPass: false, - err: sdkerrors.Wrapf(ErrPriceMustBePositive, "current unit price in usomm: %s", sdk.MustNewDecFromStr("0.0").String()), + err: errorsmod.Wrapf(ErrPriceMustBePositive, "current unit price in usomm: %s", sdk.MustNewDecFromStr("0.0").String()), }, { @@ -267,7 +268,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "someModule", }, expPass: false, - err: sdkerrors.Wrapf(ErrUnauthorizedFundingModule, "funding module account: "), + err: errorsmod.Wrapf(ErrUnauthorizedFundingModule, "funding module account: "), }, { name: "Proceeds Module account cannot be empty", @@ -286,7 +287,7 @@ func TestAuctionValidate(t *testing.T) { ProceedsModuleAccount: "", }, expPass: false, - err: sdkerrors.Wrapf(ErrUnauthorizedFundingModule, "proceeds module account: "), + err: errorsmod.Wrapf(ErrUnauthorizedFundingModule, "proceeds module account: "), }, } @@ -337,7 +338,7 @@ func TestBidValidate(t *testing.T) { TotalUsommPaid: sdk.NewCoin("usomm", sdk.NewInt(100)), }, expPass: false, - err: sdkerrors.Wrapf(ErrBidIDMustBeNonZero, "id: 0"), + err: errorsmod.Wrapf(ErrBidIDMustBeNonZero, "id: 0"), }, { name: "Auction ID cannot be 0", @@ -352,7 +353,7 @@ func TestBidValidate(t *testing.T) { TotalUsommPaid: sdk.NewCoin("usomm", sdk.NewInt(100)), }, expPass: false, - err: sdkerrors.Wrapf(ErrAuctionIDMustBeNonZero, "id: 0"), + err: errorsmod.Wrapf(ErrAuctionIDMustBeNonZero, "id: 0"), }, { name: "Bidder cannot be empty", @@ -367,7 +368,7 @@ func TestBidValidate(t *testing.T) { TotalUsommPaid: sdk.NewCoin("usomm", sdk.NewInt(100)), }, expPass: false, - err: sdkerrors.Wrapf(ErrAddressExpected, "bidder: "), + err: errorsmod.Wrapf(ErrAddressExpected, "bidder: "), }, { name: "Bidder must be a valid bech32 address", @@ -382,7 +383,7 @@ func TestBidValidate(t *testing.T) { TotalUsommPaid: sdk.NewCoin("usomm", sdk.NewInt(100)), }, expPass: false, - err: sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "decoding bech32 failed: invalid bech32 string length 7"), + err: errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "decoding bech32 failed: invalid bech32 string length 7"), }, { name: "Bid must be positive", @@ -397,7 +398,7 @@ func TestBidValidate(t *testing.T) { TotalUsommPaid: sdk.NewCoin("usomm", sdk.NewInt(100)), }, expPass: false, - err: sdkerrors.Wrapf(ErrBidAmountMustBePositive, "bid amount in usomm: %s", sdk.NewCoin("usomm", sdk.NewInt(0)).String()), + err: errorsmod.Wrapf(ErrBidAmountMustBePositive, "bid amount in usomm: %s", sdk.NewCoin("usomm", sdk.NewInt(0)).String()), }, { name: "Bid must be in usomm", @@ -412,7 +413,7 @@ func TestBidValidate(t *testing.T) { TotalUsommPaid: sdk.NewCoin("usomm", sdk.NewInt(100)), }, expPass: false, - err: sdkerrors.Wrapf(ErrBidMustBeInUsomm, "bid: %s", sdk.NewCoin("usdc", sdk.NewInt(100)).String()), + err: errorsmod.Wrapf(ErrBidMustBeInUsomm, "bid: %s", sdk.NewCoin("usdc", sdk.NewInt(100)).String()), }, { name: "Sale token must be gravity prefixed", @@ -427,7 +428,7 @@ func TestBidValidate(t *testing.T) { TotalUsommPaid: sdk.NewCoin("usomm", sdk.NewInt(100)), }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidTokenBeingBidOn, "sale token: %s", sdk.NewCoin("usdc", sdk.NewInt(50)).String()), + err: errorsmod.Wrapf(ErrInvalidTokenBeingBidOn, "sale token: %s", sdk.NewCoin("usdc", sdk.NewInt(50)).String()), }, { name: "Sale token amount must be positive", @@ -442,7 +443,7 @@ func TestBidValidate(t *testing.T) { TotalUsommPaid: sdk.NewCoin("usomm", sdk.NewInt(100)), }, expPass: false, - err: sdkerrors.Wrapf(ErrMinimumAmountMustBePositive, "sale token amount: %s", sdk.NewCoin("gravity0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", sdk.NewInt(0)).String()), + err: errorsmod.Wrapf(ErrMinimumAmountMustBePositive, "sale token amount: %s", sdk.NewCoin("gravity0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", sdk.NewInt(0)).String()), }, { name: "Sale token unit price must be in usomm", @@ -457,7 +458,7 @@ func TestBidValidate(t *testing.T) { TotalUsommPaid: sdk.NewCoin("usomm", sdk.NewInt(100)), }, expPass: false, - err: sdkerrors.Wrapf(ErrBidUnitPriceInUsommMustBePositive, "sale token unit price: %s", sdk.MustNewDecFromStr("0.0").String()), + err: errorsmod.Wrapf(ErrBidUnitPriceInUsommMustBePositive, "sale token unit price: %s", sdk.MustNewDecFromStr("0.0").String()), }, { name: "Total usomm paid denom must be usomm", @@ -472,7 +473,7 @@ func TestBidValidate(t *testing.T) { TotalUsommPaid: sdk.NewCoin("usdc", sdk.NewInt(100)), }, expPass: false, - err: sdkerrors.Wrapf(ErrBidMustBeInUsomm, "payment denom: usdc"), + err: errorsmod.Wrapf(ErrBidMustBeInUsomm, "payment denom: usdc"), }, } @@ -523,7 +524,7 @@ func TestTokenPriceValidate(t *testing.T) { LastUpdatedBlock: uint64(321), }, expPass: false, - err: sdkerrors.Wrapf(ErrDenomCannotBeEmpty, "price denom: "), + err: errorsmod.Wrapf(ErrDenomCannotBeEmpty, "price denom: "), }, { name: "Price must be positive", @@ -533,7 +534,7 @@ func TestTokenPriceValidate(t *testing.T) { LastUpdatedBlock: uint64(321), }, expPass: false, - err: sdkerrors.Wrapf(ErrPriceMustBePositive, "usd price: %s", sdk.MustNewDecFromStr("0.0").String()), + err: errorsmod.Wrapf(ErrPriceMustBePositive, "usd price: %s", sdk.MustNewDecFromStr("0.0").String()), }, { name: "Last updated block cannot be 0", @@ -543,7 +544,7 @@ func TestTokenPriceValidate(t *testing.T) { LastUpdatedBlock: uint64(0), }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidLastUpdatedBlock, "block: 0"), + err: errorsmod.Wrapf(ErrInvalidLastUpdatedBlock, "block: 0"), }, { name: "Token price must be usomm or gravity prefixed", @@ -553,7 +554,7 @@ func TestTokenPriceValidate(t *testing.T) { LastUpdatedBlock: uint64(321), }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidTokenPriceDenom, "denom: usdc"), + err: errorsmod.Wrapf(ErrInvalidTokenPriceDenom, "denom: usdc"), }, } @@ -601,7 +602,7 @@ func TestProposedTokenPriceValidate(t *testing.T) { UsdPrice: sdk.MustNewDecFromStr("0.0008"), }, expPass: false, - err: sdkerrors.Wrapf(ErrDenomCannotBeEmpty, "price denom: "), + err: errorsmod.Wrapf(ErrDenomCannotBeEmpty, "price denom: "), }, { name: "Price must be positive", @@ -610,7 +611,7 @@ func TestProposedTokenPriceValidate(t *testing.T) { UsdPrice: sdk.MustNewDecFromStr("0.0"), }, expPass: false, - err: sdkerrors.Wrapf(ErrPriceMustBePositive, "usd price: %s", sdk.MustNewDecFromStr("0.0").String()), + err: errorsmod.Wrapf(ErrPriceMustBePositive, "usd price: %s", sdk.MustNewDecFromStr("0.0").String()), }, { name: "Token price must be usomm or gravity prefixed", @@ -619,7 +620,7 @@ func TestProposedTokenPriceValidate(t *testing.T) { UsdPrice: sdk.MustNewDecFromStr("1.0"), }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidTokenPriceDenom, "denom: usdc"), + err: errorsmod.Wrapf(ErrInvalidTokenPriceDenom, "denom: usdc"), }, } diff --git a/x/auction/types/codec.go b/x/auction/types/codec.go index 38d437fe..da0e4aba 100644 --- a/x/auction/types/codec.go +++ b/x/auction/types/codec.go @@ -6,7 +6,7 @@ import ( cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" ) // RegisterLegacyAminoCodec registers the vesting interfaces and concrete types on the @@ -40,7 +40,7 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { &MsgSubmitBidRequest{}, ) - registry.RegisterImplementations((*govtypes.Content)(nil), + registry.RegisterImplementations((*govtypesv1beta1.Content)(nil), &SetTokenPricesProposal{}, ) diff --git a/x/auction/types/errors.go b/x/auction/types/errors.go index efce96cd..ef263d26 100644 --- a/x/auction/types/errors.go +++ b/x/auction/types/errors.go @@ -1,53 +1,53 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // x/auction module sentinel errors var ( - ErrCouldNotFindSaleTokenPrice = sdkerrors.Register(ModuleName, 2, "could not find sale token price, need to resubmit token prices and try again") - ErrCouldNotFindSommTokenPrice = sdkerrors.Register(ModuleName, 3, "could not find usomm token price, need to resubmit token prices and try again") - ErrLastSaleTokenPriceTooOld = sdkerrors.Register(ModuleName, 4, "last sale token price update too long ago, need to resubmit token prices and try again") - ErrLastSommTokenPriceTooOld = sdkerrors.Register(ModuleName, 5, "last usomm token price update too long ago, need to resubmit token prices and try again") - ErrAuctionStartingAmountMustBePositve = sdkerrors.Register(ModuleName, 6, "minimum auction sale token starting amount must be a positive amount of coins") - ErrCannotAuctionUsomm = sdkerrors.Register(ModuleName, 7, "auctioning usomm for usomm is pointless") - ErrInvalidInitialDecreaseRate = sdkerrors.Register(ModuleName, 8, "initial price decrease rate must be a float less than one and greater than zero") - ErrInvalidBlockDecreaseInterval = sdkerrors.Register(ModuleName, 9, "price decrease block interval cannot be 0") - ErrUnauthorizedFundingModule = sdkerrors.Register(ModuleName, 10, "unauthorized funding module account") - ErrUnauthorizedProceedsModule = sdkerrors.Register(ModuleName, 11, "unauthorized proceeds module account") - ErrCannotStartTwoAuctionsForSameDenomSimultaneously = sdkerrors.Register(ModuleName, 12, "auction for this denom is currently ongoing, cannot create another auction for the same denom until completed") - ErrConvertingStringToDec = sdkerrors.Register(ModuleName, 13, "could not convert string to dec") - ErrAuctionNotFound = sdkerrors.Register(ModuleName, 14, "auction not found") - ErrBidAuctionDenomMismatch = sdkerrors.Register(ModuleName, 15, "auction denom different from bid requested denom") - ErrAuctionEnded = sdkerrors.Register(ModuleName, 16, "auction ended") - ErrInsufficientBid = sdkerrors.Register(ModuleName, 17, "max bid amount is too small to purchase minimum sale tokens requested") - ErrMinimumPurchaseAmountLargerThanTokensRemaining = sdkerrors.Register(ModuleName, 18, "minimum purchase amount is larger then the number of tokens remaining for sale") - ErrAuctionIDMustBeNonZero = sdkerrors.Register(ModuleName, 19, "auction IDs must be non-zero") - ErrInvalidStartBlock = sdkerrors.Register(ModuleName, 20, "start block cannot be 0") - ErrInvalidCurrentDecreaseRate = sdkerrors.Register(ModuleName, 21, "current price decrease rate must be a float less than one and greater than zero") - ErrPriceMustBePositive = sdkerrors.Register(ModuleName, 22, "price must be positive") - ErrDenomCannotBeEmpty = sdkerrors.Register(ModuleName, 23, "denom cannot be empty") - ErrInvalidLastUpdatedBlock = sdkerrors.Register(ModuleName, 24, "last updated block cannot be 0") - ErrBidIDMustBeNonZero = sdkerrors.Register(ModuleName, 25, "bid ID must be non-zero") - ErrBidAmountMustBePositive = sdkerrors.Register(ModuleName, 26, "bid amount must be positive") - ErrBidMustBeInUsomm = sdkerrors.Register(ModuleName, 27, "bid must be in usomm") - ErrInvalidTokenBeingBidOn = sdkerrors.Register(ModuleName, 28, "tokens being bid on must have the gravity prefix") - ErrMinimumAmountMustBePositive = sdkerrors.Register(ModuleName, 29, "minimum amount to purchase with bid must be positive") - ErrAddressExpected = sdkerrors.Register(ModuleName, 30, "address cannot be empty") - ErrBidUnitPriceInUsommMustBePositive = sdkerrors.Register(ModuleName, 31, "unit price of sale tokens in usomm must be positive") - ErrInvalidTokenPriceDenom = sdkerrors.Register(ModuleName, 32, "token price denoms must be either usomm or addresses prefixed with 'gravity'") - ErrTokenPriceProposalAttemptsToUpdateTokenPriceMoreThanOnce = sdkerrors.Register(ModuleName, 33, "token price proposals should not attempt to update the same denom's price more than once per proposal") - ErrTokenPriceMaxBlockAgeMustBePositive = sdkerrors.Register(ModuleName, 34, "price max block age must be positive") - ErrInvalidPriceMaxBlockAgeParameterType = sdkerrors.Register(ModuleName, 35, "price max block age type must be uint64") - ErrTokenPriceProposalMustHaveAtLeastOnePrice = sdkerrors.Register(ModuleName, 36, "list of proposed token prices must be non-zero") - ErrBidFulfilledSaleTokenAmountMustBeNonNegative = sdkerrors.Register(ModuleName, 37, "total sale token fulfilled amount must be non-negative") - ErrBidPaymentCannotBeNegative = sdkerrors.Register(ModuleName, 38, "total amount paid in usomm cannot be negative") - ErrBidAmountIsTooSmall = sdkerrors.Register(ModuleName, 39, "bid is below minimum amount") - ErrMinimumBidParam = sdkerrors.Register(ModuleName, 40, "invalid minimum bid param") - ErrInvalidAuctionMaxBlockAgeParam = sdkerrors.Register(ModuleName, 41, "invalid auction max block age param") - ErrInvalidAuctionPriceDecreaseAccelerationRateParam = sdkerrors.Register(ModuleName, 42, "invalid auction price decrease acceleration rate param") - ErrTokenPriceExponentTooHigh = sdkerrors.Register(ModuleName, 43, "token price exponent too high, maximum precision of 18") - ErrInvalidMinimumSaleTokensUSDValue = sdkerrors.Register(ModuleName, 44, "invalid minimum sale tokens USD value") - ErrAuctionBelowMinimumUSDValue = sdkerrors.Register(ModuleName, 45, "auction USD value below minimum") + ErrCouldNotFindSaleTokenPrice = errorsmod.Register(ModuleName, 2, "could not find sale token price, need to resubmit token prices and try again") + ErrCouldNotFindSommTokenPrice = errorsmod.Register(ModuleName, 3, "could not find usomm token price, need to resubmit token prices and try again") + ErrLastSaleTokenPriceTooOld = errorsmod.Register(ModuleName, 4, "last sale token price update too long ago, need to resubmit token prices and try again") + ErrLastSommTokenPriceTooOld = errorsmod.Register(ModuleName, 5, "last usomm token price update too long ago, need to resubmit token prices and try again") + ErrAuctionStartingAmountMustBePositve = errorsmod.Register(ModuleName, 6, "minimum auction sale token starting amount must be a positive amount of coins") + ErrCannotAuctionUsomm = errorsmod.Register(ModuleName, 7, "auctioning usomm for usomm is pointless") + ErrInvalidInitialDecreaseRate = errorsmod.Register(ModuleName, 8, "initial price decrease rate must be a float less than one and greater than zero") + ErrInvalidBlockDecreaseInterval = errorsmod.Register(ModuleName, 9, "price decrease block interval cannot be 0") + ErrUnauthorizedFundingModule = errorsmod.Register(ModuleName, 10, "unauthorized funding module account") + ErrUnauthorizedProceedsModule = errorsmod.Register(ModuleName, 11, "unauthorized proceeds module account") + ErrCannotStartTwoAuctionsForSameDenomSimultaneously = errorsmod.Register(ModuleName, 12, "auction for this denom is currently ongoing, cannot create another auction for the same denom until completed") + ErrConvertingStringToDec = errorsmod.Register(ModuleName, 13, "could not convert string to dec") + ErrAuctionNotFound = errorsmod.Register(ModuleName, 14, "auction not found") + ErrBidAuctionDenomMismatch = errorsmod.Register(ModuleName, 15, "auction denom different from bid requested denom") + ErrAuctionEnded = errorsmod.Register(ModuleName, 16, "auction ended") + ErrInsufficientBid = errorsmod.Register(ModuleName, 17, "max bid amount is too small to purchase minimum sale tokens requested") + ErrMinimumPurchaseAmountLargerThanTokensRemaining = errorsmod.Register(ModuleName, 18, "minimum purchase amount is larger then the number of tokens remaining for sale") + ErrAuctionIDMustBeNonZero = errorsmod.Register(ModuleName, 19, "auction IDs must be non-zero") + ErrInvalidStartBlock = errorsmod.Register(ModuleName, 20, "start block cannot be 0") + ErrInvalidCurrentDecreaseRate = errorsmod.Register(ModuleName, 21, "current price decrease rate must be a float less than one and greater than zero") + ErrPriceMustBePositive = errorsmod.Register(ModuleName, 22, "price must be positive") + ErrDenomCannotBeEmpty = errorsmod.Register(ModuleName, 23, "denom cannot be empty") + ErrInvalidLastUpdatedBlock = errorsmod.Register(ModuleName, 24, "last updated block cannot be 0") + ErrBidIDMustBeNonZero = errorsmod.Register(ModuleName, 25, "bid ID must be non-zero") + ErrBidAmountMustBePositive = errorsmod.Register(ModuleName, 26, "bid amount must be positive") + ErrBidMustBeInUsomm = errorsmod.Register(ModuleName, 27, "bid must be in usomm") + ErrInvalidTokenBeingBidOn = errorsmod.Register(ModuleName, 28, "tokens being bid on must have the gravity prefix") + ErrMinimumAmountMustBePositive = errorsmod.Register(ModuleName, 29, "minimum amount to purchase with bid must be positive") + ErrAddressExpected = errorsmod.Register(ModuleName, 30, "address cannot be empty") + ErrBidUnitPriceInUsommMustBePositive = errorsmod.Register(ModuleName, 31, "unit price of sale tokens in usomm must be positive") + ErrInvalidTokenPriceDenom = errorsmod.Register(ModuleName, 32, "token price denoms must be either usomm or addresses prefixed with 'gravity'") + ErrTokenPriceProposalAttemptsToUpdateTokenPriceMoreThanOnce = errorsmod.Register(ModuleName, 33, "token price proposals should not attempt to update the same denom's price more than once per proposal") + ErrTokenPriceMaxBlockAgeMustBePositive = errorsmod.Register(ModuleName, 34, "price max block age must be positive") + ErrInvalidPriceMaxBlockAgeParameterType = errorsmod.Register(ModuleName, 35, "price max block age type must be uint64") + ErrTokenPriceProposalMustHaveAtLeastOnePrice = errorsmod.Register(ModuleName, 36, "list of proposed token prices must be non-zero") + ErrBidFulfilledSaleTokenAmountMustBeNonNegative = errorsmod.Register(ModuleName, 37, "total sale token fulfilled amount must be non-negative") + ErrBidPaymentCannotBeNegative = errorsmod.Register(ModuleName, 38, "total amount paid in usomm cannot be negative") + ErrBidAmountIsTooSmall = errorsmod.Register(ModuleName, 39, "bid is below minimum amount") + ErrMinimumBidParam = errorsmod.Register(ModuleName, 40, "invalid minimum bid param") + ErrInvalidAuctionMaxBlockAgeParam = errorsmod.Register(ModuleName, 41, "invalid auction max block age param") + ErrInvalidAuctionPriceDecreaseAccelerationRateParam = errorsmod.Register(ModuleName, 42, "invalid auction price decrease acceleration rate param") + ErrTokenPriceExponentTooHigh = errorsmod.Register(ModuleName, 43, "token price exponent too high, maximum precision of 18") + ErrInvalidMinimumSaleTokensUSDValue = errorsmod.Register(ModuleName, 44, "invalid minimum sale tokens USD value") + ErrAuctionBelowMinimumUSDValue = errorsmod.Register(ModuleName, 45, "auction USD value below minimum") ) diff --git a/x/auction/types/genesis_test.go b/x/auction/types/genesis_test.go index f91231b2..cd390fd5 100644 --- a/x/auction/types/genesis_test.go +++ b/x/auction/types/genesis_test.go @@ -3,8 +3,8 @@ package types import ( "testing" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/stretchr/testify/require" ) @@ -130,7 +130,7 @@ func TestGenesisValidate(t *testing.T) { LastBidId: uint64(1), }, expPass: false, - err: sdkerrors.Wrapf(ErrAuctionIDMustBeNonZero, "id: 0"), + err: errorsmod.Wrapf(ErrAuctionIDMustBeNonZero, "id: 0"), }, { name: "Validate basic canary -- Invalid bid", @@ -180,7 +180,7 @@ func TestGenesisValidate(t *testing.T) { LastBidId: uint64(1), }, expPass: false, - err: sdkerrors.Wrapf(ErrBidIDMustBeNonZero, "id: 0"), + err: errorsmod.Wrapf(ErrBidIDMustBeNonZero, "id: 0"), }, { name: "Validate basic canary -- Invalid token price", @@ -230,7 +230,7 @@ func TestGenesisValidate(t *testing.T) { LastBidId: uint64(1), }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidTokenPriceDenom, "denom: usdc"), + err: errorsmod.Wrapf(ErrInvalidTokenPriceDenom, "denom: usdc"), }, } diff --git a/x/auction/types/msgs.go b/x/auction/types/msgs.go index 17e20d4f..94bbdb0b 100644 --- a/x/auction/types/msgs.go +++ b/x/auction/types/msgs.go @@ -3,6 +3,7 @@ package types import ( "strings" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/peggyjv/sommelier/v7/app/params" @@ -39,27 +40,27 @@ func (m *MsgSubmitBidRequest) Type() string { return TypeMsgSubmitBidRequest } // ValidateBasic implements sdk.Msg func (m *MsgSubmitBidRequest) ValidateBasic() error { if m.AuctionId == 0 { - return sdkerrors.Wrapf(ErrAuctionIDMustBeNonZero, "id: %d", m.AuctionId) + return errorsmod.Wrapf(ErrAuctionIDMustBeNonZero, "id: %d", m.AuctionId) } if m.MaxBidInUsomm.Denom != params.BaseCoinUnit { - return sdkerrors.Wrapf(ErrBidMustBeInUsomm, "bid: %s", m.MaxBidInUsomm.String()) + return errorsmod.Wrapf(ErrBidMustBeInUsomm, "bid: %s", m.MaxBidInUsomm.String()) } if !m.MaxBidInUsomm.IsPositive() { - return sdkerrors.Wrapf(ErrBidAmountMustBePositive, "bid amount in usomm: %s", m.MaxBidInUsomm.String()) + return errorsmod.Wrapf(ErrBidAmountMustBePositive, "bid amount in usomm: %s", m.MaxBidInUsomm.String()) } if !strings.HasPrefix(m.SaleTokenMinimumAmount.Denom, "gravity0x") { - return sdkerrors.Wrapf(ErrInvalidTokenBeingBidOn, "sale token: %s", m.SaleTokenMinimumAmount.String()) + return errorsmod.Wrapf(ErrInvalidTokenBeingBidOn, "sale token: %s", m.SaleTokenMinimumAmount.String()) } if !m.SaleTokenMinimumAmount.IsPositive() { - return sdkerrors.Wrapf(ErrMinimumAmountMustBePositive, "sale token amount: %s", m.SaleTokenMinimumAmount.String()) + return errorsmod.Wrapf(ErrMinimumAmountMustBePositive, "sale token amount: %s", m.SaleTokenMinimumAmount.String()) } if _, err := sdk.AccAddressFromBech32(m.Signer); err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) + return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) } return nil diff --git a/x/auction/types/msgs_test.go b/x/auction/types/msgs_test.go index 5e4966c8..d141cf0b 100644 --- a/x/auction/types/msgs_test.go +++ b/x/auction/types/msgs_test.go @@ -3,6 +3,7 @@ package types import ( "testing" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/stretchr/testify/require" @@ -50,7 +51,7 @@ func TestMsgValidate(t *testing.T) { Signer: cosmosAddress1, }, expPass: false, - err: sdkerrors.Wrapf(ErrAuctionIDMustBeNonZero, "id: 0"), + err: errorsmod.Wrapf(ErrAuctionIDMustBeNonZero, "id: 0"), }, { name: "Bid must be in usomm", @@ -61,7 +62,7 @@ func TestMsgValidate(t *testing.T) { Signer: cosmosAddress1, }, expPass: false, - err: sdkerrors.Wrapf(ErrBidMustBeInUsomm, "bid: %s", sdk.NewCoin("usdc", sdk.NewInt(200))), + err: errorsmod.Wrapf(ErrBidMustBeInUsomm, "bid: %s", sdk.NewCoin("usdc", sdk.NewInt(200))), }, { name: "Bid must be positive", @@ -72,7 +73,7 @@ func TestMsgValidate(t *testing.T) { Signer: cosmosAddress1, }, expPass: false, - err: sdkerrors.Wrapf(ErrBidAmountMustBePositive, "bid amount in usomm: %s", sdk.NewCoin("usomm", sdk.NewInt(0))), + err: errorsmod.Wrapf(ErrBidAmountMustBePositive, "bid amount in usomm: %s", sdk.NewCoin("usomm", sdk.NewInt(0))), }, { name: "Sale token must be prefixed with gravity0x", @@ -83,7 +84,7 @@ func TestMsgValidate(t *testing.T) { Signer: cosmosAddress1, }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidTokenBeingBidOn, "sale token: %s", sdk.NewCoin("usdc", sdk.NewInt(1))), + err: errorsmod.Wrapf(ErrInvalidTokenBeingBidOn, "sale token: %s", sdk.NewCoin("usdc", sdk.NewInt(1))), }, { name: "Sale token minimum amount must be positive", @@ -94,7 +95,7 @@ func TestMsgValidate(t *testing.T) { Signer: cosmosAddress1, }, expPass: false, - err: sdkerrors.Wrapf(ErrMinimumAmountMustBePositive, "sale token amount: %s", sdk.NewCoin("gravity0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", sdk.NewInt(0))), + err: errorsmod.Wrapf(ErrMinimumAmountMustBePositive, "sale token amount: %s", sdk.NewCoin("gravity0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", sdk.NewInt(0))), }, { name: "Signer address must be in bech32 format", @@ -105,7 +106,7 @@ func TestMsgValidate(t *testing.T) { Signer: "zoidberg", }, expPass: false, - err: sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "decoding bech32 failed: invalid separator index -1"), + err: errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "decoding bech32 failed: invalid separator index -1"), }, } diff --git a/x/auction/types/params.go b/x/auction/types/params.go index ddaa7e39..7338b5f4 100644 --- a/x/auction/types/params.go +++ b/x/auction/types/params.go @@ -1,8 +1,8 @@ package types import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" ) @@ -68,11 +68,11 @@ func (p *Params) ValidateBasic() error { func validatePriceMaxBlockAge(i interface{}) error { priceMaxBlockAge, ok := i.(uint64) if !ok { - return sdkerrors.Wrapf(ErrInvalidPriceMaxBlockAgeParameterType, "type: %T", i) + return errorsmod.Wrapf(ErrInvalidPriceMaxBlockAgeParameterType, "type: %T", i) } if priceMaxBlockAge == 0 { - return sdkerrors.Wrapf(ErrTokenPriceMaxBlockAgeMustBePositive, "value: %d", priceMaxBlockAge) + return errorsmod.Wrapf(ErrTokenPriceMaxBlockAgeMustBePositive, "value: %d", priceMaxBlockAge) } return nil @@ -81,7 +81,7 @@ func validatePriceMaxBlockAge(i interface{}) error { func validateMinimumBidInUsomm(i interface{}) error { _, ok := i.(uint64) if !ok { - return sdkerrors.Wrapf(ErrMinimumBidParam, "invalid minimum bid in usomm parameter type: %T", i) + return errorsmod.Wrapf(ErrMinimumBidParam, "invalid minimum bid in usomm parameter type: %T", i) } return nil @@ -90,12 +90,12 @@ func validateMinimumBidInUsomm(i interface{}) error { func validateMinimumSaleTokensUSDValue(i interface{}) error { minimumSaleTokensUsdValue, ok := i.(sdk.Dec) if !ok { - return sdkerrors.Wrapf(ErrInvalidMinimumSaleTokensUSDValue, "invalid minimum sale tokens USD value parameter type: %T", i) + return errorsmod.Wrapf(ErrInvalidMinimumSaleTokensUSDValue, "invalid minimum sale tokens USD value parameter type: %T", i) } if minimumSaleTokensUsdValue.LT(sdk.MustNewDecFromStr("1.0")) { // Setting this to a minimum of 1.0 USD to ensure we can realistically charge a non-fractional usomm value - return sdkerrors.Wrapf(ErrInvalidMinimumSaleTokensUSDValue, "minimum sale tokens USD value must be at least 1.0") + return errorsmod.Wrapf(ErrInvalidMinimumSaleTokensUSDValue, "minimum sale tokens USD value must be at least 1.0") } return nil @@ -104,7 +104,7 @@ func validateMinimumSaleTokensUSDValue(i interface{}) error { func validateAuctionMaxBlockAge(i interface{}) error { _, ok := i.(uint64) if !ok { - return sdkerrors.Wrapf(ErrInvalidAuctionMaxBlockAgeParam, "invalid auction max block age parameter type: %T", i) + return errorsmod.Wrapf(ErrInvalidAuctionMaxBlockAgeParam, "invalid auction max block age parameter type: %T", i) } return nil @@ -113,12 +113,12 @@ func validateAuctionMaxBlockAge(i interface{}) error { func validateAuctionPriceDecreaseAccelerationRate(i interface{}) error { auctionPriceDecreaseAccelerationRate, ok := i.(sdk.Dec) if !ok { - return sdkerrors.Wrapf(ErrInvalidAuctionPriceDecreaseAccelerationRateParam, "invalid auction price decrease acceleration rate parameter type: %T", i) + return errorsmod.Wrapf(ErrInvalidAuctionPriceDecreaseAccelerationRateParam, "invalid auction price decrease acceleration rate parameter type: %T", i) } if auctionPriceDecreaseAccelerationRate.LT(sdk.MustNewDecFromStr("0")) || auctionPriceDecreaseAccelerationRate.GT(sdk.MustNewDecFromStr("1.0")) { // Acceleration rates could in theory be more than 100% if need be, but we are establishing this as a bound for now - return sdkerrors.Wrapf(ErrInvalidAuctionPriceDecreaseAccelerationRateParam, "auction price decrease acceleration rate must be between 0 and 1 inclusive (0%% to 100%%)") + return errorsmod.Wrapf(ErrInvalidAuctionPriceDecreaseAccelerationRateParam, "auction price decrease acceleration rate must be between 0 and 1 inclusive (0%% to 100%%)") } return nil diff --git a/x/auction/types/params_test.go b/x/auction/types/params_test.go index f98c38e9..e60abf87 100644 --- a/x/auction/types/params_test.go +++ b/x/auction/types/params_test.go @@ -3,8 +3,8 @@ package types import ( "testing" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/stretchr/testify/require" ) @@ -41,7 +41,7 @@ func TestParamsValidate(t *testing.T) { AuctionPriceDecreaseAccelerationRate: sdk.MustNewDecFromStr("0.1"), }, expPass: false, - err: sdkerrors.Wrapf(ErrTokenPriceMaxBlockAgeMustBePositive, "value: 0"), + err: errorsmod.Wrapf(ErrTokenPriceMaxBlockAgeMustBePositive, "value: 0"), }, { name: "Auction price decrease acceleration rate bounds check lower end", @@ -52,7 +52,7 @@ func TestParamsValidate(t *testing.T) { AuctionPriceDecreaseAccelerationRate: sdk.MustNewDecFromStr("-0.01"), }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidAuctionPriceDecreaseAccelerationRateParam, "auction price decrease acceleration rate must be between 0 and 1 inclusive (0%% to 100%%)"), + err: errorsmod.Wrapf(ErrInvalidAuctionPriceDecreaseAccelerationRateParam, "auction price decrease acceleration rate must be between 0 and 1 inclusive (0%% to 100%%)"), }, { name: "Auction price decrease acceleration rate bounds check upper end", @@ -63,7 +63,7 @@ func TestParamsValidate(t *testing.T) { AuctionPriceDecreaseAccelerationRate: sdk.MustNewDecFromStr("1.1"), }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidAuctionPriceDecreaseAccelerationRateParam, "auction price decrease acceleration rate must be between 0 and 1 inclusive (0%% to 100%%)"), + err: errorsmod.Wrapf(ErrInvalidAuctionPriceDecreaseAccelerationRateParam, "auction price decrease acceleration rate must be between 0 and 1 inclusive (0%% to 100%%)"), }, } diff --git a/x/auction/types/proposal.go b/x/auction/types/proposal.go index 1d9798c4..8484f3da 100644 --- a/x/auction/types/proposal.go +++ b/x/auction/types/proposal.go @@ -1,19 +1,26 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + errorsmod "cosmossdk.io/errors" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" ) const ( ProposalTypeSetTokenPrices = "SetTokenPrices" ) -var _ govtypes.Content = &SetTokenPricesProposal{} +var _ govtypesv1beta1.Content = &SetTokenPricesProposal{} func init() { - govtypes.RegisterProposalType(ProposalTypeSetTokenPrices) - govtypes.RegisterProposalTypeCodec(&SetTokenPricesProposal{}, "sommelier/SetTokenPricesProposal") + govtypesv1beta1.RegisterProposalType(ProposalTypeSetTokenPrices) + // The RegisterProposalTypeCodec function was mysteriously removed by in 0.46.0 even though + // the claim was that the old API would be preserved in .../x/gov/types/v1beta1 so we have + // to interact with the codec directly. + // + // The PR that removed it: https://github.com/cosmos/cosmos-sdk/pull/11240 + // This PR was later reverted, but RegisterProposalTypeCodec was still left out. Not sure if + // this was intentional or not. + govtypesv1beta1.ModuleCdc.RegisterConcrete(&SetTokenPricesProposal{}, "sommelier/SetTokenPricesProposal", nil) } func NewSetTokenPricesProposal(title string, description string, proposedTokenPrices []*ProposedTokenPrice) *SetTokenPricesProposal { @@ -33,12 +40,12 @@ func (m *SetTokenPricesProposal) ProposalType() string { } func (m *SetTokenPricesProposal) ValidateBasic() error { - if err := govtypes.ValidateAbstract(m); err != nil { + if err := govtypesv1beta1.ValidateAbstract(m); err != nil { return err } if len(m.TokenPrices) == 0 { - return sdkerrors.Wrapf(ErrTokenPriceProposalMustHaveAtLeastOnePrice, "prices: %v", m.TokenPrices) + return errorsmod.Wrapf(ErrTokenPriceProposalMustHaveAtLeastOnePrice, "prices: %v", m.TokenPrices) } seenDenomPrices := []string{} @@ -47,7 +54,7 @@ func (m *SetTokenPricesProposal) ValidateBasic() error { // Check if this price proposal attempts to update the same denom price twice for _, seenDenom := range seenDenomPrices { if seenDenom == tokenPrice.Denom { - return sdkerrors.Wrapf(ErrTokenPriceProposalAttemptsToUpdateTokenPriceMoreThanOnce, "denom: %s", tokenPrice.Denom) + return errorsmod.Wrapf(ErrTokenPriceProposalAttemptsToUpdateTokenPriceMoreThanOnce, "denom: %s", tokenPrice.Denom) } } diff --git a/x/auction/types/proposal_test.go b/x/auction/types/proposal_test.go index baa9d680..c43107dd 100644 --- a/x/auction/types/proposal_test.go +++ b/x/auction/types/proposal_test.go @@ -3,8 +3,8 @@ package types import ( "testing" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/stretchr/testify/require" @@ -66,7 +66,7 @@ func TestTokenPriceProposalValidate(t *testing.T) { }, }, expPass: false, - err: sdkerrors.Wrap(govtypes.ErrInvalidProposalContent, "proposal title cannot be blank"), + err: errorsmod.Wrap(govtypes.ErrInvalidProposalContent, "proposal title cannot be blank"), }, { name: "Gov validate basic canary 2 -- description cannot be empty", @@ -81,7 +81,7 @@ func TestTokenPriceProposalValidate(t *testing.T) { }, }, expPass: false, - err: sdkerrors.Wrap(govtypes.ErrInvalidProposalContent, "proposal description cannot be blank"), + err: errorsmod.Wrap(govtypes.ErrInvalidProposalContent, "proposal description cannot be blank"), }, { name: "Token price proposal must have at least one token price", @@ -91,7 +91,7 @@ func TestTokenPriceProposalValidate(t *testing.T) { TokenPrices: []*ProposedTokenPrice{}, }, expPass: false, - err: sdkerrors.Wrapf(ErrTokenPriceProposalMustHaveAtLeastOnePrice, "prices: %v", []*ProposedTokenPrice{}), + err: errorsmod.Wrapf(ErrTokenPriceProposalMustHaveAtLeastOnePrice, "prices: %v", []*ProposedTokenPrice{}), }, { name: "Cannot have duplicate denoms in token price proposal", @@ -110,7 +110,7 @@ func TestTokenPriceProposalValidate(t *testing.T) { }, }, expPass: false, - err: sdkerrors.Wrapf(ErrTokenPriceProposalAttemptsToUpdateTokenPriceMoreThanOnce, "denom: usomm"), + err: errorsmod.Wrapf(ErrTokenPriceProposalAttemptsToUpdateTokenPriceMoreThanOnce, "denom: usomm"), }, { name: "Token price validate basic canary 1 -- cannot have empty denom", @@ -125,7 +125,7 @@ func TestTokenPriceProposalValidate(t *testing.T) { }, }, expPass: false, - err: sdkerrors.Wrapf(ErrDenomCannotBeEmpty, "price denom: "), + err: errorsmod.Wrapf(ErrDenomCannotBeEmpty, "price denom: "), }, { name: "Token price validate basic canary 2 -- price must be positive", @@ -140,7 +140,7 @@ func TestTokenPriceProposalValidate(t *testing.T) { }, }, expPass: false, - err: sdkerrors.Wrapf(ErrPriceMustBePositive, "usd price: %s", sdk.MustNewDecFromStr("0.0").String()), + err: errorsmod.Wrapf(ErrPriceMustBePositive, "usd price: %s", sdk.MustNewDecFromStr("0.0").String()), }, } diff --git a/x/axelarcork/client/cli/query.go b/x/axelarcork/client/cli/query.go index 0b1efbf5..9963d308 100644 --- a/x/axelarcork/client/cli/query.go +++ b/x/axelarcork/client/cli/query.go @@ -1,13 +1,12 @@ package cli import ( - "strconv" + "fmt" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/peggyjv/sommelier/v7/x/axelarcork/types" "github.com/spf13/cobra" ) @@ -111,7 +110,7 @@ func queryCellarIDsByChainID() *cobra.Command { return err } - chainID, err := sdk.ParseUint(args[0]) + chainID, err := math.ParseUint(args[0]) if err != nil { return err } @@ -150,7 +149,7 @@ func queryScheduledCorks() *cobra.Command { queryClient := types.NewQueryClient(ctx) - chainID, err := sdk.ParseUint(args[0]) + chainID, err := math.ParseUint(args[0]) if err != nil { return err } @@ -185,19 +184,19 @@ func queryScheduledCorksByBlockHeight() *cobra.Command { return err } - height, err := strconv.Atoi(args[0]) + height, err := math.ParseUint(args[0]) if err != nil { return err } queryClient := types.NewQueryClient(ctx) - chainID, err := sdk.ParseUint(args[0]) + chainID, err := math.ParseUint(args[0]) if err != nil { return err } req := &types.QueryScheduledCorksByBlockHeightRequest{ - BlockHeight: uint64(height), + BlockHeight: height.Uint64(), ChainId: chainID.Uint64(), } @@ -228,7 +227,7 @@ func queryScheduledBlockHeights() *cobra.Command { } queryClient := types.NewQueryClient(ctx) - chainID, err := sdk.ParseUint(args[0]) + chainID, err := math.ParseUint(args[0]) if err != nil { return err } @@ -267,11 +266,11 @@ func queryScheduledCorksByID() *cobra.Command { id := args[0] // the length of a keccak256 hash string if len(id) != 64 { - return sdkerrors.New("", uint32(1), "invalid ID length, must be a keccak256 hash") + return fmt.Errorf("invalid ID length, must be a keccak256 hash") } queryClient := types.NewQueryClient(ctx) - chainID, err := sdk.ParseUint(args[0]) + chainID, err := math.ParseUint(args[0]) if err != nil { return err } @@ -309,11 +308,11 @@ func queryCorkResult() *cobra.Command { corkID := args[0] // the length of a keccak256 hash string if len(corkID) != 64 { - return sdkerrors.New("", uint32(1), "invalid ID length, must be a keccak256 hash") + return fmt.Errorf("invalid ID length, must be a keccak256 hash") } queryClient := types.NewQueryClient(ctx) - chainID, err := sdk.ParseUint(args[1]) + chainID, err := math.ParseUint(args[1]) if err != nil { return err } @@ -350,7 +349,7 @@ func queryCorkResults() *cobra.Command { } queryClient := types.NewQueryClient(ctx) - chainID, err := sdk.ParseUint(args[0]) + chainID, err := math.ParseUint(args[0]) if err != nil { return err } diff --git a/x/axelarcork/client/cli/query_test.go b/x/axelarcork/client/cli/query_test.go index e0d549bb..432aa9f8 100644 --- a/x/axelarcork/client/cli/query_test.go +++ b/x/axelarcork/client/cli/query_test.go @@ -1,36 +1,12 @@ package cli import ( + "fmt" "testing" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/stretchr/testify/require" ) -func TestQueryScheduledCorksByBlockHeightCmd(t *testing.T) { - testCases := []struct { - name string - args []string - err error - }{ - { - name: "Block height overflow", - args: []string{ - "18446744073709551616", - }, - err: sdkerrors.New("", uint32(1), "strconv.Atoi: parsing \"18446744073709551616\": value out of range"), - }, - } - - for _, tc := range testCases { - cmd := *queryScheduledCorksByBlockHeight() - cmd.SetArgs(tc.args) - err := cmd.Execute() - - require.Equal(t, tc.err.Error(), err.Error()) - } -} - func TestQueryScheduledCorksByIDCmd(t *testing.T) { testCases := []struct { name string @@ -42,7 +18,7 @@ func TestQueryScheduledCorksByIDCmd(t *testing.T) { args: []string{ "bad", }, - err: sdkerrors.New("", uint32(1), "invalid ID length, must be a keccak256 hash"), + err: fmt.Errorf("invalid ID length, must be a keccak256 hash"), }, } @@ -67,7 +43,7 @@ func TestQueryCorkResultCmd(t *testing.T) { "1", "bad", }, - err: sdkerrors.New("", uint32(1), "invalid ID length, must be a keccak256 hash"), + err: fmt.Errorf("invalid ID length, must be a keccak256 hash"), }, } diff --git a/x/axelarcork/client/cli/tx.go b/x/axelarcork/client/cli/tx.go index 75542ad3..b81fc20c 100644 --- a/x/axelarcork/client/cli/tx.go +++ b/x/axelarcork/client/cli/tx.go @@ -5,11 +5,13 @@ import ( "os" "strings" + "cosmossdk.io/math" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/tx" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/version" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" "github.com/ethereum/go-ethereum/common" types "github.com/peggyjv/sommelier/v7/x/axelarcork/types" "github.com/spf13/cobra" @@ -52,7 +54,7 @@ func CmdScheduleAxelarCork() *cobra.Command { from := clientCtx.GetFromAddress() - chainID, err := sdk.ParseUint(args[0]) + chainID, err := math.ParseUint(args[0]) if err != nil { return err } @@ -62,7 +64,7 @@ func CmdScheduleAxelarCork() *cobra.Command { return fmt.Errorf("contract address %s is invalid", contractAddr) } - blockHeight, err := sdk.ParseUint(args[2]) + blockHeight, err := math.ParseUint(args[2]) if err != nil { return err } @@ -104,7 +106,7 @@ func CmdRelayAxelarCork() *cobra.Command { from := clientCtx.GetFromAddress() - chainID, err := sdk.ParseUint(args[0]) + chainID, err := math.ParseUint(args[0]) if err != nil { return err } @@ -119,7 +121,7 @@ func CmdRelayAxelarCork() *cobra.Command { return err } - fee, err := sdk.ParseUint(args[3]) + fee, err := math.ParseUint(args[3]) if err != nil { return err } @@ -156,7 +158,7 @@ func CmdRelayAxelarProxyUpgrade() *cobra.Command { from := clientCtx.GetFromAddress() - chainID, err := sdk.ParseUint(args[0]) + chainID, err := math.ParseUint(args[0]) if err != nil { return err } @@ -166,7 +168,7 @@ func CmdRelayAxelarProxyUpgrade() *cobra.Command { return err } - fee, err := sdk.ParseUint(args[3]) + fee, err := math.ParseUint(args[3]) if err != nil { return err } @@ -289,7 +291,7 @@ Where proposal.json contains: &types.CellarIDSet{Ids: proposal.CellarIds.Ids}) from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -359,7 +361,7 @@ Where proposal.json contains: &types.CellarIDSet{Ids: proposal.CellarIds.Ids}) from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -438,7 +440,7 @@ The contract_call_proto_json field must be the JSON representation of a Schedule } from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -521,7 +523,7 @@ Where proposal.json contains: amount, ) - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -596,7 +598,7 @@ Where proposal.json contains: ) from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -664,7 +666,7 @@ Where proposal.json contains: proposal.ChainId) from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -734,7 +736,7 @@ Where proposal.json contains: ) from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -802,7 +804,7 @@ Where proposal.json contains: ) from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } diff --git a/x/axelarcork/client/cli/tx_test.go b/x/axelarcork/client/cli/tx_test.go index ecda0e56..69507608 100644 --- a/x/axelarcork/client/cli/tx_test.go +++ b/x/axelarcork/client/cli/tx_test.go @@ -1,7 +1,6 @@ package cli import ( - "io/ioutil" "os" "testing" @@ -25,10 +24,10 @@ func TestParseAddManagedCellarsProposal(t *testing.T) { `) proposal := types.AddAxelarManagedCellarIDsProposalWithDeposit{} - contents, err := ioutil.ReadFile(okJSON.Name()) + contents, err := os.ReadFile(okJSON.Name()) require.NoError(t, err) - err = encodingConfig.Marshaler.UnmarshalJSON(contents, &proposal) + err = encodingConfig.Codec.UnmarshalJSON(contents, &proposal) require.NoError(t, err) require.Equal(t, "Dollary-doos LP Cellar Proposal", proposal.Title) @@ -51,10 +50,10 @@ func TestParseRemoveManagedCellarsProposal(t *testing.T) { `) proposal := types.RemoveAxelarManagedCellarIDsProposalWithDeposit{} - contents, err := ioutil.ReadFile(okJSON.Name()) + contents, err := os.ReadFile(okJSON.Name()) require.NoError(t, err) - err = encodingConfig.Marshaler.UnmarshalJSON(contents, &proposal) + err = encodingConfig.Codec.UnmarshalJSON(contents, &proposal) require.NoError(t, err) require.Equal(t, "Dollary-doos LP Cellar Proposal", proposal.Title) @@ -77,10 +76,10 @@ func TestParseSubmitScheduledCorkProposal(t *testing.T) { `) proposal := types.AxelarScheduledCorkProposalWithDeposit{} - contents, err := ioutil.ReadFile(okJSON.Name()) + contents, err := os.ReadFile(okJSON.Name()) require.NoError(t, err) - err = encodingConfig.Marshaler.UnmarshalJSON(contents, &proposal) + err = encodingConfig.Codec.UnmarshalJSON(contents, &proposal) require.NoError(t, err) require.Equal(t, "Scheduled cork proposal", proposal.Title) @@ -106,7 +105,7 @@ func TestParseUpgradeAxelarProxyContractProposal(t *testing.T) { contents, err := os.ReadFile(okJSON.Name()) require.NoError(t, err) - err = encodingConfig.Marshaler.UnmarshalJSON(contents, &proposal) + err = encodingConfig.Codec.UnmarshalJSON(contents, &proposal) require.NoError(t, err) require.Equal(t, "Upgrade Axelar proxy contract proposal", proposal.Title) @@ -131,7 +130,7 @@ func TestParseCancelAxelarProxyContractUpgradeProposal(t *testing.T) { contents, err := os.ReadFile(okJSON.Name()) require.NoError(t, err) - err = encodingConfig.Marshaler.UnmarshalJSON(contents, &proposal) + err = encodingConfig.Codec.UnmarshalJSON(contents, &proposal) require.NoError(t, err) require.Equal(t, "Cancel Axelar proxy contract upgrade proposal", proposal.Title) diff --git a/x/axelarcork/client/proposal_handler.go b/x/axelarcork/client/proposal_handler.go index 69bb3942..3cbc4675 100644 --- a/x/axelarcork/client/proposal_handler.go +++ b/x/axelarcork/client/proposal_handler.go @@ -3,16 +3,15 @@ package client import ( govclient "github.com/cosmos/cosmos-sdk/x/gov/client" "github.com/peggyjv/sommelier/v7/x/axelarcork/client/cli" - "github.com/peggyjv/sommelier/v7/x/axelarcork/client/rest" ) var ( - AddProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitAddCellarIDProposal, rest.AddProposalRESTHandler) - RemoveProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitRemoveCellarIDProposal, rest.RemoveProposalRESTHandler) - ScheduledCorkProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitScheduledAxelarCorkProposal, rest.ScheduledCorkProposalRESTHandler) - CommunityPoolEthereumSpendProposalHandler = govclient.NewProposalHandler(cli.CmdSubmitAxelarCommunityPoolEthereumSpendProposal, rest.CommunitySpendProposalRESTHandler) - AddChainConfigurationHandler = govclient.NewProposalHandler(cli.GetCmdSubmitAddChainConfigurationProposal, rest.AddChainConfigurationProposalRESTHandler) - RemoveChainConfigurationHandler = govclient.NewProposalHandler(cli.GetCmdSubmitRemoveChainConfigurationProposal, rest.RemoveChainConfigurationProposalRESTHandler) - UpgradeAxelarProxyContractHandler = govclient.NewProposalHandler(cli.GetCmdSubmitUpgradeAxelarProxyContractProposal, rest.UpgradeAxelarProxyContractProposalRESTHandler) - CancelAxelarProxyContractUpgradeHandler = govclient.NewProposalHandler(cli.GetCmdSubmitCancelAxelarProxyContractUpgradeProposal, rest.CancelAxelarProxyContractUpgradeProposalRESTHandler) + AddProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitAddCellarIDProposal) + RemoveProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitRemoveCellarIDProposal) + ScheduledCorkProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitScheduledAxelarCorkProposal) + CommunityPoolEthereumSpendProposalHandler = govclient.NewProposalHandler(cli.CmdSubmitAxelarCommunityPoolEthereumSpendProposal) + AddChainConfigurationHandler = govclient.NewProposalHandler(cli.GetCmdSubmitAddChainConfigurationProposal) + RemoveChainConfigurationHandler = govclient.NewProposalHandler(cli.GetCmdSubmitRemoveChainConfigurationProposal) + UpgradeAxelarProxyContractHandler = govclient.NewProposalHandler(cli.GetCmdSubmitUpgradeAxelarProxyContractProposal) + CancelAxelarProxyContractUpgradeHandler = govclient.NewProposalHandler(cli.GetCmdSubmitCancelAxelarProxyContractUpgradeProposal) ) diff --git a/x/axelarcork/client/rest/rest.go b/x/axelarcork/client/rest/rest.go deleted file mode 100644 index 7dccfd63..00000000 --- a/x/axelarcork/client/rest/rest.go +++ /dev/null @@ -1,318 +0,0 @@ -package rest - -import ( - "net/http" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/tx" - "github.com/cosmos/cosmos-sdk/types/rest" - govrest "github.com/cosmos/cosmos-sdk/x/gov/client/rest" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - "github.com/peggyjv/sommelier/v7/x/axelarcork/types" -) - -// AddProposalRESTHandler returns a ProposalRESTHandler that exposes add managed cellar IDs REST handler with a given sub-route. -func AddProposalRESTHandler(clientCtx client.Context) govrest.ProposalRESTHandler { - return govrest.ProposalRESTHandler{ - SubRoute: "add_axelar_managed_cellar_ids", - Handler: postAddProposalHandlerFn(clientCtx), - } -} - -// RemoveProposalRESTHandler returns a ProposalRESTHandler that exposes remove managed cellar IDs REST handler with a given sub-route. -func RemoveProposalRESTHandler(clientCtx client.Context) govrest.ProposalRESTHandler { - return govrest.ProposalRESTHandler{ - SubRoute: "remove_axelar_managed_cellar_ids", - Handler: postRemoveProposalHandlerFn(clientCtx), - } -} - -// ScheduledCorkProposalRESTHandler returns a ProposalRESTHandler that exposes the scheduled cork REST handler with a given sub-route. -func ScheduledCorkProposalRESTHandler(clientCtx client.Context) govrest.ProposalRESTHandler { - return govrest.ProposalRESTHandler{ - SubRoute: "scheduled_axelar_cork", - Handler: postScheduledCorkProposalHandlerFn(clientCtx), - } -} - -func postAddProposalHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req AddManagedCellarIDsProposalReq - if !rest.ReadRESTReq(w, r, clientCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - content := types.NewAddManagedCellarIDsProposal( - req.Title, - req.Description, - req.ChainID, - &types.CellarIDSet{ - Ids: req.CellarIDs, - }) - - msg, err := govtypes.NewMsgSubmitProposal(content, req.Deposit, req.Proposer) - if rest.CheckBadRequestError(w, err) { - return - } - if rest.CheckBadRequestError(w, msg.ValidateBasic()) { - return - } - - tx.WriteGeneratedTxResponse(clientCtx, w, req.BaseReq, msg) - } -} - -func postRemoveProposalHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req RemoveManagedCellarIDsProposalReq - if !rest.ReadRESTReq(w, r, clientCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - content := types.NewRemoveManagedCellarIDsProposal( - req.Title, - req.Description, - req.ChainID, - &types.CellarIDSet{ - Ids: req.CellarIDs, - }) - - msg, err := govtypes.NewMsgSubmitProposal(content, req.Deposit, req.Proposer) - if rest.CheckBadRequestError(w, err) { - return - } - if rest.CheckBadRequestError(w, msg.ValidateBasic()) { - return - } - - tx.WriteGeneratedTxResponse(clientCtx, w, req.BaseReq, msg) - } -} - -func postScheduledCorkProposalHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req ScheduledCorkProposalReq - if !rest.ReadRESTReq(w, r, clientCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - content := types.NewAxelarScheduledCorkProposal( - req.Title, - req.Description, - req.BlockHeight, - req.ChainID, - req.TargetContractAddress, - req.ContractCallProtoJSON, - ) - if rest.CheckBadRequestError(w, content.ValidateBasic()) { - return - } - msg, err := govtypes.NewMsgSubmitProposal(content, req.Deposit, req.Proposer) - if rest.CheckBadRequestError(w, err) { - return - } - if rest.CheckBadRequestError(w, msg.ValidateBasic()) { - return - } - - tx.WriteGeneratedTxResponse(clientCtx, w, req.BaseReq, msg) - } -} - -// CommunitySpendProposalRESTHandler returns a ProposalRESTHandler that exposes the community pool spend REST handler with a given sub-route. -func CommunitySpendProposalRESTHandler(clientCtx client.Context) govrest.ProposalRESTHandler { - return govrest.ProposalRESTHandler{ - SubRoute: "community_pool_evm_spend", - Handler: postCommunitySpendProposalHandlerFn(clientCtx), - } -} - -func postCommunitySpendProposalHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req CommunityPoolSpendProposalReq - if !rest.ReadRESTReq(w, r, clientCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - content := types.NewAxelarCommunitySpendProposal(req.Title, req.Description, req.Recipient, req.ChainID, req.Amount) - - msg, err := govtypes.NewMsgSubmitProposal(content, req.Deposit, req.Proposer) - if rest.CheckBadRequestError(w, err) { - return - } - if rest.CheckBadRequestError(w, msg.ValidateBasic()) { - return - } - - tx.WriteGeneratedTxResponse(clientCtx, w, req.BaseReq, msg) - } -} - -// AddChainConfigurationProposalRESTHandler returns a ProposalRESTHandler that exposes add chain configuration REST handler with a given sub-route. -func AddChainConfigurationProposalRESTHandler(clientCtx client.Context) govrest.ProposalRESTHandler { - return govrest.ProposalRESTHandler{ - SubRoute: "add_chain_configuration", - Handler: postAddChainConfigurationProposalHandlerFn(clientCtx), - } -} - -// RemoveChainConfigurationProposalRESTHandler returns a ProposalRESTHandler that exposes remove chain configuration REST handler with a given sub-route. -func RemoveChainConfigurationProposalRESTHandler(clientCtx client.Context) govrest.ProposalRESTHandler { - return govrest.ProposalRESTHandler{ - SubRoute: "remove_chain_configuration", - Handler: postRemoveChainConfigurationProposalHandlerFn(clientCtx), - } -} - -func postAddChainConfigurationProposalHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req AddChainConfigurationProposalReq - if !rest.ReadRESTReq(w, r, clientCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - content := types.NewAddChainConfigurationProposal( - req.Title, - req.Description, - req.ChainConfiguration) - - msg, err := govtypes.NewMsgSubmitProposal(content, req.Deposit, req.Proposer) - if rest.CheckBadRequestError(w, err) { - return - } - if rest.CheckBadRequestError(w, msg.ValidateBasic()) { - return - } - - tx.WriteGeneratedTxResponse(clientCtx, w, req.BaseReq, msg) - } -} - -func postRemoveChainConfigurationProposalHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req RemoveChainConfigurationProposalReq - if !rest.ReadRESTReq(w, r, clientCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - content := types.NewRemoveChainConfigurationProposal( - req.Title, - req.Description, - req.ChainID) - - msg, err := govtypes.NewMsgSubmitProposal(content, req.Deposit, req.Proposer) - if rest.CheckBadRequestError(w, err) { - return - } - if rest.CheckBadRequestError(w, msg.ValidateBasic()) { - return - } - - tx.WriteGeneratedTxResponse(clientCtx, w, req.BaseReq, msg) - } -} - -func UpgradeAxelarProxyContractProposalRESTHandler(clientCtx client.Context) govrest.ProposalRESTHandler { - return govrest.ProposalRESTHandler{ - SubRoute: "upgrade_axelar_proxy_contract", - Handler: postUpgradeAxelarProxyContractProposalHandlerFn(clientCtx), - } -} - -func postUpgradeAxelarProxyContractProposalHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req UpgradeAxelarProxyContractProposalReq - if !rest.ReadRESTReq(w, r, clientCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - content := types.NewUpgradeAxelarProxyContractProposal( - req.Title, - req.Description, - req.ChainID, - req.NewProxyAddress, - ) - - msg, err := govtypes.NewMsgSubmitProposal(content, req.Deposit, req.Proposer) - if rest.CheckBadRequestError(w, err) { - return - } - if rest.CheckBadRequestError(w, msg.ValidateBasic()) { - return - } - - tx.WriteGeneratedTxResponse(clientCtx, w, req.BaseReq, msg) - } -} - -func CancelAxelarProxyContractUpgradeProposalRESTHandler(clientCtx client.Context) govrest.ProposalRESTHandler { - return govrest.ProposalRESTHandler{ - SubRoute: "cancel_axelar_proxy_contract_upgrade", - Handler: postCancelAxelarProxyContractUpgradeProposalHandlerFn(clientCtx), - } -} - -func postCancelAxelarProxyContractUpgradeProposalHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req CancelAxelarProxyContractUpgradeProposalReq - if !rest.ReadRESTReq(w, r, clientCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - content := types.NewCancelAxelarProxyContractUpgradeProposal( - req.Title, - req.Description, - req.ChainID, - ) - - msg, err := govtypes.NewMsgSubmitProposal(content, req.Deposit, req.Proposer) - if rest.CheckBadRequestError(w, err) { - return - } - if rest.CheckBadRequestError(w, msg.ValidateBasic()) { - return - } - - tx.WriteGeneratedTxResponse(clientCtx, w, req.BaseReq, msg) - } -} diff --git a/x/axelarcork/client/rest/utils.go b/x/axelarcork/client/rest/utils.go deleted file mode 100644 index 4053e560..00000000 --- a/x/axelarcork/client/rest/utils.go +++ /dev/null @@ -1,101 +0,0 @@ -package rest - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/rest" - "github.com/peggyjv/sommelier/v7/x/axelarcork/types" -) - -type ( - // AddManagedCellarIDsProposalReq defines a managed cellar ID addition proposal request body. - AddManagedCellarIDsProposalReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - - Title string `json:"title" yaml:"title"` - Description string `json:"description" yaml:"description"` - ChainID uint64 `json:"chain_id" yaml:"chain_id"` - CellarIDs []string `json:"cellar_ids" yaml:"cellar_ids"` - Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` - Deposit sdk.Coins `json:"deposit" yaml:"deposit"` - } - // RemoveManagedCellarIDsProposalReq defines a managed cellar ID removal proposal request body. - RemoveManagedCellarIDsProposalReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - - Title string `json:"title" yaml:"title"` - Description string `json:"description" yaml:"description"` - ChainID uint64 `json:"chain_id" yaml:"chain_id"` - CellarIDs []string `json:"cellar_ids" yaml:"cellar_ids"` - Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` - Deposit sdk.Coins `json:"deposit" yaml:"deposit"` - } - // ScheduledCorkProposalReq defines a schedule cork proposal request body. - ScheduledCorkProposalReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - - Title string `json:"title" yaml:"title"` - Description string `json:"description" yaml:"description"` - BlockHeight uint64 `json:"block_height" yaml:"block_height"` - ChainName string `json:"chain_name" yaml:"chain_name"` - ChainID uint64 `json:"chain_id" yaml:"chain_id"` - TargetContractAddress string `json:"target_contract_address" yaml:"target_contract_address"` - ContractCallProtoJSON string `json:"contract_call_proto_json" yaml:"contract_call_proto_json"` - Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` - Deposit sdk.Coins `json:"deposit" yaml:"deposit"` - } - // CommunityPoolSpendProposalReq defines a community pool spend proposal request body. - CommunityPoolSpendProposalReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - - Title string `json:"title" yaml:"title"` - Description string `json:"description" yaml:"description"` - Recipient string `json:"recipient" yaml:"recipient"` - Amount sdk.Coin `json:"amount" yaml:"amount"` - ChainID uint64 `json:"chain_id" yaml:"chain_id"` - ChainName string `json:"chain_name" yaml:"chain_name"` - Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` - Deposit sdk.Coins `json:"deposit" yaml:"deposit"` - } - // AddChainConfigurationProposalReq defines a chain configuration addition proposal request body. - AddChainConfigurationProposalReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - - Title string `json:"title" yaml:"title"` - Description string `json:"description" yaml:"description"` - ChainConfiguration types.ChainConfiguration `json:"chain_configuration" yaml:"chain_configuration"` - Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` - Deposit sdk.Coins `json:"deposit" yaml:"deposit"` - } - // RemoveChainConfigurationProposalReq defines a chain configuration removal proposal request body. - RemoveChainConfigurationProposalReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - - Title string `json:"title" yaml:"title"` - Description string `json:"description" yaml:"description"` - ChainID uint64 `json:"chain_id" yaml:"chain_id"` - Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` - Deposit sdk.Coins `json:"deposit" yaml:"deposit"` - } - // UpgradeAxelarProxyContractProposalReq defines a upgrade axelar proxy contract proposal request body. - UpgradeAxelarProxyContractProposalReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - - Title string `json:"title" yaml:"title"` - Description string `json:"description" yaml:"description"` - ChainID uint64 `json:"chain_id" yaml:"chain_id"` - NewProxyAddress string `json:"new_proxy_address" yaml:"new_proxy_address"` - Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` - Deposit sdk.Coins `json:"deposit" yaml:"deposit"` - } - - // CancelAxelarProxyContractUpgradeProposalReq defines a cancel axelar proxy contract upgrade proposal request body. - CancelAxelarProxyContractUpgradeProposalReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - - Title string `json:"title" yaml:"title"` - Description string `json:"description" yaml:"description"` - ChainID uint64 `json:"chain_id" yaml:"chain_id"` - Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` - Deposit sdk.Coins `json:"deposit" yaml:"deposit"` - } -) diff --git a/x/axelarcork/handler.go b/x/axelarcork/handler.go index a4610d68..57e8f68d 100644 --- a/x/axelarcork/handler.go +++ b/x/axelarcork/handler.go @@ -1,10 +1,10 @@ package axelarcork import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" "github.com/peggyjv/sommelier/v7/x/axelarcork/keeper" "github.com/peggyjv/sommelier/v7/x/axelarcork/types" @@ -28,13 +28,13 @@ func NewHandler(k keeper.Keeper) sdk.Handler { res, err := k.BumpCorkGas(sdk.WrapSDKContext(ctx), msg) return sdk.WrapServiceResult(ctx, res, err) default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized axelar cork message type: %T", msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized axelar cork message type: %T", msg) } } } -func NewProposalHandler(k keeper.Keeper) govtypes.Handler { - return func(ctx sdk.Context, content govtypes.Content) error { +func NewProposalHandler(k keeper.Keeper) govtypesv1beta1.Handler { + return func(ctx sdk.Context, content govtypesv1beta1.Content) error { switch c := content.(type) { case *types.AddAxelarManagedCellarIDsProposal: return keeper.HandleAddManagedCellarsProposal(ctx, k, *c) @@ -54,7 +54,7 @@ func NewProposalHandler(k keeper.Keeper) govtypes.Handler { return keeper.HandleCancelAxelarProxyContractUpgradeProposal(ctx, k, *c) default: - return sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized axelar cork proposal content type: %T", c) + return errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized axelar cork proposal content type: %T", c) } } } diff --git a/x/axelarcork/ibc_middleware.go b/x/axelarcork/ibc_middleware.go index f1ba07cb..7b39d4ae 100644 --- a/x/axelarcork/ibc_middleware.go +++ b/x/axelarcork/ibc_middleware.go @@ -5,9 +5,10 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" - "github.com/cosmos/ibc-go/v3/modules/core/04-channel/types" - porttypes "github.com/cosmos/ibc-go/v3/modules/core/05-port/types" - "github.com/cosmos/ibc-go/v3/modules/core/exported" + clienttypes "github.com/cosmos/ibc-go/v6/modules/core/02-client/types" + "github.com/cosmos/ibc-go/v6/modules/core/04-channel/types" + porttypes "github.com/cosmos/ibc-go/v6/modules/core/05-port/types" + "github.com/cosmos/ibc-go/v6/modules/core/exported" "github.com/peggyjv/sommelier/v7/x/axelarcork/keeper" ) @@ -25,7 +26,7 @@ func NewIBCMiddleware(k keeper.Keeper, app porttypes.IBCModule) IBCMiddleware { } } -func (im IBCMiddleware) OnChanOpenInit(ctx sdk.Context, order types.Order, connectionHops []string, portID string, channelID string, channelCap *capabilitytypes.Capability, counterparty types.Counterparty, version string) error { +func (im IBCMiddleware) OnChanOpenInit(ctx sdk.Context, order types.Order, connectionHops []string, portID string, channelID string, channelCap *capabilitytypes.Capability, counterparty types.Counterparty, version string) (string, error) { return im.app.OnChanOpenInit(ctx, order, connectionHops, portID, channelID, channelCap, counterparty, version) } @@ -61,14 +62,19 @@ func (im IBCMiddleware) OnTimeoutPacket(ctx sdk.Context, packet types.Packet, re return im.app.OnTimeoutPacket(ctx, packet, relayer) } -func (im IBCMiddleware) SendPacket(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI) error { - if err := im.keeper.ValidateAxelarPacket(ctx, packet); err != nil { +func (im IBCMiddleware) SendPacket(ctx sdk.Context, chanCap *capabilitytypes.Capability, sourcePort string, sourceChannel string, timeoutHeight clienttypes.Height, timeoutTimestamp uint64, data []byte) (sequence uint64, err error) { + if err := im.keeper.ValidateAxelarPacket(ctx, sourceChannel, data); err != nil { im.keeper.Logger(ctx).Error(fmt.Sprintf("ICS20 packet send was denied: %s", err.Error())) - return err + // based on the default implementation of SendPacket in ibc-go, we return 0 for the sequence on error conditions + return 0, err } - return im.keeper.Ics4Wrapper.SendPacket(ctx, chanCap, packet) + return im.keeper.Ics4Wrapper.SendPacket(ctx, chanCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) } func (im IBCMiddleware) WriteAcknowledgement(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, ack exported.Acknowledgement) error { return im.keeper.Ics4Wrapper.WriteAcknowledgement(ctx, chanCap, packet, ack) } + +func (im IBCMiddleware) GetAppVersion(ctx sdk.Context, portID string, channelID string) (string, bool) { + return im.keeper.Ics4Wrapper.GetAppVersion(ctx, portID, channelID) +} diff --git a/x/axelarcork/keeper/keeper.go b/x/axelarcork/keeper/keeper.go index 39db49d0..8ed5e5f3 100644 --- a/x/axelarcork/keeper/keeper.go +++ b/x/axelarcork/keeper/keeper.go @@ -7,6 +7,7 @@ import ( "reflect" "github.com/cosmos/cosmos-sdk/codec" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" @@ -17,7 +18,7 @@ import ( // Keeper of the oracle store type Keeper struct { - storeKey sdk.StoreKey + storeKey storetypes.StoreKey cdc codec.BinaryCodec paramSpace paramtypes.Subspace accountKeeper types.AccountKeeper @@ -31,7 +32,7 @@ type Keeper struct { // NewKeeper creates a new x/axelarcork Keeper instance func NewKeeper( - cdc codec.BinaryCodec, key sdk.StoreKey, paramSpace paramtypes.Subspace, + cdc codec.BinaryCodec, key storetypes.StoreKey, paramSpace paramtypes.Subspace, accountKeeper types.AccountKeeper, stakingKeeper types.StakingKeeper, transferKeeper types.TransferKeeper, distributionKeeper types.DistributionKeeper, wrapper types.ICS4Wrapper, gravityKeeper types.GravityKeeper, @@ -373,7 +374,7 @@ func (k Keeper) GetApprovedScheduledAxelarCorks(ctx sdk.Context, chainID uint64) threshold := sdk.MustNewDecFromStr(CorkVoteThresholdStr) for i, power := range powers { cork := corks[i] - approvalPercentage := sdk.NewIntFromUint64(power).ToDec().Quo(totalPower.ToDec()) + approvalPercentage := sdk.NewDecFromInt(sdk.NewIntFromUint64(power)).Quo(sdk.NewDecFromInt(totalPower)) quorumReached := approvalPercentage.GT(threshold) corkResult := types.AxelarCorkResult{ Cork: &cork, diff --git a/x/axelarcork/keeper/msg_server.go b/x/axelarcork/keeper/msg_server.go index 17dcde93..ac45c13a 100644 --- a/x/axelarcork/keeper/msg_server.go +++ b/x/axelarcork/keeper/msg_server.go @@ -8,11 +8,12 @@ import ( "strconv" "time" + errorsmod "cosmossdk.io/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" sdk "github.com/cosmos/cosmos-sdk/types" - transfertypes "github.com/cosmos/ibc-go/v3/modules/apps/transfer/types" - clienttypes "github.com/cosmos/ibc-go/v3/modules/core/02-client/types" + transfertypes "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v6/modules/core/02-client/types" "github.com/ethereum/go-ethereum/common" "github.com/peggyjv/sommelier/v7/x/axelarcork/types" @@ -30,7 +31,7 @@ func (k Keeper) ScheduleCork(c context.Context, msg *types.MsgScheduleAxelarCork signer := msg.MustGetSigner() validatorAddr := k.gravityKeeper.GetOrchestratorValidatorAddress(ctx, signer) if validatorAddr == nil { - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "signer %s is not a delegate", signer.String()) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "signer %s is not a delegate", signer.String()) } config, ok := k.GetChainConfigurationByID(ctx, msg.ChainId) @@ -96,7 +97,7 @@ func (k Keeper) RelayCork(c context.Context, msg *types.MsgRelayAxelarCorkReques Recipient: params.ExecutorAccount, }, } - bz, err := json.Marshal(axelarMemo) + memoBz, err := json.Marshal(axelarMemo) if err != nil { return nil, err } @@ -109,8 +110,8 @@ func (k Keeper) RelayCork(c context.Context, msg *types.MsgRelayAxelarCorkReques params.GmpAccount, clienttypes.ZeroHeight(), uint64(ctx.BlockTime().Add(time.Duration(params.TimeoutDuration)).UnixNano()), + string(memoBz), ) - transferMsg.Memo = string(bz) _, err = k.transferKeeper.Transfer(c, transferMsg) if err != nil { return nil, err @@ -153,7 +154,7 @@ func (k Keeper) RelayProxyUpgrade(c context.Context, msg *types.MsgRelayAxelarPr Recipient: params.ExecutorAccount, }, } - bz, err := json.Marshal(axelarMemo) + memoBz, err := json.Marshal(axelarMemo) if err != nil { return nil, err } @@ -166,8 +167,8 @@ func (k Keeper) RelayProxyUpgrade(c context.Context, msg *types.MsgRelayAxelarPr params.GmpAccount, clienttypes.ZeroHeight(), uint64(ctx.BlockTime().Add(time.Duration(params.TimeoutDuration)).UnixNano()), + string(memoBz), ) - transferMsg.Memo = string(bz) _, err = k.transferKeeper.Transfer(c, transferMsg) if err != nil { return nil, err @@ -186,6 +187,7 @@ func (k Keeper) BumpCorkGas(c context.Context, msg *types.MsgBumpAxelarCorkGasRe return nil, types.ErrDisabled } + memo := msg.MessageId transferMsg := transfertypes.NewMsgTransfer( params.IbcPort, params.IbcChannel, @@ -194,8 +196,8 @@ func (k Keeper) BumpCorkGas(c context.Context, msg *types.MsgBumpAxelarCorkGasRe params.ExecutorAccount, clienttypes.ZeroHeight(), uint64(ctx.BlockTime().Add(time.Duration(params.TimeoutDuration)).UnixNano()), + memo, ) - transferMsg.Memo = msg.MessageId _, err := k.transferKeeper.Transfer(c, transferMsg) if err != nil { return nil, err diff --git a/x/axelarcork/keeper/packet.go b/x/axelarcork/keeper/packet.go index d42b5475..d16b70b2 100644 --- a/x/axelarcork/keeper/packet.go +++ b/x/axelarcork/keeper/packet.go @@ -6,28 +6,25 @@ import ( "fmt" sdk "github.com/cosmos/cosmos-sdk/types" - transfertypes "github.com/cosmos/ibc-go/v3/modules/apps/transfer/types" - ibcexported "github.com/cosmos/ibc-go/v3/modules/core/exported" + transfertypes "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types" "github.com/ethereum/go-ethereum/common" "github.com/peggyjv/sommelier/v7/x/axelarcork/types" ) -func (k Keeper) ValidateAxelarPacket(ctx sdk.Context, packet ibcexported.PacketI) error { +func (k Keeper) ValidateAxelarPacket(ctx sdk.Context, sourceChannel string, data []byte) error { params := k.GetParamSet(ctx) if !params.Enabled { return nil } // check if this is a call to axelar, exit early if this isn't axelar - channelID := packet.GetDestChannel() - if channelID != params.IbcChannel { + if sourceChannel != params.IbcChannel { return nil } // Parse the data from the packet var packetData transfertypes.FungibleTokenPacketData - packetDataBz := packet.GetData() - if err := json.Unmarshal(packetDataBz, &packetData); err != nil { + if err := json.Unmarshal(data, &packetData); err != nil { return err } diff --git a/x/axelarcork/keeper/proposal_handler.go b/x/axelarcork/keeper/proposal_handler.go index aac59e75..43bec67e 100644 --- a/x/axelarcork/keeper/proposal_handler.go +++ b/x/axelarcork/keeper/proposal_handler.go @@ -8,11 +8,11 @@ import ( authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - transfertypes "github.com/cosmos/ibc-go/v3/modules/apps/transfer/types" - clienttypes "github.com/cosmos/ibc-go/v3/modules/core/02-client/types" + transfertypes "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v6/modules/core/02-client/types" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/common" "github.com/peggyjv/sommelier/v7/x/axelarcork/types" ) @@ -83,7 +83,7 @@ func HandleScheduledCorkProposal(ctx sdk.Context, k Keeper, p types.AxelarSchedu } if !k.HasCellarID(ctx, config.Id, common.HexToAddress(p.TargetContractAddress)) { - return sdkerrors.Wrapf(types.ErrUnmanagedCellarAddress, "id: %s", p.TargetContractAddress) + return errorsmod.Wrapf(types.ErrUnmanagedCellarAddress, "id: %s", p.TargetContractAddress) } return nil @@ -115,11 +115,12 @@ func HandleCommunityPoolSpendProposal(ctx sdk.Context, k Keeper, p types.AxelarC Payload: nil, Type: types.PureTokenTransfer, } - bz, err := json.Marshal(axelarMemo) + memoBz, err := json.Marshal(axelarMemo) if err != nil { return err } + memo := string(memoBz) transferMsg := transfertypes.NewMsgTransfer( params.IbcPort, params.IbcChannel, @@ -128,8 +129,8 @@ func HandleCommunityPoolSpendProposal(ctx sdk.Context, k Keeper, p types.AxelarC p.Recipient, clienttypes.ZeroHeight(), uint64(ctx.BlockTime().Add(time.Duration(params.TimeoutDuration)).UnixNano()), + memo, ) - transferMsg.Memo = string(bz) resp, err := k.transferKeeper.Transfer(ctx.Context(), transferMsg) if err != nil { return err diff --git a/x/axelarcork/keeper/setup_unit_test.go b/x/axelarcork/keeper/setup_unit_test.go index d7bd36c5..3d60bd24 100644 --- a/x/axelarcork/keeper/setup_unit_test.go +++ b/x/axelarcork/keeper/setup_unit_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/peggyjv/sommelier/v7/x/axelarcork/tests/mocks" + "github.com/peggyjv/sommelier/v7/x/axelarcork/types" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" @@ -12,17 +13,14 @@ import ( storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper" - - "github.com/golang/mock/gomock" - - "github.com/peggyjv/sommelier/v7/x/axelarcork/types" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/tendermint/tendermint/libs/log" tmproto "github.com/tendermint/tendermint/proto/tendermint/types" tmdb "github.com/tendermint/tm-db" + + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) type mocksForCork struct { @@ -38,15 +36,15 @@ func setupCorkKeeper(t *testing.T) ( // Mount the KV store with the x/cork store key storeKey := sdk.NewKVStoreKey(types.StoreKey) - commitMultiStore.MountStoreWithDB(storeKey, sdk.StoreTypeIAVL, db) + commitMultiStore.MountStoreWithDB(storeKey, storetypes.StoreTypeIAVL, db) // Mount Transient store transientStoreKey := sdk.NewTransientStoreKey("transient" + types.StoreKey) - commitMultiStore.MountStoreWithDB(transientStoreKey, sdk.StoreTypeTransient, nil) + commitMultiStore.MountStoreWithDB(transientStoreKey, storetypes.StoreTypeTransient, nil) // Mount Memory store memStoreKey := storetypes.NewMemoryStoreKey("mem" + types.StoreKey) - commitMultiStore.MountStoreWithDB(memStoreKey, sdk.StoreTypeMemory, nil) + commitMultiStore.MountStoreWithDB(memStoreKey, storetypes.StoreTypeMemory, nil) require.NoError(t, commitMultiStore.LoadLatestVersion()) protoCodec := codec.NewProtoCodec(codectypes.NewInterfaceRegistry()) @@ -86,7 +84,7 @@ func setupCorkKeeper(t *testing.T) ( func initParamsKeeper( appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, - key sdk.StoreKey, tkey sdk.StoreKey, + key storetypes.StoreKey, tkey storetypes.StoreKey, ) paramskeeper.Keeper { paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey) paramsKeeper.Subspace(types.ModuleName) diff --git a/x/axelarcork/module.go b/x/axelarcork/module.go index 591b2b34..be79e946 100644 --- a/x/axelarcork/module.go +++ b/x/axelarcork/module.go @@ -11,7 +11,6 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" sim "github.com/cosmos/cosmos-sdk/types/simulation" - "github.com/gorilla/mux" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/peggyjv/sommelier/v7/x/axelarcork/client/cli" "github.com/peggyjv/sommelier/v7/x/axelarcork/keeper" @@ -53,10 +52,6 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, _ client.TxEncodingCo return gs.Validate() } -// RegisterRESTRoutes doesn't support legacy REST routes. -// We don't want to support the legacy rest server here -func (AppModuleBasic) RegisterRESTRoutes(_ client.Context, _ *mux.Router) {} - // GetTxCmd returns the root tx command for the cork module. func (AppModuleBasic) GetTxCmd() *cobra.Command { return cli.GetTxCmd() diff --git a/x/axelarcork/module_test.go b/x/axelarcork/module_test.go index 0e5c94ba..8c474532 100644 --- a/x/axelarcork/module_test.go +++ b/x/axelarcork/module_test.go @@ -2,10 +2,11 @@ package axelarcork_test import ( "encoding/json" + "fmt" "testing" - transfertypes "github.com/cosmos/ibc-go/v3/modules/apps/transfer/types" - channeltypes "github.com/cosmos/ibc-go/v3/modules/core/04-channel/types" + transfertypes "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types" + channeltypes "github.com/cosmos/ibc-go/v6/modules/core/04-channel/types" "github.com/golang/mock/gomock" "github.com/peggyjv/sommelier/v7/x/axelarcork/tests" "github.com/peggyjv/sommelier/v7/x/axelarcork/types" @@ -65,11 +66,12 @@ func TestSendPacket_NoMemo(t *testing.T) { // Expected mocks gomock.InOrder( - setup.Mocks.ICS4WrapperMock.EXPECT().SendPacket(ctx, nil, packet). - Return(nil), + setup.Mocks.ICS4WrapperMock.EXPECT().SendPacket(ctx, nil, packet.SourcePort, packet.SourceChannel, packet.TimeoutHeight, packet.TimeoutTimestamp, packet.Data). + Return(uint64(1), nil), ) - require.NoError(t, acMiddleware.SendPacket(ctx, nil, packet)) + _, err := acMiddleware.SendPacket(ctx, nil, packet.SourcePort, packet.SourceChannel, packet.TimeoutHeight, packet.TimeoutTimestamp, packet.Data) + require.NoError(t, err) } func TestSendPacket_NotAxelarChannel(t *testing.T) { @@ -86,11 +88,12 @@ func TestSendPacket_NotAxelarChannel(t *testing.T) { // Expected mocks gomock.InOrder( - setup.Mocks.ICS4WrapperMock.EXPECT().SendPacket(ctx, nil, packet). - Return(nil), + setup.Mocks.ICS4WrapperMock.EXPECT().SendPacket(ctx, nil, packet.SourcePort, packet.SourceChannel, packet.TimeoutHeight, packet.TimeoutTimestamp, packet.Data). + Return(uint64(1), nil), ) - require.NoError(t, acMiddleware.SendPacket(ctx, nil, packet)) + _, err := acMiddleware.SendPacket(ctx, nil, packet.SourcePort, packet.SourceChannel, packet.TimeoutHeight, packet.TimeoutTimestamp, packet.Data) + require.NoError(t, err) } func TestSendPacket_NotGMPReceiver(t *testing.T) { @@ -106,11 +109,12 @@ func TestSendPacket_NotGMPReceiver(t *testing.T) { // Expected mocks gomock.InOrder( - setup.Mocks.ICS4WrapperMock.EXPECT().SendPacket(ctx, nil, packet). - Return(nil), + setup.Mocks.ICS4WrapperMock.EXPECT().SendPacket(ctx, nil, packet.SourcePort, packet.SourceChannel, packet.TimeoutHeight, packet.TimeoutTimestamp, packet.Data). + Return(uint64(1), nil), ) - require.NoError(t, acMiddleware.SendPacket(ctx, nil, packet)) + _, err := acMiddleware.SendPacket(ctx, nil, packet.SourcePort, packet.SourceChannel, packet.TimeoutHeight, packet.TimeoutTimestamp, packet.Data) + require.NoError(t, err) } func TestSendPacket_EmptyPayload(t *testing.T) { @@ -148,6 +152,13 @@ func TestSendPacket_EmptyPayload(t *testing.T) { } packet := transferPacket(t, tests.TestGMPAccount.String(), acBody) + // Expected mocks + gomock.InOrder( + setup.Mocks.ICS4WrapperMock.EXPECT().SendPacket(ctx, nil, packet.SourcePort, packet.SourceChannel, packet.TimeoutHeight, packet.TimeoutTimestamp, packet.Data). + Return(uint64(0), fmt.Errorf("mock error")), + ) + // expect error for non-existent - require.Error(t, acMiddleware.SendPacket(ctx, nil, packet)) + _, err := acMiddleware.SendPacket(ctx, nil, packet.SourcePort, packet.SourceChannel, packet.TimeoutHeight, packet.TimeoutTimestamp, packet.Data) + require.Error(t, err) } diff --git a/x/axelarcork/tests/mocks/expected_keepers_mocks.go b/x/axelarcork/tests/mocks/expected_keepers_mocks.go index 1f099960..0692f9d4 100644 --- a/x/axelarcork/tests/mocks/expected_keepers_mocks.go +++ b/x/axelarcork/tests/mocks/expected_keepers_mocks.go @@ -8,14 +8,16 @@ import ( context "context" reflect "reflect" + math "cosmossdk.io/math" types "github.com/cosmos/cosmos-sdk/types" types0 "github.com/cosmos/cosmos-sdk/x/auth/types" types1 "github.com/cosmos/cosmos-sdk/x/capability/types" types2 "github.com/cosmos/cosmos-sdk/x/distribution/types" types3 "github.com/cosmos/cosmos-sdk/x/staking/types" - types4 "github.com/cosmos/ibc-go/v3/modules/apps/transfer/types" - types5 "github.com/cosmos/ibc-go/v3/modules/core/04-channel/types" - exported "github.com/cosmos/ibc-go/v3/modules/core/exported" + types4 "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types" + types5 "github.com/cosmos/ibc-go/v6/modules/core/02-client/types" + types6 "github.com/cosmos/ibc-go/v6/modules/core/04-channel/types" + exported "github.com/cosmos/ibc-go/v6/modules/core/exported" gomock "github.com/golang/mock/gomock" ) @@ -119,18 +121,34 @@ func (m *MockICS4Wrapper) EXPECT() *MockICS4WrapperMockRecorder { return m.recorder } +// GetAppVersion mocks base method. +func (m *MockICS4Wrapper) GetAppVersion(ctx types.Context, portID, channelID string) (string, bool) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAppVersion", ctx, portID, channelID) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(bool) + return ret0, ret1 +} + +// GetAppVersion indicates an expected call of GetAppVersion. +func (mr *MockICS4WrapperMockRecorder) GetAppVersion(ctx, portID, channelID interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAppVersion", reflect.TypeOf((*MockICS4Wrapper)(nil).GetAppVersion), ctx, portID, channelID) +} + // SendPacket mocks base method. -func (m *MockICS4Wrapper) SendPacket(ctx types.Context, channelCap *types1.Capability, packet exported.PacketI) error { +func (m *MockICS4Wrapper) SendPacket(ctx types.Context, chanCap *types1.Capability, sourcePort, sourceChannel string, timeoutHeight types5.Height, timeoutTimestamp uint64, data []byte) (uint64, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SendPacket", ctx, channelCap, packet) - ret0, _ := ret[0].(error) - return ret0 + ret := m.ctrl.Call(m, "SendPacket", ctx, chanCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) + ret0, _ := ret[0].(uint64) + ret1, _ := ret[1].(error) + return ret0, ret1 } // SendPacket indicates an expected call of SendPacket. -func (mr *MockICS4WrapperMockRecorder) SendPacket(ctx, channelCap, packet interface{}) *gomock.Call { +func (mr *MockICS4WrapperMockRecorder) SendPacket(ctx, chanCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendPacket", reflect.TypeOf((*MockICS4Wrapper)(nil).SendPacket), ctx, channelCap, packet) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendPacket", reflect.TypeOf((*MockICS4Wrapper)(nil).SendPacket), ctx, chanCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) } // WriteAcknowledgement mocks base method. @@ -171,10 +189,10 @@ func (m *MockChannelKeeper) EXPECT() *MockChannelKeeperMockRecorder { } // GetChannel mocks base method. -func (m *MockChannelKeeper) GetChannel(ctx types.Context, portID, channelID string) (types5.Channel, bool) { +func (m *MockChannelKeeper) GetChannel(ctx types.Context, portID, channelID string) (types6.Channel, bool) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetChannel", ctx, portID, channelID) - ret0, _ := ret[0].(types5.Channel) + ret0, _ := ret[0].(types6.Channel) ret1, _ := ret[1].(bool) return ret0, ret1 } @@ -329,9 +347,11 @@ func (mr *MockStakingKeeperMockRecorder) PowerReduction(ctx interface{}) *gomock } // Slash mocks base method. -func (m *MockStakingKeeper) Slash(arg0 types.Context, arg1 types.ConsAddress, arg2, arg3 int64, arg4 types.Dec) { +func (m *MockStakingKeeper) Slash(arg0 types.Context, arg1 types.ConsAddress, arg2, arg3 int64, arg4 types.Dec) math.Int { m.ctrl.T.Helper() - m.ctrl.Call(m, "Slash", arg0, arg1, arg2, arg3, arg4) + ret := m.ctrl.Call(m, "Slash", arg0, arg1, arg2, arg3, arg4) + ret0, _ := ret[0].(math.Int) + return ret0 } // Slash indicates an expected call of Slash. diff --git a/x/axelarcork/tests/mocks/ibc_module_mocks.go b/x/axelarcork/tests/mocks/ibc_module_mocks.go index c1e5134a..d3d719c3 100644 --- a/x/axelarcork/tests/mocks/ibc_module_mocks.go +++ b/x/axelarcork/tests/mocks/ibc_module_mocks.go @@ -1,7 +1,7 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: /Users/mv/go/pkg/mod/github.com/cosmos/ibc-go/v3@v3.4.0/modules/core/05-port/types/module.go +// Source: /Users/bolten/code/go/pkg/mod/github.com/cosmos/ibc-go/v6@v6.2.0/modules/core/05-port/types/module.go -// Package mock_types is a generated GoMock package. +// Package mocks is a generated GoMock package. package mocks import ( @@ -9,8 +9,9 @@ import ( types "github.com/cosmos/cosmos-sdk/types" types0 "github.com/cosmos/cosmos-sdk/x/capability/types" - types1 "github.com/cosmos/ibc-go/v3/modules/core/04-channel/types" - exported "github.com/cosmos/ibc-go/v3/modules/core/exported" + types1 "github.com/cosmos/ibc-go/v6/modules/core/02-client/types" + types2 "github.com/cosmos/ibc-go/v6/modules/core/04-channel/types" + exported "github.com/cosmos/ibc-go/v6/modules/core/exported" gomock "github.com/golang/mock/gomock" ) @@ -38,7 +39,7 @@ func (m *MockIBCModule) EXPECT() *MockIBCModuleMockRecorder { } // OnAcknowledgementPacket mocks base method. -func (m *MockIBCModule) OnAcknowledgementPacket(ctx types.Context, packet types1.Packet, acknowledgement []byte, relayer types.AccAddress) error { +func (m *MockIBCModule) OnAcknowledgementPacket(ctx types.Context, packet types2.Packet, acknowledgement []byte, relayer types.AccAddress) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "OnAcknowledgementPacket", ctx, packet, acknowledgement, relayer) ret0, _ := ret[0].(error) @@ -108,11 +109,12 @@ func (mr *MockIBCModuleMockRecorder) OnChanOpenConfirm(ctx, portID, channelID in } // OnChanOpenInit mocks base method. -func (m *MockIBCModule) OnChanOpenInit(ctx types.Context, order types1.Order, connectionHops []string, portID, channelID string, channelCap *types0.Capability, counterparty types1.Counterparty, version string) error { +func (m *MockIBCModule) OnChanOpenInit(ctx types.Context, order types2.Order, connectionHops []string, portID, channelID string, channelCap *types0.Capability, counterparty types2.Counterparty, version string) (string, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "OnChanOpenInit", ctx, order, connectionHops, portID, channelID, channelCap, counterparty, version) - ret0, _ := ret[0].(error) - return ret0 + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 } // OnChanOpenInit indicates an expected call of OnChanOpenInit. @@ -122,7 +124,7 @@ func (mr *MockIBCModuleMockRecorder) OnChanOpenInit(ctx, order, connectionHops, } // OnChanOpenTry mocks base method. -func (m *MockIBCModule) OnChanOpenTry(ctx types.Context, order types1.Order, connectionHops []string, portID, channelID string, channelCap *types0.Capability, counterparty types1.Counterparty, counterpartyVersion string) (string, error) { +func (m *MockIBCModule) OnChanOpenTry(ctx types.Context, order types2.Order, connectionHops []string, portID, channelID string, channelCap *types0.Capability, counterparty types2.Counterparty, counterpartyVersion string) (string, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "OnChanOpenTry", ctx, order, connectionHops, portID, channelID, channelCap, counterparty, counterpartyVersion) ret0, _ := ret[0].(string) @@ -137,7 +139,7 @@ func (mr *MockIBCModuleMockRecorder) OnChanOpenTry(ctx, order, connectionHops, p } // OnRecvPacket mocks base method. -func (m *MockIBCModule) OnRecvPacket(ctx types.Context, packet types1.Packet, relayer types.AccAddress) exported.Acknowledgement { +func (m *MockIBCModule) OnRecvPacket(ctx types.Context, packet types2.Packet, relayer types.AccAddress) exported.Acknowledgement { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "OnRecvPacket", ctx, packet, relayer) ret0, _ := ret[0].(exported.Acknowledgement) @@ -151,7 +153,7 @@ func (mr *MockIBCModuleMockRecorder) OnRecvPacket(ctx, packet, relayer interface } // OnTimeoutPacket mocks base method. -func (m *MockIBCModule) OnTimeoutPacket(ctx types.Context, packet types1.Packet, relayer types.AccAddress) error { +func (m *MockIBCModule) OnTimeoutPacket(ctx types.Context, packet types2.Packet, relayer types.AccAddress) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "OnTimeoutPacket", ctx, packet, relayer) ret0, _ := ret[0].(error) @@ -187,8 +189,23 @@ func (m *MockMiddleware) EXPECT() *MockMiddlewareMockRecorder { return m.recorder } +// GetAppVersion mocks base method. +func (m *MockMiddleware) GetAppVersion(ctx types.Context, portID, channelID string) (string, bool) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAppVersion", ctx, portID, channelID) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(bool) + return ret0, ret1 +} + +// GetAppVersion indicates an expected call of GetAppVersion. +func (mr *MockMiddlewareMockRecorder) GetAppVersion(ctx, portID, channelID interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAppVersion", reflect.TypeOf((*MockMiddleware)(nil).GetAppVersion), ctx, portID, channelID) +} + // OnAcknowledgementPacket mocks base method. -func (m *MockMiddleware) OnAcknowledgementPacket(ctx types.Context, packet types1.Packet, acknowledgement []byte, relayer types.AccAddress) error { +func (m *MockMiddleware) OnAcknowledgementPacket(ctx types.Context, packet types2.Packet, acknowledgement []byte, relayer types.AccAddress) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "OnAcknowledgementPacket", ctx, packet, acknowledgement, relayer) ret0, _ := ret[0].(error) @@ -258,11 +275,12 @@ func (mr *MockMiddlewareMockRecorder) OnChanOpenConfirm(ctx, portID, channelID i } // OnChanOpenInit mocks base method. -func (m *MockMiddleware) OnChanOpenInit(ctx types.Context, order types1.Order, connectionHops []string, portID, channelID string, channelCap *types0.Capability, counterparty types1.Counterparty, version string) error { +func (m *MockMiddleware) OnChanOpenInit(ctx types.Context, order types2.Order, connectionHops []string, portID, channelID string, channelCap *types0.Capability, counterparty types2.Counterparty, version string) (string, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "OnChanOpenInit", ctx, order, connectionHops, portID, channelID, channelCap, counterparty, version) - ret0, _ := ret[0].(error) - return ret0 + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 } // OnChanOpenInit indicates an expected call of OnChanOpenInit. @@ -272,7 +290,7 @@ func (mr *MockMiddlewareMockRecorder) OnChanOpenInit(ctx, order, connectionHops, } // OnChanOpenTry mocks base method. -func (m *MockMiddleware) OnChanOpenTry(ctx types.Context, order types1.Order, connectionHops []string, portID, channelID string, channelCap *types0.Capability, counterparty types1.Counterparty, counterpartyVersion string) (string, error) { +func (m *MockMiddleware) OnChanOpenTry(ctx types.Context, order types2.Order, connectionHops []string, portID, channelID string, channelCap *types0.Capability, counterparty types2.Counterparty, counterpartyVersion string) (string, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "OnChanOpenTry", ctx, order, connectionHops, portID, channelID, channelCap, counterparty, counterpartyVersion) ret0, _ := ret[0].(string) @@ -287,7 +305,7 @@ func (mr *MockMiddlewareMockRecorder) OnChanOpenTry(ctx, order, connectionHops, } // OnRecvPacket mocks base method. -func (m *MockMiddleware) OnRecvPacket(ctx types.Context, packet types1.Packet, relayer types.AccAddress) exported.Acknowledgement { +func (m *MockMiddleware) OnRecvPacket(ctx types.Context, packet types2.Packet, relayer types.AccAddress) exported.Acknowledgement { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "OnRecvPacket", ctx, packet, relayer) ret0, _ := ret[0].(exported.Acknowledgement) @@ -301,7 +319,7 @@ func (mr *MockMiddlewareMockRecorder) OnRecvPacket(ctx, packet, relayer interfac } // OnTimeoutPacket mocks base method. -func (m *MockMiddleware) OnTimeoutPacket(ctx types.Context, packet types1.Packet, relayer types.AccAddress) error { +func (m *MockMiddleware) OnTimeoutPacket(ctx types.Context, packet types2.Packet, relayer types.AccAddress) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "OnTimeoutPacket", ctx, packet, relayer) ret0, _ := ret[0].(error) @@ -315,17 +333,18 @@ func (mr *MockMiddlewareMockRecorder) OnTimeoutPacket(ctx, packet, relayer inter } // SendPacket mocks base method. -func (m *MockMiddleware) SendPacket(ctx types.Context, chanCap *types0.Capability, packet exported.PacketI) error { +func (m *MockMiddleware) SendPacket(ctx types.Context, chanCap *types0.Capability, sourcePort, sourceChannel string, timeoutHeight types1.Height, timeoutTimestamp uint64, data []byte) (uint64, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SendPacket", ctx, chanCap, packet) - ret0, _ := ret[0].(error) - return ret0 + ret := m.ctrl.Call(m, "SendPacket", ctx, chanCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) + ret0, _ := ret[0].(uint64) + ret1, _ := ret[1].(error) + return ret0, ret1 } // SendPacket indicates an expected call of SendPacket. -func (mr *MockMiddlewareMockRecorder) SendPacket(ctx, chanCap, packet interface{}) *gomock.Call { +func (mr *MockMiddlewareMockRecorder) SendPacket(ctx, chanCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendPacket", reflect.TypeOf((*MockMiddleware)(nil).SendPacket), ctx, chanCap, packet) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendPacket", reflect.TypeOf((*MockMiddleware)(nil).SendPacket), ctx, chanCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) } // WriteAcknowledgement mocks base method. diff --git a/x/axelarcork/tests/setup.go b/x/axelarcork/tests/setup.go index 462413e2..b98f3195 100644 --- a/x/axelarcork/tests/setup.go +++ b/x/axelarcork/tests/setup.go @@ -11,7 +11,7 @@ import ( authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper" paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" - porttypes "github.com/cosmos/ibc-go/v3/modules/core/05-port/types" + porttypes "github.com/cosmos/ibc-go/v6/modules/core/05-port/types" "github.com/golang/mock/gomock" "github.com/peggyjv/sommelier/v7/x/axelarcork" "github.com/peggyjv/sommelier/v7/x/axelarcork/keeper" diff --git a/x/axelarcork/types/codec.go b/x/axelarcork/types/codec.go index 9246c2a0..33e58703 100644 --- a/x/axelarcork/types/codec.go +++ b/x/axelarcork/types/codec.go @@ -6,7 +6,7 @@ import ( cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" ) // RegisterLegacyAminoCodec registers the vesting interfaces and concrete types on the @@ -46,7 +46,7 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { &MsgRelayAxelarProxyUpgradeRequest{}, ) - registry.RegisterImplementations((*govtypes.Content)(nil), + registry.RegisterImplementations((*govtypesv1beta1.Content)(nil), &AxelarScheduledCorkProposal{}, &AddChainConfigurationProposal{}, &RemoveChainConfigurationProposal{}, diff --git a/x/axelarcork/types/errors.go b/x/axelarcork/types/errors.go index fe8639f4..c18d902f 100644 --- a/x/axelarcork/types/errors.go +++ b/x/axelarcork/types/errors.go @@ -1,16 +1,16 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // x/cork module sentinel errors var ( - ErrInvalidEVMAddress = sdkerrors.Register(ModuleName, 2, "invalid evm address") - ErrUnmanagedCellarAddress = sdkerrors.Register(ModuleName, 3, "cork sent to address that has not passed governance") - ErrEmptyContractCall = sdkerrors.Register(ModuleName, 4, "cork has an empty contract call body") - ErrSchedulingInThePast = sdkerrors.Register(ModuleName, 5, "cork is trying to be scheduled for a block that has already passed") - ErrInvalidJSON = sdkerrors.Register(ModuleName, 6, "invalid json") - ErrValuelessSend = sdkerrors.Register(ModuleName, 7, "transferring an empty token amount") - ErrDisabled = sdkerrors.Register(ModuleName, 8, "axelar disabled") + ErrInvalidEVMAddress = errorsmod.Register(ModuleName, 2, "invalid evm address") + ErrUnmanagedCellarAddress = errorsmod.Register(ModuleName, 3, "cork sent to address that has not passed governance") + ErrEmptyContractCall = errorsmod.Register(ModuleName, 4, "cork has an empty contract call body") + ErrSchedulingInThePast = errorsmod.Register(ModuleName, 5, "cork is trying to be scheduled for a block that has already passed") + ErrInvalidJSON = errorsmod.Register(ModuleName, 6, "invalid json") + ErrValuelessSend = errorsmod.Register(ModuleName, 7, "transferring an empty token amount") + ErrDisabled = errorsmod.Register(ModuleName, 8, "axelar disabled") ) diff --git a/x/axelarcork/types/expected_keepers.go b/x/axelarcork/types/expected_keepers.go index 8e2bc9d1..dcdefa82 100644 --- a/x/axelarcork/types/expected_keepers.go +++ b/x/axelarcork/types/expected_keepers.go @@ -5,14 +5,17 @@ package types import ( "context" + "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/cosmos/ibc-go/v3/modules/apps/transfer/types" - channeltypes "github.com/cosmos/ibc-go/v3/modules/core/04-channel/types" - ibcexported "github.com/cosmos/ibc-go/v3/modules/core/exported" + "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v6/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v6/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v6/modules/core/exported" ) // AccountKeeper defines the expected account keeper. @@ -27,7 +30,8 @@ type AccountKeeper interface { type ICS4Wrapper interface { WriteAcknowledgement(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet ibcexported.PacketI, acknowledgement ibcexported.Acknowledgement) error - SendPacket(ctx sdk.Context, channelCap *capabilitytypes.Capability, packet ibcexported.PacketI) error + SendPacket(ctx sdk.Context, chanCap *capabilitytypes.Capability, sourcePort string, sourceChannel string, timeoutHeight clienttypes.Height, timeoutTimestamp uint64, data []byte) (sequence uint64, err error) + GetAppVersion(ctx sdk.Context, portID string, channelID string) (string, bool) } // ChannelKeeper defines the channel contract that must be fulfilled when @@ -41,15 +45,15 @@ type ChannelKeeper interface { type StakingKeeper interface { GetBondedValidatorsByPower(ctx sdk.Context) []stakingtypes.Validator GetLastValidatorPower(ctx sdk.Context, operator sdk.ValAddress) int64 - GetLastTotalPower(ctx sdk.Context) (power sdk.Int) + GetLastTotalPower(ctx sdk.Context) (power math.Int) IterateValidators(sdk.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) IterateBondedValidatorsByPower(sdk.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) IterateLastValidators(sdk.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) Validator(sdk.Context, sdk.ValAddress) stakingtypes.ValidatorI ValidatorByConsAddr(sdk.Context, sdk.ConsAddress) stakingtypes.ValidatorI - Slash(sdk.Context, sdk.ConsAddress, int64, int64, sdk.Dec) + Slash(sdk.Context, sdk.ConsAddress, int64, int64, sdk.Dec) math.Int Jail(sdk.Context, sdk.ConsAddress) - PowerReduction(ctx sdk.Context) sdk.Int + PowerReduction(ctx sdk.Context) math.Int } type TransferKeeper interface { diff --git a/x/axelarcork/types/msgs.go b/x/axelarcork/types/msgs.go index 7ecdafc1..d9343a38 100644 --- a/x/axelarcork/types/msgs.go +++ b/x/axelarcork/types/msgs.go @@ -3,6 +3,7 @@ package types import ( "fmt" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/common" @@ -47,7 +48,7 @@ func (m *MsgScheduleAxelarCorkRequest) Type() string { return TypeMsgScheduleCor // ValidateBasic implements sdk.Msg func (m *MsgScheduleAxelarCorkRequest) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(m.Signer); err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) + return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) } return m.Cork.ValidateBasic() @@ -85,7 +86,7 @@ func (m *MsgRelayAxelarCorkRequest) Type() string { return TypeMsgRelayCorkReque // ValidateBasic implements sdk.Msg func (m *MsgRelayAxelarCorkRequest) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(m.Signer); err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) + return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) } if m.TargetContractAddress == "" { @@ -129,7 +130,7 @@ func (m *MsgRelayAxelarProxyUpgradeRequest) Type() string { // ValidateBasic implements sdk.Msg func (m *MsgRelayAxelarProxyUpgradeRequest) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(m.Signer); err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) + return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) } return nil @@ -167,7 +168,7 @@ func (m *MsgBumpAxelarCorkGasRequest) Type() string { return TypeMsgBumpCorkGasR // ValidateBasic implements sdk.Msg func (m *MsgBumpAxelarCorkGasRequest) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(m.Signer); err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) + return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) } return nil @@ -205,7 +206,7 @@ func (m *MsgCancelAxelarCorkRequest) Type() string { return TypeMsgBumpCorkGasRe // ValidateBasic implements sdk.Msg func (m *MsgCancelAxelarCorkRequest) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(m.Signer); err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) + return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) } return nil diff --git a/x/axelarcork/types/params.go b/x/axelarcork/types/params.go index 13805a80..c39f3c8f 100644 --- a/x/axelarcork/types/params.go +++ b/x/axelarcork/types/params.go @@ -5,7 +5,7 @@ import ( "fmt" sdk "github.com/cosmos/cosmos-sdk/types" - host "github.com/cosmos/ibc-go/v3/modules/core/24-host" + host "github.com/cosmos/ibc-go/v6/modules/core/24-host" "github.com/ethereum/go-ethereum/common" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" diff --git a/x/axelarcork/types/proposal.go b/x/axelarcork/types/proposal.go index 7598a00a..00e9539a 100644 --- a/x/axelarcork/types/proposal.go +++ b/x/axelarcork/types/proposal.go @@ -6,8 +6,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + errorsmod "cosmossdk.io/errors" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" "github.com/ethereum/go-ethereum/common" ) @@ -23,39 +23,46 @@ const ( ProposalTypeCancelAxelarProxyContractUpgrade = "CancelAxelarProxyContractUpgrade" ) -var _ govtypes.Content = &AddAxelarManagedCellarIDsProposal{} -var _ govtypes.Content = &RemoveAxelarManagedCellarIDsProposal{} -var _ govtypes.Content = &AxelarScheduledCorkProposal{} -var _ govtypes.Content = &AxelarCommunityPoolSpendProposal{} -var _ govtypes.Content = &AddChainConfigurationProposal{} -var _ govtypes.Content = &RemoveChainConfigurationProposal{} -var _ govtypes.Content = &UpgradeAxelarProxyContractProposal{} -var _ govtypes.Content = &CancelAxelarProxyContractUpgradeProposal{} +var _ govtypesv1beta1.Content = &AddAxelarManagedCellarIDsProposal{} +var _ govtypesv1beta1.Content = &RemoveAxelarManagedCellarIDsProposal{} +var _ govtypesv1beta1.Content = &AxelarScheduledCorkProposal{} +var _ govtypesv1beta1.Content = &AxelarCommunityPoolSpendProposal{} +var _ govtypesv1beta1.Content = &AddChainConfigurationProposal{} +var _ govtypesv1beta1.Content = &RemoveChainConfigurationProposal{} +var _ govtypesv1beta1.Content = &UpgradeAxelarProxyContractProposal{} +var _ govtypesv1beta1.Content = &CancelAxelarProxyContractUpgradeProposal{} func init() { - govtypes.RegisterProposalType(ProposalTypeAddManagedCellarIDs) - govtypes.RegisterProposalTypeCodec(&AddAxelarManagedCellarIDsProposal{}, "sommelier/AddAxelarManagedCellarIDsProposal") + // The RegisterProposalTypeCodec function was mysteriously removed by in 0.46.0 even though + // the claim was that the old API would be preserved in .../x/gov/types/v1beta1 so we have + // to interact with the codec directly. + // + // The PR that removed it: https://github.com/cosmos/cosmos-sdk/pull/11240 + // This PR was later reverted, but RegisterProposalTypeCodec was still left out. Not sure if + // this was intentional or not. + govtypesv1beta1.RegisterProposalType(ProposalTypeAddManagedCellarIDs) + govtypesv1beta1.ModuleCdc.RegisterConcrete(&AddAxelarManagedCellarIDsProposal{}, "sommelier/AddAxelarManagedCellarIDsProposal", nil) - govtypes.RegisterProposalType(ProposalTypeRemoveManagedCellarIDs) - govtypes.RegisterProposalTypeCodec(&RemoveAxelarManagedCellarIDsProposal{}, "sommelier/RemoveAxelarManagedCellarIDsProposal") + govtypesv1beta1.RegisterProposalType(ProposalTypeRemoveManagedCellarIDs) + govtypesv1beta1.ModuleCdc.RegisterConcrete(&RemoveAxelarManagedCellarIDsProposal{}, "sommelier/RemoveAxelarManagedCellarIDsProposal", nil) - govtypes.RegisterProposalType(ProposalTypeScheduledCork) - govtypes.RegisterProposalTypeCodec(&AxelarScheduledCorkProposal{}, "sommelier/AxelarScheduledCorkProposal") + govtypesv1beta1.RegisterProposalType(ProposalTypeScheduledCork) + govtypesv1beta1.ModuleCdc.RegisterConcrete(&AxelarScheduledCorkProposal{}, "sommelier/AxelarScheduledCorkProposal", nil) - govtypes.RegisterProposalType(ProposalTypeAddChainConfiguration) - govtypes.RegisterProposalTypeCodec(&AddChainConfigurationProposal{}, "sommelier/AddAxelarChainConfigurationProposal") + govtypesv1beta1.RegisterProposalType(ProposalTypeAddChainConfiguration) + govtypesv1beta1.ModuleCdc.RegisterConcrete(&AddChainConfigurationProposal{}, "sommelier/AddAxelarChainConfigurationProposal", nil) - govtypes.RegisterProposalType(ProposalTypeRemoveChainConfiguration) - govtypes.RegisterProposalTypeCodec(&RemoveChainConfigurationProposal{}, "sommelier/RemoveAxelarChainConfigurationProposal") + govtypesv1beta1.RegisterProposalType(ProposalTypeRemoveChainConfiguration) + govtypesv1beta1.ModuleCdc.RegisterConcrete(&RemoveChainConfigurationProposal{}, "sommelier/RemoveAxelarChainConfigurationProposal", nil) - govtypes.RegisterProposalType(ProposalTypeCommunitySpend) - govtypes.RegisterProposalTypeCodec(&AxelarCommunityPoolSpendProposal{}, "sommelier/AxelarCommunitySpendProposal") + govtypesv1beta1.RegisterProposalType(ProposalTypeCommunitySpend) + govtypesv1beta1.ModuleCdc.RegisterConcrete(&AxelarCommunityPoolSpendProposal{}, "sommelier/AxelarCommunitySpendProposal", nil) - govtypes.RegisterProposalType(ProposalTypeUpgradeAxelarProxyContract) - govtypes.RegisterProposalTypeCodec(&UpgradeAxelarProxyContractProposal{}, "sommelier/UpgradeAxelarProxyContractProposal") + govtypesv1beta1.RegisterProposalType(ProposalTypeUpgradeAxelarProxyContract) + govtypesv1beta1.ModuleCdc.RegisterConcrete(&UpgradeAxelarProxyContractProposal{}, "sommelier/UpgradeAxelarProxyContractProposal", nil) - govtypes.RegisterProposalType(ProposalTypeCancelAxelarProxyContractUpgrade) - govtypes.RegisterProposalTypeCodec(&CancelAxelarProxyContractUpgradeProposal{}, "sommelier/CancelAxelarProxyContractUpgradeProposal") + govtypesv1beta1.RegisterProposalType(ProposalTypeCancelAxelarProxyContractUpgrade) + govtypesv1beta1.ModuleCdc.RegisterConcrete(&CancelAxelarProxyContractUpgradeProposal{}, "sommelier/CancelAxelarProxyContractUpgradeProposal", nil) } func NewAddManagedCellarIDsProposal(title string, description string, chainID uint64, cellarIds *CellarIDSet) *AddAxelarManagedCellarIDsProposal { @@ -76,7 +83,7 @@ func (m *AddAxelarManagedCellarIDsProposal) ProposalType() string { } func (m *AddAxelarManagedCellarIDsProposal) ValidateBasic() error { - if err := govtypes.ValidateAbstract(m); err != nil { + if err := govtypesv1beta1.ValidateAbstract(m); err != nil { return err } @@ -105,7 +112,7 @@ func (m *RemoveAxelarManagedCellarIDsProposal) ProposalType() string { } func (m *RemoveAxelarManagedCellarIDsProposal) ValidateBasic() error { - if err := govtypes.ValidateAbstract(m); err != nil { + if err := govtypesv1beta1.ValidateAbstract(m); err != nil { return err } @@ -136,20 +143,20 @@ func (m *AxelarScheduledCorkProposal) ProposalType() string { } func (m *AxelarScheduledCorkProposal) ValidateBasic() error { - if err := govtypes.ValidateAbstract(m); err != nil { + if err := govtypesv1beta1.ValidateAbstract(m); err != nil { return err } if len(m.ContractCallProtoJson) == 0 { - return sdkerrors.Wrapf(ErrInvalidJSON, "cannot have empty contract call") + return errorsmod.Wrapf(ErrInvalidJSON, "cannot have empty contract call") } if !json.Valid([]byte(m.ContractCallProtoJson)) { - return sdkerrors.Wrapf(ErrInvalidJSON, "%s", m.ContractCallProtoJson) + return errorsmod.Wrapf(ErrInvalidJSON, "%s", m.ContractCallProtoJson) } if !common.IsHexAddress(m.TargetContractAddress) { - return sdkerrors.Wrapf(ErrInvalidEVMAddress, "%s", m.TargetContractAddress) + return errorsmod.Wrapf(ErrInvalidEVMAddress, "%s", m.TargetContractAddress) } return nil @@ -174,7 +181,7 @@ func (m *AxelarCommunityPoolSpendProposal) ProposalType() string { } func (m *AxelarCommunityPoolSpendProposal) ValidateBasic() error { - if err := govtypes.ValidateAbstract(m); err != nil { + if err := govtypesv1beta1.ValidateAbstract(m); err != nil { return err } @@ -183,7 +190,7 @@ func (m *AxelarCommunityPoolSpendProposal) ValidateBasic() error { } if !common.IsHexAddress(m.Recipient) { - return sdkerrors.Wrapf(ErrInvalidEVMAddress, "%s", m.Recipient) + return errorsmod.Wrapf(ErrInvalidEVMAddress, "%s", m.Recipient) } return nil @@ -206,7 +213,7 @@ func (m *AddChainConfigurationProposal) ProposalType() string { } func (m *AddChainConfigurationProposal) ValidateBasic() error { - if err := govtypes.ValidateAbstract(m); err != nil { + if err := govtypesv1beta1.ValidateAbstract(m); err != nil { return err } @@ -234,7 +241,7 @@ func (m *RemoveChainConfigurationProposal) ProposalType() string { } func (m *RemoveChainConfigurationProposal) ValidateBasic() error { - if err := govtypes.ValidateAbstract(m); err != nil { + if err := govtypesv1beta1.ValidateAbstract(m); err != nil { return err } @@ -259,12 +266,12 @@ func (m *UpgradeAxelarProxyContractProposal) ProposalType() string { } func (m *UpgradeAxelarProxyContractProposal) ValidateBasic() error { - if err := govtypes.ValidateAbstract(m); err != nil { + if err := govtypesv1beta1.ValidateAbstract(m); err != nil { return err } if !common.IsHexAddress(m.NewProxyAddress) { - return sdkerrors.Wrapf(ErrInvalidEVMAddress, "%s", m.NewProxyAddress) + return errorsmod.Wrapf(ErrInvalidEVMAddress, "%s", m.NewProxyAddress) } return nil @@ -287,7 +294,7 @@ func (m *CancelAxelarProxyContractUpgradeProposal) ProposalType() string { } func (m *CancelAxelarProxyContractUpgradeProposal) ValidateBasic() error { - if err := govtypes.ValidateAbstract(m); err != nil { + if err := govtypesv1beta1.ValidateAbstract(m); err != nil { return err } diff --git a/x/axelarcork/types/proposal_test.go b/x/axelarcork/types/proposal_test.go index c55a00f2..dd034ebc 100644 --- a/x/axelarcork/types/proposal_test.go +++ b/x/axelarcork/types/proposal_test.go @@ -3,7 +3,7 @@ package types import ( "testing" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" "github.com/stretchr/testify/require" ) @@ -36,7 +36,7 @@ func TestScheduledCorkProposalValidation(t *testing.T) { TargetContractAddress: "0x01", }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidEVMAddress, "0x01"), + err: errorsmod.Wrapf(ErrInvalidEVMAddress, "0x01"), }, { name: "Empty proto JSON", @@ -48,7 +48,7 @@ func TestScheduledCorkProposalValidation(t *testing.T) { TargetContractAddress: "0x0000000000000000000000000000000000000000", }, expPass: false, - err: sdkerrors.Wrap(ErrInvalidJSON, "cannot have empty contract call"), + err: errorsmod.Wrap(ErrInvalidJSON, "cannot have empty contract call"), }, { name: "Invalid JSON", @@ -60,7 +60,7 @@ func TestScheduledCorkProposalValidation(t *testing.T) { TargetContractAddress: "0x0000000000000000000000000000000000000000", }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidJSON, "[}"), + err: errorsmod.Wrapf(ErrInvalidJSON, "[}"), }, } diff --git a/x/cellarfees/handler.go b/x/cellarfees/handler.go index 655a2713..dbd0119b 100644 --- a/x/cellarfees/handler.go +++ b/x/cellarfees/handler.go @@ -1,9 +1,9 @@ package cellarfees import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/peggyjv/sommelier/v7/x/cellarfees/keeper" ) @@ -11,6 +11,6 @@ import ( // NewHandler returns a handler for "cellarfees" type messages. func NewHandler(k keeper.Keeper) sdk.Handler { return func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) { - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized cellarfees message type: %T", msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized cellarfees message type: %T", msg) } } diff --git a/x/cellarfees/keeper/cellarfees.go b/x/cellarfees/keeper/cellarfees.go index c683442b..fd90e763 100644 --- a/x/cellarfees/keeper/cellarfees.go +++ b/x/cellarfees/keeper/cellarfees.go @@ -1,6 +1,7 @@ package keeper import ( + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/peggyjv/sommelier/v7/app/params" @@ -12,11 +13,11 @@ func (k Keeper) GetFeesAccount(ctx sdk.Context) authtypes.ModuleAccountI { return k.accountKeeper.GetModuleAccount(ctx, types.ModuleName) } -func (k Keeper) GetEmission(ctx sdk.Context, remainingRewardsSupply sdk.Int) sdk.Coins { +func (k Keeper) GetEmission(ctx sdk.Context, remainingRewardsSupply math.Int) sdk.Coins { previousSupplyPeak := k.GetLastRewardSupplyPeak(ctx) cellarfeesParams := k.GetParams(ctx) - var emissionAmount sdk.Int + var emissionAmount math.Int if remainingRewardsSupply.GT(previousSupplyPeak) { k.SetLastRewardSupplyPeak(ctx, remainingRewardsSupply) emissionAmount = remainingRewardsSupply.Quo(sdk.NewInt(int64(cellarfeesParams.RewardEmissionPeriod))) diff --git a/x/cellarfees/keeper/hooks.go b/x/cellarfees/keeper/hooks.go index dae214d6..de2e2e59 100644 --- a/x/cellarfees/keeper/hooks.go +++ b/x/cellarfees/keeper/hooks.go @@ -5,7 +5,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" "github.com/peggyjv/sommelier/v7/app/params" "github.com/peggyjv/sommelier/v7/x/cellarfees/types" ) diff --git a/x/cellarfees/keeper/hooks_test.go b/x/cellarfees/keeper/hooks_test.go index c5efeab5..60f71853 100644 --- a/x/cellarfees/keeper/hooks_test.go +++ b/x/cellarfees/keeper/hooks_test.go @@ -4,7 +4,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" "github.com/golang/mock/gomock" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" auctionTypes "github.com/peggyjv/sommelier/v7/x/auction/types" cellarfeesTypes "github.com/peggyjv/sommelier/v7/x/cellarfees/types" ) diff --git a/x/cellarfees/keeper/keeper.go b/x/cellarfees/keeper/keeper.go index b1cba0ba..f336cde1 100644 --- a/x/cellarfees/keeper/keeper.go +++ b/x/cellarfees/keeper/keeper.go @@ -4,9 +4,11 @@ import ( "fmt" "math/big" + "cosmossdk.io/math" "github.com/tendermint/tendermint/libs/log" "github.com/cosmos/cosmos-sdk/codec" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" "github.com/peggyjv/sommelier/v7/app/params" @@ -15,7 +17,7 @@ import ( type Keeper struct { cdc codec.BinaryCodec - storeKey sdk.StoreKey + storeKey storetypes.StoreKey paramSpace paramtypes.Subspace accountKeeper types.AccountKeeper bankKeeper types.BankKeeper @@ -27,7 +29,7 @@ type Keeper struct { func NewKeeper( cdc codec.BinaryCodec, - storeKey sdk.StoreKey, + storeKey storetypes.StoreKey, paramSpace paramtypes.Subspace, accountKeeper types.AccountKeeper, bankKeeper types.BankKeeper, @@ -75,7 +77,7 @@ func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { // Last highest reward supply // //////////////////////////////// -func (k Keeper) GetLastRewardSupplyPeak(ctx sdk.Context) sdk.Int { +func (k Keeper) GetLastRewardSupplyPeak(ctx sdk.Context) math.Int { store := ctx.KVStore(k.storeKey) b := store.Get(types.GetLastRewardSupplyPeakKey()) if b == nil { @@ -85,7 +87,7 @@ func (k Keeper) GetLastRewardSupplyPeak(ctx sdk.Context) sdk.Int { return sdk.NewIntFromBigInt((&amount).SetBytes(b)) } -func (k Keeper) SetLastRewardSupplyPeak(ctx sdk.Context, amount sdk.Int) { +func (k Keeper) SetLastRewardSupplyPeak(ctx sdk.Context, amount math.Int) { store := ctx.KVStore(k.storeKey) b := amount.BigInt().Bytes() store.Set(types.GetLastRewardSupplyPeakKey(), b) @@ -131,5 +133,5 @@ func (k Keeper) GetAPY(ctx sdk.Context) sdk.Dec { emission := k.GetEmission(ctx, remainingRewardsSupply) annualRewards := emission.AmountOf(params.BaseCoinUnit).Mul(sdk.NewInt(int64(mintParams.BlocksPerYear))) - return annualRewards.ToDec().Quo(totalCoins.ToDec()).Quo(bondedRatio) + return sdk.NewDecFromInt(annualRewards).Quo(sdk.NewDecFromInt(totalCoins)).Quo(bondedRatio) } diff --git a/x/cellarfees/keeper/keeper_test.go b/x/cellarfees/keeper/keeper_test.go index f9243167..17b90cd2 100644 --- a/x/cellarfees/keeper/keeper_test.go +++ b/x/cellarfees/keeper/keeper_test.go @@ -140,6 +140,6 @@ func (suite *KeeperTestSuite) TestGetAPY() { suite.mintKeeper.EXPECT().StakingTokenSupply(ctx).Return(stakingTotalSupply) expectedEmission := lastPeak.Quo(sdk.NewIntFromUint64(cellarfeesParams.RewardEmissionPeriod)) - expected := expectedEmission.Mul(sdk.NewInt(int64(blocksPerYear))).ToDec().Quo(stakingTotalSupply.ToDec().Mul(bondedRatio)) + expected := sdk.NewDecFromInt(expectedEmission.Mul(sdk.NewInt(int64(blocksPerYear)))).Quo(sdk.NewDecFromInt(stakingTotalSupply).Mul(bondedRatio)) require.Equal(expected, cellarfeesKeeper.GetAPY(ctx)) } diff --git a/x/cellarfees/module.go b/x/cellarfees/module.go index a270c9d0..139029b0 100644 --- a/x/cellarfees/module.go +++ b/x/cellarfees/module.go @@ -11,7 +11,6 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" sim "github.com/cosmos/cosmos-sdk/types/simulation" - "github.com/gorilla/mux" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/peggyjv/sommelier/v7/x/cellarfees/client/cli" "github.com/peggyjv/sommelier/v7/x/cellarfees/keeper" @@ -52,10 +51,6 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, _ client.TxEncodingCo return gs.Validate() } -// RegisterRESTRoutes doesn't support legacy REST routes. -// We don't want to support the legacy rest server here -func (AppModuleBasic) RegisterRESTRoutes(_ client.Context, _ *mux.Router) {} - // GetTxCmd returns the root tx command for the cellarfees module. func (AppModuleBasic) GetTxCmd() *cobra.Command { return cli.GetTxCmd() diff --git a/x/cellarfees/types/codec.go b/x/cellarfees/types/codec.go index 22dd0df7..5454a5be 100644 --- a/x/cellarfees/types/codec.go +++ b/x/cellarfees/types/codec.go @@ -3,7 +3,7 @@ package types import ( codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" ) func RegisterInterfaces(registry codectypes.InterfaceRegistry) { @@ -11,7 +11,7 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { (*sdk.Msg)(nil), ) registry.RegisterImplementations( - (*govtypes.Content)(nil), + (*govtypesv1beta1.Content)(nil), ) //msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) diff --git a/x/cellarfees/types/errors.go b/x/cellarfees/types/errors.go index 14fdeb53..4b16f765 100644 --- a/x/cellarfees/types/errors.go +++ b/x/cellarfees/types/errors.go @@ -1,15 +1,15 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // x/cellarfees module sentinel errors var ( - ErrInvalidFeeAccrualAuctionThreshold = sdkerrors.Register(ModuleName, 2, "invalid fee accrual auction threshold") - ErrInvalidRewardEmissionPeriod = sdkerrors.Register(ModuleName, 3, "invalid reward emission period") - ErrInvalidInitialPriceDecreaseRate = sdkerrors.Register(ModuleName, 4, "invalid initial price decrease rate") - ErrInvalidPriceDecreaseBlockInterval = sdkerrors.Register(ModuleName, 5, "invalid price decrease block interval") - ErrInvalidFeeAccrualCounters = sdkerrors.Register(ModuleName, 6, "invalid fee accrual counters") - ErrInvalidLastRewardSupplyPeak = sdkerrors.Register(ModuleName, 7, "invalid last reward supply peak") + ErrInvalidFeeAccrualAuctionThreshold = errorsmod.Register(ModuleName, 2, "invalid fee accrual auction threshold") + ErrInvalidRewardEmissionPeriod = errorsmod.Register(ModuleName, 3, "invalid reward emission period") + ErrInvalidInitialPriceDecreaseRate = errorsmod.Register(ModuleName, 4, "invalid initial price decrease rate") + ErrInvalidPriceDecreaseBlockInterval = errorsmod.Register(ModuleName, 5, "invalid price decrease block interval") + ErrInvalidFeeAccrualCounters = errorsmod.Register(ModuleName, 6, "invalid fee accrual counters") + ErrInvalidLastRewardSupplyPeak = errorsmod.Register(ModuleName, 7, "invalid last reward supply peak") ) diff --git a/x/cellarfees/types/expected_keepers.go b/x/cellarfees/types/expected_keepers.go index 1e034a61..3a5912fd 100644 --- a/x/cellarfees/types/expected_keepers.go +++ b/x/cellarfees/types/expected_keepers.go @@ -1,6 +1,7 @@ package types import ( + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/auth/types" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" @@ -55,6 +56,6 @@ type AuctionKeeper interface { // MintKeeper defines the expected mint keeper methods type MintKeeper interface { GetParams(ctx sdk.Context) minttypes.Params - StakingTokenSupply(ctx sdk.Context) sdk.Int + StakingTokenSupply(ctx sdk.Context) math.Int BondedRatio(ctx sdk.Context) sdk.Dec } diff --git a/x/cellarfees/types/params.go b/x/cellarfees/types/params.go index 4dc63923..158eda7a 100644 --- a/x/cellarfees/types/params.go +++ b/x/cellarfees/types/params.go @@ -1,8 +1,8 @@ package types import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" "gopkg.in/yaml.v2" ) @@ -74,11 +74,11 @@ func (p *Params) ValidateBasic() error { func validateFeeAccrualAuctionThreshold(i interface{}) error { threshold, ok := i.(uint64) if !ok { - return sdkerrors.Wrapf(ErrInvalidFeeAccrualAuctionThreshold, "fee accrual auction threshold: %T", i) + return errorsmod.Wrapf(ErrInvalidFeeAccrualAuctionThreshold, "fee accrual auction threshold: %T", i) } if threshold == 0 { - return sdkerrors.Wrapf(ErrInvalidFeeAccrualAuctionThreshold, "fee accrual auction threshold cannot be zero") + return errorsmod.Wrapf(ErrInvalidFeeAccrualAuctionThreshold, "fee accrual auction threshold cannot be zero") } return nil @@ -87,11 +87,11 @@ func validateFeeAccrualAuctionThreshold(i interface{}) error { func validateRewardEmissionPeriod(i interface{}) error { emissionPeriod, ok := i.(uint64) if !ok { - return sdkerrors.Wrapf(ErrInvalidRewardEmissionPeriod, "reward emission period: %T", i) + return errorsmod.Wrapf(ErrInvalidRewardEmissionPeriod, "reward emission period: %T", i) } if emissionPeriod == 0 { - return sdkerrors.Wrapf(ErrInvalidRewardEmissionPeriod, "reward emission period cannot be zero") + return errorsmod.Wrapf(ErrInvalidRewardEmissionPeriod, "reward emission period cannot be zero") } return nil @@ -100,15 +100,15 @@ func validateRewardEmissionPeriod(i interface{}) error { func validateInitialPriceDecreaseRate(i interface{}) error { rate, ok := i.(sdk.Dec) if !ok { - return sdkerrors.Wrapf(ErrInvalidInitialPriceDecreaseRate, "initial price decrease rate: %T", i) + return errorsmod.Wrapf(ErrInvalidInitialPriceDecreaseRate, "initial price decrease rate: %T", i) } if rate == sdk.ZeroDec() { - return sdkerrors.Wrapf(ErrInvalidInitialPriceDecreaseRate, "initial price decrease rate cannot be zero, must be 0 < x < 1") + return errorsmod.Wrapf(ErrInvalidInitialPriceDecreaseRate, "initial price decrease rate cannot be zero, must be 0 < x < 1") } if rate == sdk.OneDec() { - return sdkerrors.Wrapf(ErrInvalidInitialPriceDecreaseRate, "initial price decrease rate cannot be one, must be 0 < x < 1") + return errorsmod.Wrapf(ErrInvalidInitialPriceDecreaseRate, "initial price decrease rate cannot be one, must be 0 < x < 1") } return nil @@ -117,11 +117,11 @@ func validateInitialPriceDecreaseRate(i interface{}) error { func validatePriceDecreaseBlockInterval(i interface{}) error { interval, ok := i.(uint64) if !ok { - return sdkerrors.Wrapf(ErrInvalidPriceDecreaseBlockInterval, "price decrease block interval: %T", i) + return errorsmod.Wrapf(ErrInvalidPriceDecreaseBlockInterval, "price decrease block interval: %T", i) } if interval == 0 { - return sdkerrors.Wrapf(ErrInvalidPriceDecreaseBlockInterval, "price decrease block interval cannot be zero") + return errorsmod.Wrapf(ErrInvalidPriceDecreaseBlockInterval, "price decrease block interval cannot be zero") } return nil diff --git a/x/cork/client/cli/query.go b/x/cork/client/cli/query.go index 13c30396..b116f8dd 100644 --- a/x/cork/client/cli/query.go +++ b/x/cork/client/cli/query.go @@ -1,11 +1,11 @@ package cli import ( - "strconv" + "fmt" + "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/peggyjv/sommelier/v7/x/cork/types" "github.com/spf13/cobra" ) @@ -134,14 +134,14 @@ func queryScheduledCorksByBlockHeight() *cobra.Command { return err } - height, err := strconv.Atoi(args[0]) + height, err := math.ParseUint(args[0]) if err != nil { return err } queryClient := types.NewQueryClient(ctx) req := &types.QueryScheduledCorksByBlockHeightRequest{ - BlockHeight: uint64(height), + BlockHeight: height.Uint64(), } res, err := queryClient.QueryScheduledCorksByBlockHeight(cmd.Context(), req) @@ -203,7 +203,7 @@ func queryScheduledCorksByID() *cobra.Command { id := args[0] // the length of a keccak256 hash string if len(id) != 64 { - return sdkerrors.New("", uint32(1), "invalid ID length, must be a keccak256 hash") + return fmt.Errorf("invalid ID length, must be a keccak256 hash") } queryClient := types.NewQueryClient(ctx) @@ -240,7 +240,7 @@ func queryCorkResult() *cobra.Command { corkID := args[0] // the length of a keccak256 hash string if len(corkID) != 64 { - return sdkerrors.New("", uint32(1), "invalid ID length, must be a keccak256 hash") + return fmt.Errorf("invalid ID length, must be a keccak256 hash") } queryClient := types.NewQueryClient(ctx) diff --git a/x/cork/client/cli/query_test.go b/x/cork/client/cli/query_test.go index 89d8bb1c..ccf9d7d2 100644 --- a/x/cork/client/cli/query_test.go +++ b/x/cork/client/cli/query_test.go @@ -1,36 +1,12 @@ package cli import ( + "fmt" "testing" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/stretchr/testify/require" ) -func TestQueryScheduledCorksByBlockHeightCmd(t *testing.T) { - testCases := []struct { - name string - args []string - err error - }{ - { - name: "Block height overflow", - args: []string{ - "18446744073709551616", - }, - err: sdkerrors.New("", uint32(1), "strconv.Atoi: parsing \"18446744073709551616\": value out of range"), - }, - } - - for _, tc := range testCases { - cmd := *queryScheduledCorksByBlockHeight() - cmd.SetArgs(tc.args) - err := cmd.Execute() - - require.Equal(t, tc.err.Error(), err.Error()) - } -} - func TestQueryScheduledCorksByIDCmd(t *testing.T) { testCases := []struct { name string @@ -42,7 +18,7 @@ func TestQueryScheduledCorksByIDCmd(t *testing.T) { args: []string{ "bad", }, - err: sdkerrors.New("", uint32(1), "invalid ID length, must be a keccak256 hash"), + err: fmt.Errorf("invalid ID length, must be a keccak256 hash"), }, } @@ -66,7 +42,7 @@ func TestQueryCorkResultCmd(t *testing.T) { args: []string{ "bad", }, - err: sdkerrors.New("", uint32(1), "invalid ID length, must be a keccak256 hash"), + err: fmt.Errorf("invalid ID length, must be a keccak256 hash"), }, } diff --git a/x/cork/client/cli/tx.go b/x/cork/client/cli/tx.go index c5591d5e..91415244 100644 --- a/x/cork/client/cli/tx.go +++ b/x/cork/client/cli/tx.go @@ -2,7 +2,6 @@ package cli import ( "fmt" - "io/ioutil" "os" "strings" @@ -10,7 +9,7 @@ import ( "github.com/cosmos/cosmos-sdk/client/tx" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/version" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" "github.com/ethereum/go-ethereum/common" types "github.com/peggyjv/sommelier/v7/x/cork/types" "github.com/spf13/cobra" @@ -89,7 +88,7 @@ Where proposal.json contains: &types.CellarIDSet{Ids: proposal.CellarIds}) from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -159,7 +158,7 @@ Where proposal.json contains: &types.CellarIDSet{Ids: proposal.CellarIds}) from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -207,7 +206,7 @@ The contract_call_proto_json field must be the JSON representation of a Schedule } proposal := types.ScheduledCorkProposalWithDeposit{} - contents, err := ioutil.ReadFile(args[0]) + contents, err := os.ReadFile(args[0]) if err != nil { return err } @@ -230,7 +229,7 @@ The contract_call_proto_json field must be the JSON representation of a Schedule return err } from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } diff --git a/x/cork/client/cli/tx_test.go b/x/cork/client/cli/tx_test.go index fd2ada92..baf7dbc7 100644 --- a/x/cork/client/cli/tx_test.go +++ b/x/cork/client/cli/tx_test.go @@ -1,7 +1,6 @@ package cli import ( - "io/ioutil" "os" "testing" @@ -28,7 +27,7 @@ func TestParseAddManagedCellarsProposal(t *testing.T) { contents, err := os.ReadFile(okJSON.Name()) require.NoError(t, err) - err = encodingConfig.Marshaler.UnmarshalJSON(contents, &proposal) + err = encodingConfig.Codec.UnmarshalJSON(contents, &proposal) require.NoError(t, err) require.Equal(t, "Dollary-doos LP Cellar Proposal", proposal.Title) @@ -54,7 +53,7 @@ func TestParseRemoveManagedCellarsProposal(t *testing.T) { contents, err := os.ReadFile(okJSON.Name()) require.NoError(t, err) - err = encodingConfig.Marshaler.UnmarshalJSON(contents, &proposal) + err = encodingConfig.Codec.UnmarshalJSON(contents, &proposal) require.NoError(t, err) require.Equal(t, "Dollary-doos LP Cellar Proposal", proposal.Title) @@ -77,10 +76,10 @@ func TestParseSubmitScheduledCorkProposal(t *testing.T) { `) proposal := types.ScheduledCorkProposalWithDeposit{} - contents, err := ioutil.ReadFile(okJSON.Name()) + contents, err := os.ReadFile(okJSON.Name()) require.NoError(t, err) - err = encodingConfig.Marshaler.UnmarshalJSON(contents, &proposal) + err = encodingConfig.Codec.UnmarshalJSON(contents, &proposal) require.NoError(t, err) require.Equal(t, "Scheduled cork proposal", proposal.Title) diff --git a/x/cork/client/proposal_handler.go b/x/cork/client/proposal_handler.go index 1f880d87..6771b94b 100644 --- a/x/cork/client/proposal_handler.go +++ b/x/cork/client/proposal_handler.go @@ -3,11 +3,10 @@ package client import ( govclient "github.com/cosmos/cosmos-sdk/x/gov/client" "github.com/peggyjv/sommelier/v7/x/cork/client/cli" - "github.com/peggyjv/sommelier/v7/x/cork/client/rest" ) var ( - AddProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitAddProposal, rest.AddProposalRESTHandler) - RemoveProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitRemoveProposal, rest.RemoveProposalRESTHandler) - ScheduledCorkProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitScheduledCorkProposal, rest.ScheduledCorkProposalRESTHandler) + AddProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitAddProposal) + RemoveProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitRemoveProposal) + ScheduledCorkProposalHandler = govclient.NewProposalHandler(cli.GetCmdSubmitScheduledCorkProposal) ) diff --git a/x/cork/client/rest/rest.go b/x/cork/client/rest/rest.go deleted file mode 100644 index 4e06f63e..00000000 --- a/x/cork/client/rest/rest.go +++ /dev/null @@ -1,132 +0,0 @@ -package rest - -import ( - "net/http" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/tx" - "github.com/cosmos/cosmos-sdk/types/rest" - govrest "github.com/cosmos/cosmos-sdk/x/gov/client/rest" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - "github.com/peggyjv/sommelier/v7/x/cork/types" -) - -// AddProposalRESTHandler returns a ProposalRESTHandler that exposes add managed cellar IDs REST handler with a given sub-route. -func AddProposalRESTHandler(clientCtx client.Context) govrest.ProposalRESTHandler { - return govrest.ProposalRESTHandler{ - SubRoute: "add_managed_cellar_ids", - Handler: postAddProposalHandlerFn(clientCtx), - } -} - -// RemoveProposalRESTHandler returns a ProposalRESTHandler that exposes remove managed cellar IDs REST handler with a given sub-route. -func RemoveProposalRESTHandler(clientCtx client.Context) govrest.ProposalRESTHandler { - return govrest.ProposalRESTHandler{ - SubRoute: "remove_managed_cellar_ids", - Handler: postRemoveProposalHandlerFn(clientCtx), - } -} - -// ScheduledCorkProposalRESTHandler returns a ProposalRESTHandler that exposes the scheduled cork REST handler with a given sub-route. -func ScheduledCorkProposalRESTHandler(clientCtx client.Context) govrest.ProposalRESTHandler { - return govrest.ProposalRESTHandler{ - SubRoute: "scheduled_cork", - Handler: postScheduledCorkProposalHandlerFn(clientCtx), - } -} - -func postAddProposalHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req AddManagedCellarIDsProposalReq - if !rest.ReadRESTReq(w, r, clientCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - content := types.NewAddManagedCellarIDsProposal( - req.Title, - req.Description, - &types.CellarIDSet{ - Ids: req.CellarIDs, - }) - - msg, err := govtypes.NewMsgSubmitProposal(content, req.Deposit, req.Proposer) - if rest.CheckBadRequestError(w, err) { - return - } - if rest.CheckBadRequestError(w, msg.ValidateBasic()) { - return - } - - tx.WriteGeneratedTxResponse(clientCtx, w, req.BaseReq, msg) - } -} - -func postRemoveProposalHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req RemoveManagedCellarIDsProposalReq - if !rest.ReadRESTReq(w, r, clientCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - content := types.NewRemoveManagedCellarIDsProposal( - req.Title, - req.Description, - &types.CellarIDSet{ - Ids: req.CellarIDs, - }) - - msg, err := govtypes.NewMsgSubmitProposal(content, req.Deposit, req.Proposer) - if rest.CheckBadRequestError(w, err) { - return - } - if rest.CheckBadRequestError(w, msg.ValidateBasic()) { - return - } - - tx.WriteGeneratedTxResponse(clientCtx, w, req.BaseReq, msg) - } -} - -func postScheduledCorkProposalHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req ScheduledCorkProposalReq - if !rest.ReadRESTReq(w, r, clientCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - content := types.NewScheduledCorkProposal( - req.Title, - req.Description, - req.BlockHeight, - req.TargetContractAddress, - req.ContractCallProtoJSON, - ) - if rest.CheckBadRequestError(w, content.ValidateBasic()) { - return - } - msg, err := govtypes.NewMsgSubmitProposal(content, req.Deposit, req.Proposer) - if rest.CheckBadRequestError(w, err) { - return - } - if rest.CheckBadRequestError(w, msg.ValidateBasic()) { - return - } - - tx.WriteGeneratedTxResponse(clientCtx, w, req.BaseReq, msg) - } -} diff --git a/x/cork/client/rest/utils.go b/x/cork/client/rest/utils.go deleted file mode 100644 index 3d935bae..00000000 --- a/x/cork/client/rest/utils.go +++ /dev/null @@ -1,41 +0,0 @@ -package rest - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/rest" -) - -type ( - // AddManagedCellarIDsProposalReq defines a managed cellar ID addition proposal request body. - AddManagedCellarIDsProposalReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - - Title string `json:"title" yaml:"title"` - Description string `json:"description" yaml:"description"` - CellarIDs []string `json:"cellar_ids" yaml:"cellar_ids"` - Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` - Deposit sdk.Coins `json:"deposit" yaml:"deposit"` - } - // RemoveManagedCellarIDsProposalReq defines a managed cellar ID removal proposal request body. - RemoveManagedCellarIDsProposalReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - - Title string `json:"title" yaml:"title"` - Description string `json:"description" yaml:"description"` - CellarIDs []string `json:"cellar_ids" yaml:"cellar_ids"` - Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` - Deposit sdk.Coins `json:"deposit" yaml:"deposit"` - } - // ScheduledCorkProposalReq defines a schedule cork proposal request body. - ScheduledCorkProposalReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - - Title string `json:"title" yaml:"title"` - Description string `json:"description" yaml:"description"` - BlockHeight uint64 `json:"block_height" yaml:"block_height"` - TargetContractAddress string `json:"target_contract_address" yaml:"target_contract_address"` - ContractCallProtoJSON string `json:"contract_call_proto_json" yaml:"contract_call_proto_json"` - Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` - Deposit sdk.Coins `json:"deposit" yaml:"deposit"` - } -) diff --git a/x/cork/handler.go b/x/cork/handler.go index 4eb7242c..38dc983d 100644 --- a/x/cork/handler.go +++ b/x/cork/handler.go @@ -1,8 +1,9 @@ package cork import ( + errorsmod "cosmossdk.io/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" sdk "github.com/cosmos/cosmos-sdk/types" @@ -19,13 +20,13 @@ func NewHandler(k keeper.Keeper) sdk.Handler { res, err := k.ScheduleCork(sdk.WrapSDKContext(ctx), msg) return sdk.WrapServiceResult(ctx, res, err) default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized cork message type: %T", msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized cork message type: %T", msg) } } } -func NewProposalHandler(k keeper.Keeper) govtypes.Handler { - return func(ctx sdk.Context, content govtypes.Content) error { +func NewProposalHandler(k keeper.Keeper) govtypesv1beta1.Handler { + return func(ctx sdk.Context, content govtypesv1beta1.Content) error { switch c := content.(type) { case *types.AddManagedCellarIDsProposal: return keeper.HandleAddManagedCellarsProposal(ctx, k, *c) @@ -35,7 +36,7 @@ func NewProposalHandler(k keeper.Keeper) govtypes.Handler { return keeper.HandleScheduledCorkProposal(ctx, k, *c) default: - return sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized cork proposal content type: %T", c) + return errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized cork proposal content type: %T", c) } } } diff --git a/x/cork/keeper/abci.go b/x/cork/keeper/abci.go index f33dcefb..b70a5827 100644 --- a/x/cork/keeper/abci.go +++ b/x/cork/keeper/abci.go @@ -6,7 +6,7 @@ import ( "github.com/ethereum/go-ethereum/common" sdk "github.com/cosmos/cosmos-sdk/types" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" "github.com/peggyjv/sommelier/v7/x/cork/types" ) diff --git a/x/cork/keeper/hooks.go b/x/cork/keeper/hooks.go index 6db3df00..ecd2c899 100644 --- a/x/cork/keeper/hooks.go +++ b/x/cork/keeper/hooks.go @@ -2,7 +2,7 @@ package keeper import ( sdk "github.com/cosmos/cosmos-sdk/types" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" ) type Hooks struct { diff --git a/x/cork/keeper/keeper.go b/x/cork/keeper/keeper.go index f9f504c8..a0b3ecc1 100644 --- a/x/cork/keeper/keeper.go +++ b/x/cork/keeper/keeper.go @@ -4,6 +4,7 @@ import ( "bytes" "github.com/cosmos/cosmos-sdk/codec" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" "github.com/ethereum/go-ethereum/common" @@ -15,7 +16,7 @@ const corkVoteThresholdStr = "0.67" // Keeper of the oracle store type Keeper struct { - storeKey sdk.StoreKey + storeKey storetypes.StoreKey cdc codec.BinaryCodec paramSpace paramtypes.Subspace stakingKeeper types.StakingKeeper @@ -24,7 +25,7 @@ type Keeper struct { // NewKeeper creates a new x/cork Keeper instance func NewKeeper( - cdc codec.BinaryCodec, key sdk.StoreKey, paramSpace paramtypes.Subspace, + cdc codec.BinaryCodec, key storetypes.StoreKey, paramSpace paramtypes.Subspace, stakingKeeper types.StakingKeeper, gravityKeeper types.GravityKeeper, ) Keeper { // set KeyTable if it has not already been set @@ -303,7 +304,7 @@ func (k Keeper) GetApprovedScheduledCorks(ctx sdk.Context) (approvedCorks []type threshold := sdk.MustNewDecFromStr(corkVoteThresholdStr) for i, power := range powers { cork := corks[i] - approvalPercentage := sdk.NewIntFromUint64(power).ToDec().Quo(totalPower.ToDec()) + approvalPercentage := sdk.NewDecFromInt(sdk.NewIntFromUint64(power)).Quo(sdk.NewDecFromInt(totalPower)) quorumReached := approvalPercentage.GT(threshold) corkResult := types.CorkResult{ Cork: &cork, diff --git a/x/cork/keeper/msg_server.go b/x/cork/keeper/msg_server.go index 4806e9a4..fba75ccf 100644 --- a/x/cork/keeper/msg_server.go +++ b/x/cork/keeper/msg_server.go @@ -5,6 +5,7 @@ import ( "encoding/hex" "fmt" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/common" @@ -29,7 +30,7 @@ func (k Keeper) ScheduleCork(c context.Context, msg *types.MsgScheduleCorkReques signer := msg.MustGetSigner() validatorAddr := k.gravityKeeper.GetOrchestratorValidatorAddress(ctx, signer) if validatorAddr == nil { - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "signer %s is not a delegate", signer.String()) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "signer %s is not a delegate", signer.String()) } corkID := k.SetScheduledCork(ctx, msg.BlockHeight, validatorAddr, *msg.Cork) diff --git a/x/cork/keeper/proposal_handler.go b/x/cork/keeper/proposal_handler.go index fe900296..5627a4a6 100644 --- a/x/cork/keeper/proposal_handler.go +++ b/x/cork/keeper/proposal_handler.go @@ -3,8 +3,8 @@ package keeper import ( "sort" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/common" "github.com/peggyjv/sommelier/v7/x/cork/types" ) @@ -60,7 +60,7 @@ func HandleRemoveManagedCellarsProposal(ctx sdk.Context, k Keeper, p types.Remov // HandleScheduledCorkProposal is a handler for executing a passed scheduled cork proposal func HandleScheduledCorkProposal(ctx sdk.Context, k Keeper, p types.ScheduledCorkProposal) error { if !k.HasCellarID(ctx, common.HexToAddress(p.TargetContractAddress)) { - return sdkerrors.Wrapf(types.ErrUnmanagedCellarAddress, "id: %s", p.TargetContractAddress) + return errorsmod.Wrapf(types.ErrUnmanagedCellarAddress, "id: %s", p.TargetContractAddress) } return nil diff --git a/x/cork/keeper/setup_unit_test.go b/x/cork/keeper/setup_unit_test.go index de1dcf93..78da566e 100644 --- a/x/cork/keeper/setup_unit_test.go +++ b/x/cork/keeper/setup_unit_test.go @@ -38,15 +38,15 @@ func setupCorkKeeper(t *testing.T) ( // Mount the KV store with the x/cork store key storeKey := sdk.NewKVStoreKey(types.StoreKey) - commitMultiStore.MountStoreWithDB(storeKey, sdk.StoreTypeIAVL, db) + commitMultiStore.MountStoreWithDB(storeKey, storetypes.StoreTypeIAVL, db) // Mount Transient store transientStoreKey := sdk.NewTransientStoreKey("transient" + types.StoreKey) - commitMultiStore.MountStoreWithDB(transientStoreKey, sdk.StoreTypeTransient, nil) + commitMultiStore.MountStoreWithDB(transientStoreKey, storetypes.StoreTypeTransient, nil) // Mount Memory store memStoreKey := storetypes.NewMemoryStoreKey("mem" + types.StoreKey) - commitMultiStore.MountStoreWithDB(memStoreKey, sdk.StoreTypeMemory, nil) + commitMultiStore.MountStoreWithDB(memStoreKey, storetypes.StoreTypeMemory, nil) require.NoError(t, commitMultiStore.LoadLatestVersion()) protoCodec := codec.NewProtoCodec(codectypes.NewInterfaceRegistry()) @@ -79,7 +79,7 @@ func setupCorkKeeper(t *testing.T) ( func initParamsKeeper( appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, - key sdk.StoreKey, tkey sdk.StoreKey, + key storetypes.StoreKey, tkey storetypes.StoreKey, ) paramskeeper.Keeper { paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey) paramsKeeper.Subspace(types.ModuleName) diff --git a/x/cork/keeper/test_common.go b/x/cork/keeper/test_common.go index e01b3fe7..d05a3edb 100644 --- a/x/cork/keeper/test_common.go +++ b/x/cork/keeper/test_common.go @@ -5,6 +5,8 @@ import ( "testing" "time" + "cosmossdk.io/math" + "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" @@ -14,6 +16,7 @@ import ( ccrypto "github.com/cosmos/cosmos-sdk/crypto/types" "github.com/cosmos/cosmos-sdk/std" "github.com/cosmos/cosmos-sdk/store" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" "github.com/cosmos/cosmos-sdk/x/auth" @@ -32,8 +35,11 @@ import ( "github.com/cosmos/cosmos-sdk/x/evidence" "github.com/cosmos/cosmos-sdk/x/genutil" "github.com/cosmos/cosmos-sdk/x/gov" + govclient "github.com/cosmos/cosmos-sdk/x/gov/client" govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" "github.com/cosmos/cosmos-sdk/x/mint" "github.com/cosmos/cosmos-sdk/x/params" paramsclient "github.com/cosmos/cosmos-sdk/x/params/client" @@ -49,9 +55,9 @@ import ( "github.com/cosmos/cosmos-sdk/x/upgrade" upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client" gethcommon "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v3/x/gravity" - gravitykeeper "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/keeper" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v4/x/gravity" + gravitykeeper "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/keeper" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" "github.com/peggyjv/sommelier/v7/x/cork/types" "github.com/stretchr/testify/require" "github.com/tendermint/tendermint/libs/log" @@ -70,7 +76,7 @@ var ( mint.AppModuleBasic{}, distribution.AppModuleBasic{}, gov.NewAppModuleBasic( - paramsclient.ProposalHandler, distrclient.ProposalHandler, upgradeclient.ProposalHandler, upgradeclient.CancelProposalHandler, + []govclient.ProposalHandler{paramsclient.ProposalHandler, distrclient.ProposalHandler, upgradeclient.LegacyProposalHandler, upgradeclient.LegacyCancelProposalHandler}, ), params.AppModuleBasic{}, crisis.AppModuleBasic{}, @@ -223,16 +229,16 @@ func CreateTestEnv(t *testing.T) TestInput { // Initialize memory database and mount stores on it db := dbm.NewMemDB() ms := store.NewCommitMultiStore(db) - ms.MountStoreWithDB(keyGravity, sdk.StoreTypeIAVL, db) - ms.MountStoreWithDB(keyAcc, sdk.StoreTypeIAVL, db) - ms.MountStoreWithDB(keyParams, sdk.StoreTypeIAVL, db) - ms.MountStoreWithDB(keyStaking, sdk.StoreTypeIAVL, db) - ms.MountStoreWithDB(keyBank, sdk.StoreTypeIAVL, db) - ms.MountStoreWithDB(keyDistro, sdk.StoreTypeIAVL, db) - ms.MountStoreWithDB(tkeyParams, sdk.StoreTypeTransient, db) - ms.MountStoreWithDB(keyGov, sdk.StoreTypeIAVL, db) - ms.MountStoreWithDB(keySlashing, sdk.StoreTypeIAVL, db) - ms.MountStoreWithDB(keycork, sdk.StoreTypeIAVL, db) + ms.MountStoreWithDB(keyGravity, storetypes.StoreTypeIAVL, db) + ms.MountStoreWithDB(keyAcc, storetypes.StoreTypeIAVL, db) + ms.MountStoreWithDB(keyParams, storetypes.StoreTypeIAVL, db) + ms.MountStoreWithDB(keyStaking, storetypes.StoreTypeIAVL, db) + ms.MountStoreWithDB(keyBank, storetypes.StoreTypeIAVL, db) + ms.MountStoreWithDB(keyDistro, storetypes.StoreTypeIAVL, db) + ms.MountStoreWithDB(tkeyParams, storetypes.StoreTypeTransient, db) + ms.MountStoreWithDB(keyGov, storetypes.StoreTypeIAVL, db) + ms.MountStoreWithDB(keySlashing, storetypes.StoreTypeIAVL, db) + ms.MountStoreWithDB(keycork, storetypes.StoreTypeIAVL, db) err := ms.LoadLatestVersion() require.Nil(t, err) @@ -271,6 +277,7 @@ func CreateTestEnv(t *testing.T) TestInput { getSubspace(paramsKeeper, authtypes.ModuleName), authtypes.ProtoBaseAccount, // prototype maccPerms, + "stake", ) blockedAddr := make(map[string]bool, len(maccPerms)) @@ -290,7 +297,7 @@ func CreateTestEnv(t *testing.T) TestInput { stakingKeeper := stakingkeeper.NewKeeper(marshaler, keyStaking, accountKeeper, bankKeeper, getSubspace(paramsKeeper, stakingtypes.ModuleName)) stakingKeeper.SetParams(ctx, TestingStakeParams) - distKeeper := distrkeeper.NewKeeper(marshaler, keyDistro, getSubspace(paramsKeeper, distrtypes.ModuleName), accountKeeper, bankKeeper, stakingKeeper, authtypes.FeeCollectorName, nil) + distKeeper := distrkeeper.NewKeeper(marshaler, keyDistro, getSubspace(paramsKeeper, distrtypes.ModuleName), accountKeeper, bankKeeper, stakingKeeper, authtypes.FeeCollectorName) distKeeper.SetParams(ctx, distrtypes.DefaultParams()) // set genesis items required for distribution @@ -323,25 +330,20 @@ func CreateTestEnv(t *testing.T) TestInput { moduleAcct := accountKeeper.GetAccount(ctx, stakeAddr) require.NotNil(t, moduleAcct) - router := baseapp.NewRouter() - router.AddRoute(bank.AppModule{}.Route()) - router.AddRoute(staking.AppModule{}.Route()) - router.AddRoute(distribution.AppModule{}.Route()) - // Load default wasm config - govRouter := govtypes.NewRouter(). + govRouter := govtypesv1beta1.NewRouter(). AddRoute(paramsproposal.RouterKey, params.NewParamChangeProposalHandler(paramsKeeper)). - AddRoute(govtypes.RouterKey, govtypes.ProposalHandler) + AddRoute(govtypes.RouterKey, govtypesv1beta1.ProposalHandler) govKeeper := govkeeper.NewKeeper( - marshaler, keyGov, getSubspace(paramsKeeper, govtypes.ModuleName).WithKeyTable(govtypes.ParamKeyTable()), accountKeeper, bankKeeper, stakingKeeper, govRouter, + marshaler, keyGov, getSubspace(paramsKeeper, govtypes.ModuleName).WithKeyTable(govtypesv1.ParamKeyTable()), accountKeeper, bankKeeper, stakingKeeper, govRouter, baseapp.NewMsgServiceRouter(), govtypes.DefaultConfig(), ) - govKeeper.SetProposalID(ctx, govtypes.DefaultStartingProposalID) - govKeeper.SetDepositParams(ctx, govtypes.DefaultDepositParams()) - govKeeper.SetVotingParams(ctx, govtypes.DefaultVotingParams()) - govKeeper.SetTallyParams(ctx, govtypes.DefaultTallyParams()) + govKeeper.SetProposalID(ctx, govtypesv1beta1.DefaultStartingProposalID) + govKeeper.SetDepositParams(ctx, govtypesv1.DefaultDepositParams()) + govKeeper.SetVotingParams(ctx, govtypesv1.DefaultVotingParams()) + govKeeper.SetTallyParams(ctx, govtypesv1.DefaultTallyParams()) slashingKeeper := slashingkeeper.NewKeeper( marshaler, @@ -475,7 +477,7 @@ func (s *StakingKeeperMock) GetLastValidatorPower(ctx sdk.Context, operator sdk. } // GetLastTotalPower implements the interface for staking keeper required by gravity -func (s *StakingKeeperMock) GetLastTotalPower(ctx sdk.Context) (power sdk.Int) { +func (s *StakingKeeperMock) GetLastTotalPower(ctx sdk.Context) (power math.Int) { var total int64 for _, v := range s.ValidatorPower { total += v @@ -552,13 +554,15 @@ func (s *StakingKeeperMock) ValidatorQueueIterator(ctx sdk.Context, endTime time } // Slash satisfies the interface -func (s *StakingKeeperMock) Slash(sdk.Context, sdk.ConsAddress, int64, int64, sdk.Dec) {} +func (s *StakingKeeperMock) Slash(sdk.Context, sdk.ConsAddress, int64, int64, sdk.Dec) math.Int { + return sdk.NewInt(0) +} // Jail satisfies the interface func (s *StakingKeeperMock) Jail(sdk.Context, sdk.ConsAddress) {} // PowerReduction satisfies the interface -func (s *StakingKeeperMock) PowerReduction(sdk.Context) sdk.Int { +func (s *StakingKeeperMock) PowerReduction(sdk.Context) math.Int { return sdk.NewInt(0) } @@ -566,7 +570,7 @@ func (s *StakingKeeperMock) PowerReduction(sdk.Context) sdk.Int { type AlwaysPanicStakingMock struct{} // GetLastTotalPower implements the interface for staking keeper required by gravity -func (s AlwaysPanicStakingMock) GetLastTotalPower(ctx sdk.Context) (power sdk.Int) { +func (s AlwaysPanicStakingMock) GetLastTotalPower(ctx sdk.Context) (power math.Int) { panic("unexpected call") } @@ -616,7 +620,7 @@ func (s AlwaysPanicStakingMock) Jail(sdk.Context, sdk.ConsAddress) { } // PowerReduction satisfies the interface -func (s AlwaysPanicStakingMock) PowerReduction(sdk.Context) sdk.Int { +func (s AlwaysPanicStakingMock) PowerReduction(sdk.Context) math.Int { panic("unexpected call") } diff --git a/x/cork/mock/mocks.go b/x/cork/mock/mocks.go index 8954cf8c..f51a2447 100644 --- a/x/cork/mock/mocks.go +++ b/x/cork/mock/mocks.go @@ -1,24 +1,18 @@ -/* // Code generated by MockGen. DO NOT EDIT. +// Source: x/cork/types/expected_keepers.go -Interfaces from source: x/cork/types/expected_keepers.go -- StakingKeeper -- GravityKeeper - -Interfaces from source: github.com/cosmos/cosmos-sdk/x/staking/types/exported.go -- ValidatorI -*/ - +// Package mock is a generated GoMock package. package mock import ( reflect "reflect" + math "cosmossdk.io/math" types "github.com/cosmos/cosmos-sdk/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + types0 "github.com/cosmos/cosmos-sdk/x/staking/types" common "github.com/ethereum/go-ethereum/common" gomock "github.com/golang/mock/gomock" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + types1 "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" bytes "github.com/tendermint/tendermint/libs/bytes" ) @@ -46,10 +40,10 @@ func (m *MockStakingKeeper) EXPECT() *MockStakingKeeperMockRecorder { } // GetBondedValidatorsByPower mocks base method. -func (m *MockStakingKeeper) GetBondedValidatorsByPower(ctx types.Context) []stakingtypes.Validator { +func (m *MockStakingKeeper) GetBondedValidatorsByPower(ctx types.Context) []types0.Validator { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBondedValidatorsByPower", ctx) - ret0, _ := ret[0].([]stakingtypes.Validator) + ret0, _ := ret[0].([]types0.Validator) return ret0 } @@ -88,7 +82,7 @@ func (mr *MockStakingKeeperMockRecorder) GetLastValidatorPower(ctx, operator int } // IterateBondedValidatorsByPower mocks base method. -func (m *MockStakingKeeper) IterateBondedValidatorsByPower(arg0 types.Context, arg1 func(int64, stakingtypes.ValidatorI) bool) { +func (m *MockStakingKeeper) IterateBondedValidatorsByPower(arg0 types.Context, arg1 func(int64, types0.ValidatorI) bool) { m.ctrl.T.Helper() m.ctrl.Call(m, "IterateBondedValidatorsByPower", arg0, arg1) } @@ -100,7 +94,7 @@ func (mr *MockStakingKeeperMockRecorder) IterateBondedValidatorsByPower(arg0, ar } // IterateLastValidators mocks base method. -func (m *MockStakingKeeper) IterateLastValidators(arg0 types.Context, arg1 func(int64, stakingtypes.ValidatorI) bool) { +func (m *MockStakingKeeper) IterateLastValidators(arg0 types.Context, arg1 func(int64, types0.ValidatorI) bool) { m.ctrl.T.Helper() m.ctrl.Call(m, "IterateLastValidators", arg0, arg1) } @@ -112,7 +106,7 @@ func (mr *MockStakingKeeperMockRecorder) IterateLastValidators(arg0, arg1 interf } // IterateValidators mocks base method. -func (m *MockStakingKeeper) IterateValidators(arg0 types.Context, arg1 func(int64, stakingtypes.ValidatorI) bool) { +func (m *MockStakingKeeper) IterateValidators(arg0 types.Context, arg1 func(int64, types0.ValidatorI) bool) { m.ctrl.T.Helper() m.ctrl.Call(m, "IterateValidators", arg0, arg1) } @@ -150,9 +144,11 @@ func (mr *MockStakingKeeperMockRecorder) PowerReduction(ctx interface{}) *gomock } // Slash mocks base method. -func (m *MockStakingKeeper) Slash(arg0 types.Context, arg1 types.ConsAddress, arg2, arg3 int64, arg4 types.Dec) { +func (m *MockStakingKeeper) Slash(arg0 types.Context, arg1 types.ConsAddress, arg2, arg3 int64, arg4 types.Dec) math.Int { m.ctrl.T.Helper() - m.ctrl.Call(m, "Slash", arg0, arg1, arg2, arg3, arg4) + ret := m.ctrl.Call(m, "Slash", arg0, arg1, arg2, arg3, arg4) + ret0, _ := ret[0].(math.Int) + return ret0 } // Slash indicates an expected call of Slash. @@ -162,10 +158,10 @@ func (mr *MockStakingKeeperMockRecorder) Slash(arg0, arg1, arg2, arg3, arg4 inte } // Validator mocks base method. -func (m *MockStakingKeeper) Validator(arg0 types.Context, arg1 types.ValAddress) stakingtypes.ValidatorI { +func (m *MockStakingKeeper) Validator(arg0 types.Context, arg1 types.ValAddress) types0.ValidatorI { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "Validator", arg0, arg1) - ret0, _ := ret[0].(stakingtypes.ValidatorI) + ret0, _ := ret[0].(types0.ValidatorI) return ret0 } @@ -176,10 +172,10 @@ func (mr *MockStakingKeeperMockRecorder) Validator(arg0, arg1 interface{}) *gomo } // ValidatorByConsAddr mocks base method. -func (m *MockStakingKeeper) ValidatorByConsAddr(arg0 types.Context, arg1 types.ConsAddress) stakingtypes.ValidatorI { +func (m *MockStakingKeeper) ValidatorByConsAddr(arg0 types.Context, arg1 types.ConsAddress) types0.ValidatorI { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ValidatorByConsAddr", arg0, arg1) - ret0, _ := ret[0].(stakingtypes.ValidatorI) + ret0, _ := ret[0].(types0.ValidatorI) return ret0 } @@ -213,10 +209,10 @@ func (m *MockGravityKeeper) EXPECT() *MockGravityKeeperMockRecorder { } // CreateContractCallTx mocks base method. -func (m *MockGravityKeeper) CreateContractCallTx(ctx types.Context, invalidationNonce uint64, invalidationScope bytes.HexBytes, address common.Address, payload []byte, tokens, fees []gravitytypes.ERC20Token) *gravitytypes.ContractCallTx { +func (m *MockGravityKeeper) CreateContractCallTx(ctx types.Context, invalidationNonce uint64, invalidationScope bytes.HexBytes, address common.Address, payload []byte, tokens, fees []types1.ERC20Token) *types1.ContractCallTx { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateContractCallTx", ctx, invalidationNonce, invalidationScope, address, payload, tokens, fees) - ret0, _ := ret[0].(*gravitytypes.ContractCallTx) + ret0, _ := ret[0].(*types1.ContractCallTx) return ret0 } @@ -281,7 +277,7 @@ func (mr *MockGravityKeeperMockRecorder) SetOrchestratorValidatorAddress(ctx, va } // SetOutgoingTx mocks base method. -func (m *MockGravityKeeper) SetOutgoingTx(ctx types.Context, outgoing gravitytypes.OutgoingTx) { +func (m *MockGravityKeeper) SetOutgoingTx(ctx types.Context, outgoing types1.OutgoingTx) { m.ctrl.T.Helper() m.ctrl.Call(m, "SetOutgoingTx", ctx, outgoing) } diff --git a/x/cork/module.go b/x/cork/module.go index 02e68df9..003a16c0 100644 --- a/x/cork/module.go +++ b/x/cork/module.go @@ -11,7 +11,6 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" sim "github.com/cosmos/cosmos-sdk/types/simulation" - "github.com/gorilla/mux" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/peggyjv/sommelier/v7/x/cork/client/cli" "github.com/peggyjv/sommelier/v7/x/cork/keeper" @@ -53,10 +52,6 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, _ client.TxEncodingCo return gs.Validate() } -// RegisterRESTRoutes doesn't support legacy REST routes. -// We don't want to support the legacy rest server here -func (AppModuleBasic) RegisterRESTRoutes(_ client.Context, _ *mux.Router) {} - // GetTxCmd returns the root tx command for the cork module. func (AppModuleBasic) GetTxCmd() *cobra.Command { return cli.GetTxCmd() diff --git a/x/cork/testutil/expected_keepers_mocks.go b/x/cork/testutil/expected_keepers_mocks.go index 0cf36fa2..e1db9975 100644 --- a/x/cork/testutil/expected_keepers_mocks.go +++ b/x/cork/testutil/expected_keepers_mocks.go @@ -1,5 +1,5 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: /Users/atro/source/work/sommelier/x/cork/types/expected_keepers.go +// Source: x/cork/types/expected_keepers.go // Package mock_types is a generated GoMock package. package mock_types @@ -7,11 +7,12 @@ package mock_types import ( reflect "reflect" + math "cosmossdk.io/math" types "github.com/cosmos/cosmos-sdk/types" types0 "github.com/cosmos/cosmos-sdk/x/staking/types" common "github.com/ethereum/go-ethereum/common" gomock "github.com/golang/mock/gomock" - types1 "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + types1 "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" bytes "github.com/tendermint/tendermint/libs/bytes" ) @@ -143,9 +144,11 @@ func (mr *MockStakingKeeperMockRecorder) PowerReduction(ctx interface{}) *gomock } // Slash mocks base method. -func (m *MockStakingKeeper) Slash(arg0 types.Context, arg1 types.ConsAddress, arg2, arg3 int64, arg4 types.Dec) { +func (m *MockStakingKeeper) Slash(arg0 types.Context, arg1 types.ConsAddress, arg2, arg3 int64, arg4 types.Dec) math.Int { m.ctrl.T.Helper() - m.ctrl.Call(m, "Slash", arg0, arg1, arg2, arg3, arg4) + ret := m.ctrl.Call(m, "Slash", arg0, arg1, arg2, arg3, arg4) + ret0, _ := ret[0].(math.Int) + return ret0 } // Slash indicates an expected call of Slash. diff --git a/x/cork/types/codec.go b/x/cork/types/codec.go index 8e267c4e..4665a007 100644 --- a/x/cork/types/codec.go +++ b/x/cork/types/codec.go @@ -4,7 +4,7 @@ import ( codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" ) // RegisterInterfaces registers the cork proto files @@ -14,7 +14,7 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { &MsgScheduleCorkRequest{}, ) - registry.RegisterImplementations((*govtypes.Content)(nil), + registry.RegisterImplementations((*govtypesv1beta1.Content)(nil), &AddManagedCellarIDsProposal{}, &RemoveManagedCellarIDsProposal{}, &ScheduledCorkProposal{}, diff --git a/x/cork/types/errors.go b/x/cork/types/errors.go index d406b0a6..e89b30ba 100644 --- a/x/cork/types/errors.go +++ b/x/cork/types/errors.go @@ -1,14 +1,14 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // x/cork module sentinel errors var ( - ErrInvalidEthereumAddress = sdkerrors.Register(ModuleName, 2, "invalid ethereum address") - ErrUnmanagedCellarAddress = sdkerrors.Register(ModuleName, 3, "cork sent to address that has not passed governance") - ErrEmptyContractCall = sdkerrors.Register(ModuleName, 4, "cork has an empty contract call body") - ErrSchedulingInThePast = sdkerrors.Register(ModuleName, 5, "cork is trying to be scheduled for a block that has already passed") - ErrInvalidJSON = sdkerrors.Register(ModuleName, 6, "invalid json") + ErrInvalidEthereumAddress = errorsmod.Register(ModuleName, 2, "invalid ethereum address") + ErrUnmanagedCellarAddress = errorsmod.Register(ModuleName, 3, "cork sent to address that has not passed governance") + ErrEmptyContractCall = errorsmod.Register(ModuleName, 4, "cork has an empty contract call body") + ErrSchedulingInThePast = errorsmod.Register(ModuleName, 5, "cork is trying to be scheduled for a block that has already passed") + ErrInvalidJSON = errorsmod.Register(ModuleName, 6, "invalid json") ) diff --git a/x/cork/types/expected_keepers.go b/x/cork/types/expected_keepers.go index d0393217..6ac5fea4 100644 --- a/x/cork/types/expected_keepers.go +++ b/x/cork/types/expected_keepers.go @@ -1,12 +1,14 @@ package types -//go:generate mockgen -destination=../keeper/mock_keepers.go -package=keeper github.com/peggyjv/sommelier/x/cork/types StakingKeeper, GravityKeeper +//go:generate mockgen --source=x/cork/types/expected_keepers.go --destination=x/cork/testutil/expected_keepers_mocks.go --package=mock_types import ( + "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v3/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v4/x/gravity/types" tmbytes "github.com/tendermint/tendermint/libs/bytes" ) @@ -14,15 +16,15 @@ import ( type StakingKeeper interface { GetBondedValidatorsByPower(ctx sdk.Context) []stakingtypes.Validator GetLastValidatorPower(ctx sdk.Context, operator sdk.ValAddress) int64 - GetLastTotalPower(ctx sdk.Context) (power sdk.Int) + GetLastTotalPower(ctx sdk.Context) (power math.Int) IterateValidators(sdk.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) IterateBondedValidatorsByPower(sdk.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) IterateLastValidators(sdk.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) Validator(sdk.Context, sdk.ValAddress) stakingtypes.ValidatorI ValidatorByConsAddr(sdk.Context, sdk.ConsAddress) stakingtypes.ValidatorI - Slash(sdk.Context, sdk.ConsAddress, int64, int64, sdk.Dec) + Slash(sdk.Context, sdk.ConsAddress, int64, int64, sdk.Dec) math.Int Jail(sdk.Context, sdk.ConsAddress) - PowerReduction(ctx sdk.Context) sdk.Int + PowerReduction(ctx sdk.Context) math.Int } // GravityKeeper defines the expected gravity keeper methods diff --git a/x/cork/types/msgs.go b/x/cork/types/msgs.go index 152a1580..56eca780 100644 --- a/x/cork/types/msgs.go +++ b/x/cork/types/msgs.go @@ -1,6 +1,7 @@ package types import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/common" @@ -40,7 +41,7 @@ func (m *MsgScheduleCorkRequest) Type() string { return TypeMsgScheduleCorkReque // ValidateBasic implements sdk.Msg func (m *MsgScheduleCorkRequest) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(m.Signer); err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) + return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) } return m.Cork.ValidateBasic() diff --git a/x/cork/types/proposal.go b/x/cork/types/proposal.go index b269e8f3..6eca07fa 100644 --- a/x/cork/types/proposal.go +++ b/x/cork/types/proposal.go @@ -4,8 +4,8 @@ import ( "encoding/json" "fmt" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + errorsmod "cosmossdk.io/errors" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" "github.com/ethereum/go-ethereum/common" ) @@ -15,19 +15,26 @@ const ( ProposalTypeScheduledCork = "ScheduledCork" ) -var _ govtypes.Content = &AddManagedCellarIDsProposal{} -var _ govtypes.Content = &RemoveManagedCellarIDsProposal{} -var _ govtypes.Content = &ScheduledCorkProposal{} +var _ govtypesv1beta1.Content = &AddManagedCellarIDsProposal{} +var _ govtypesv1beta1.Content = &RemoveManagedCellarIDsProposal{} +var _ govtypesv1beta1.Content = &ScheduledCorkProposal{} func init() { - govtypes.RegisterProposalType(ProposalTypeAddManagedCellarIDs) - govtypes.RegisterProposalTypeCodec(&AddManagedCellarIDsProposal{}, "sommelier/AddManagedCellarIDsProposal") - - govtypes.RegisterProposalType(ProposalTypeRemoveManagedCellarIDs) - govtypes.RegisterProposalTypeCodec(&RemoveManagedCellarIDsProposal{}, "sommelier/RemoveManagedCellarIDsProposal") - - govtypes.RegisterProposalType(ProposalTypeScheduledCork) - govtypes.RegisterProposalTypeCodec(&ScheduledCorkProposal{}, "sommelier/ScheduledCorkProposal") + // The RegisterProposalTypeCodec function was mysteriously removed by in 0.46.0 even though + // the claim was that the old API would be preserved in .../x/gov/types/v1beta1 so we have + // to interact with the codec directly. + // + // The PR that removed it: https://github.com/cosmos/cosmos-sdk/pull/11240 + // This PR was later reverted, but RegisterProposalTypeCodec was still left out. Not sure if + // this was intentional or not. + govtypesv1beta1.RegisterProposalType(ProposalTypeAddManagedCellarIDs) + govtypesv1beta1.ModuleCdc.RegisterConcrete(&AddManagedCellarIDsProposal{}, "sommelier/AddManagedCellarIDsProposal", nil) + + govtypesv1beta1.RegisterProposalType(ProposalTypeRemoveManagedCellarIDs) + govtypesv1beta1.ModuleCdc.RegisterConcrete(&RemoveManagedCellarIDsProposal{}, "sommelier/RemoveManagedCellarIDsProposal", nil) + + govtypesv1beta1.RegisterProposalType(ProposalTypeScheduledCork) + govtypesv1beta1.ModuleCdc.RegisterConcrete(&ScheduledCorkProposal{}, "sommelier/ScheduledCorkProposal", nil) } func NewAddManagedCellarIDsProposal(title string, description string, cellarIds *CellarIDSet) *AddManagedCellarIDsProposal { @@ -47,7 +54,7 @@ func (m *AddManagedCellarIDsProposal) ProposalType() string { } func (m *AddManagedCellarIDsProposal) ValidateBasic() error { - if err := govtypes.ValidateAbstract(m); err != nil { + if err := govtypesv1beta1.ValidateAbstract(m); err != nil { return err } @@ -75,7 +82,7 @@ func (m *RemoveManagedCellarIDsProposal) ProposalType() string { } func (m *RemoveManagedCellarIDsProposal) ValidateBasic() error { - if err := govtypes.ValidateAbstract(m); err != nil { + if err := govtypesv1beta1.ValidateAbstract(m); err != nil { return err } @@ -105,20 +112,20 @@ func (m *ScheduledCorkProposal) ProposalType() string { } func (m *ScheduledCorkProposal) ValidateBasic() error { - if err := govtypes.ValidateAbstract(m); err != nil { + if err := govtypesv1beta1.ValidateAbstract(m); err != nil { return err } if len(m.ContractCallProtoJson) == 0 { - return sdkerrors.Wrapf(ErrInvalidJSON, "cannot have empty contract call") + return errorsmod.Wrapf(ErrInvalidJSON, "cannot have empty contract call") } if !json.Valid([]byte(m.ContractCallProtoJson)) { - return sdkerrors.Wrapf(ErrInvalidJSON, "%s", m.ContractCallProtoJson) + return errorsmod.Wrapf(ErrInvalidJSON, "%s", m.ContractCallProtoJson) } if !common.IsHexAddress(m.TargetContractAddress) { - return sdkerrors.Wrapf(ErrInvalidEthereumAddress, "%s", m.TargetContractAddress) + return errorsmod.Wrapf(ErrInvalidEthereumAddress, "%s", m.TargetContractAddress) } return nil diff --git a/x/cork/types/proposal_test.go b/x/cork/types/proposal_test.go index 3a815d0d..71792c40 100644 --- a/x/cork/types/proposal_test.go +++ b/x/cork/types/proposal_test.go @@ -3,7 +3,7 @@ package types import ( "testing" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" "github.com/stretchr/testify/require" ) @@ -36,7 +36,7 @@ func TestScheduledCorkProposalValidation(t *testing.T) { TargetContractAddress: "0x01", }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidEthereumAddress, "0x01"), + err: errorsmod.Wrapf(ErrInvalidEthereumAddress, "0x01"), }, { name: "Empty proto JSON", @@ -48,7 +48,7 @@ func TestScheduledCorkProposalValidation(t *testing.T) { TargetContractAddress: "0x0000000000000000000000000000000000000000", }, expPass: false, - err: sdkerrors.Wrap(ErrInvalidJSON, "cannot have empty contract call"), + err: errorsmod.Wrap(ErrInvalidJSON, "cannot have empty contract call"), }, { name: "Invalid JSON", @@ -60,7 +60,7 @@ func TestScheduledCorkProposalValidation(t *testing.T) { TargetContractAddress: "0x0000000000000000000000000000000000000000", }, expPass: false, - err: sdkerrors.Wrapf(ErrInvalidJSON, "[}"), + err: errorsmod.Wrapf(ErrInvalidJSON, "[}"), }, } diff --git a/x/incentives/handler.go b/x/incentives/handler.go index eea54a8e..d4f80f7d 100644 --- a/x/incentives/handler.go +++ b/x/incentives/handler.go @@ -1,9 +1,9 @@ package incentives import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/peggyjv/sommelier/v7/x/incentives/keeper" ) @@ -14,7 +14,7 @@ func NewHandler(k keeper.Keeper) sdk.Handler { _ = ctx.WithEventManager(sdk.NewEventManager()) switch msg := msg.(type) { default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized incentives message type: %T", msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized incentives message type: %T", msg) } } } diff --git a/x/incentives/keeper/keeper.go b/x/incentives/keeper/keeper.go index 93375580..cdb574f3 100644 --- a/x/incentives/keeper/keeper.go +++ b/x/incentives/keeper/keeper.go @@ -2,6 +2,7 @@ package keeper import ( "github.com/cosmos/cosmos-sdk/codec" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" "github.com/peggyjv/sommelier/v7/x/incentives/types" @@ -10,7 +11,7 @@ import ( // Keeper of the incentives store type Keeper struct { - storeKey sdk.StoreKey + storeKey storetypes.StoreKey cdc codec.BinaryCodec paramSpace paramtypes.Subspace DistributionKeeper types.DistributionKeeper @@ -20,7 +21,7 @@ type Keeper struct { func NewKeeper( cdc codec.BinaryCodec, - storeKey sdk.StoreKey, + storeKey storetypes.StoreKey, paramSpace paramtypes.Subspace, distributionKeeper types.DistributionKeeper, bankKeeper types.BankKeeper, @@ -77,5 +78,5 @@ func (k Keeper) GetAPY(ctx sdk.Context) sdk.Dec { totalCoins := k.MintKeeper.StakingTokenSupply(ctx) annualRewards := incentivesParams.DistributionPerBlock.Amount.Mul(sdk.NewInt(int64(mintParams.BlocksPerYear))) - return annualRewards.ToDec().Quo(totalCoins.ToDec()).Quo(bondedRatio) + return sdk.NewDecFromInt(annualRewards).Quo(sdk.NewDecFromInt(totalCoins)).Quo(bondedRatio) } diff --git a/x/incentives/keeper/keeper_test.go b/x/incentives/keeper/keeper_test.go index 1c05fdfe..f1810f1c 100644 --- a/x/incentives/keeper/keeper_test.go +++ b/x/incentives/keeper/keeper_test.go @@ -97,6 +97,6 @@ func (suite *KeeperTestSuite) TestGetAPY() { DistributionPerBlock: distributionPerBlock, IncentivesCutoffHeight: 1000, }) - expected := distributionPerBlock.Amount.Mul(sdk.NewInt(int64(blocksPerYear))).ToDec().Quo(stakingTotalSupply.ToDec().Mul(bondedRatio)) + expected := sdk.NewDecFromInt(distributionPerBlock.Amount.Mul(sdk.NewInt(int64(blocksPerYear)))).Quo(sdk.NewDecFromInt(stakingTotalSupply).Mul(bondedRatio)) require.Equal(expected, incentivesKeeper.GetAPY(ctx)) } diff --git a/x/incentives/keeper/query_server_test.go b/x/incentives/keeper/query_server_test.go index 58ef86f4..6a9dcdfa 100644 --- a/x/incentives/keeper/query_server_test.go +++ b/x/incentives/keeper/query_server_test.go @@ -34,6 +34,6 @@ func (suite *KeeperTestSuite) TestQueriesHappyPath() { APYResult, err := incentivesKeeper.QueryAPY(sdk.WrapSDKContext(ctx), &types.QueryAPYRequest{}) require.Nil(err) - expectedAPY := incentivesParams.DistributionPerBlock.Amount.Mul(sdk.NewInt(int64(blocksPerYear))).ToDec().Quo(stakingTotalSupply.ToDec()).Quo(bondedRatio) + expectedAPY := sdk.NewDecFromInt(incentivesParams.DistributionPerBlock.Amount.Mul(sdk.NewInt(int64(blocksPerYear)))).Quo(sdk.NewDecFromInt(stakingTotalSupply)).Quo(bondedRatio) require.Equal(expectedAPY.String(), APYResult.Apy) } diff --git a/x/incentives/module.go b/x/incentives/module.go index ddeffedc..174d17a3 100644 --- a/x/incentives/module.go +++ b/x/incentives/module.go @@ -11,7 +11,6 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" sim "github.com/cosmos/cosmos-sdk/types/simulation" - "github.com/gorilla/mux" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/peggyjv/sommelier/v7/x/incentives/client/cli" "github.com/peggyjv/sommelier/v7/x/incentives/keeper" @@ -53,10 +52,6 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, _ client.TxEncodingCo return gs.Validate() } -// RegisterRESTRoutes doesn't support legacy REST routes. -// We don't want to support the legacy rest server here -func (AppModuleBasic) RegisterRESTRoutes(_ client.Context, _ *mux.Router) {} - // GetTxCmd returns the root tx command for the incentives module. func (AppModuleBasic) GetTxCmd() *cobra.Command { return nil diff --git a/x/incentives/types/errors.go b/x/incentives/types/errors.go index 5b4d88b9..c59b21c9 100644 --- a/x/incentives/types/errors.go +++ b/x/incentives/types/errors.go @@ -1,9 +1,9 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) var ( - ErrInvalidDistributionPerBlock = sdkerrors.Register(ModuleName, 1, "invalid distribution per block") + ErrInvalidDistributionPerBlock = errorsmod.Register(ModuleName, 1, "invalid distribution per block") ) diff --git a/x/incentives/types/expected_keepers.go b/x/incentives/types/expected_keepers.go index 25c148c2..b270094f 100644 --- a/x/incentives/types/expected_keepers.go +++ b/x/incentives/types/expected_keepers.go @@ -3,6 +3,7 @@ package types import ( + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" @@ -31,6 +32,6 @@ type BankKeeper interface { // MintKeeper defines the expected mint keeper methods type MintKeeper interface { GetParams(ctx sdk.Context) minttypes.Params - StakingTokenSupply(ctx sdk.Context) sdk.Int + StakingTokenSupply(ctx sdk.Context) math.Int BondedRatio(ctx sdk.Context) sdk.Dec } diff --git a/x/incentives/types/params.go b/x/incentives/types/params.go index b7704d13..6c60cf89 100644 --- a/x/incentives/types/params.go +++ b/x/incentives/types/params.go @@ -1,8 +1,8 @@ package types import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" "github.com/peggyjv/sommelier/v7/app/params" ) @@ -48,17 +48,17 @@ func (p *Params) ValidateBasic() error { func validateDistributionPerBlock(i interface{}) error { coinsPerBlock, ok := i.(sdk.Coin) if !ok { - return sdkerrors.Wrapf(ErrInvalidDistributionPerBlock, "invalid parameter type: %T", i) + return errorsmod.Wrapf(ErrInvalidDistributionPerBlock, "invalid parameter type: %T", i) } if coinsPerBlock.IsNil() { - return sdkerrors.Wrapf(ErrInvalidDistributionPerBlock, "distribution per block cannot be nil") + return errorsmod.Wrapf(ErrInvalidDistributionPerBlock, "distribution per block cannot be nil") } if coinsPerBlock.Amount.IsNegative() { - return sdkerrors.Wrapf(ErrInvalidDistributionPerBlock, "distribution per block cannot be negative") + return errorsmod.Wrapf(ErrInvalidDistributionPerBlock, "distribution per block cannot be negative") } if coinsPerBlock.Denom != params.BaseCoinUnit { - return sdkerrors.Wrapf(ErrInvalidDistributionPerBlock, "distribution per block denom must be %s, got %s", params.BaseCoinUnit, coinsPerBlock.Denom) + return errorsmod.Wrapf(ErrInvalidDistributionPerBlock, "distribution per block denom must be %s, got %s", params.BaseCoinUnit, coinsPerBlock.Denom) } return nil diff --git a/x/pubsub/client/cli/tx.go b/x/pubsub/client/cli/tx.go index be6d733c..39d91f4d 100644 --- a/x/pubsub/client/cli/tx.go +++ b/x/pubsub/client/cli/tx.go @@ -2,7 +2,7 @@ package cli import ( "fmt" - "io/ioutil" + "os" "strings" "github.com/spf13/cobra" @@ -12,7 +12,7 @@ import ( "github.com/cosmos/cosmos-sdk/client/tx" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/version" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" "github.com/peggyjv/sommelier/v7/x/pubsub/types" ) @@ -74,7 +74,7 @@ Where proposal.json contains: } proposal := types.AddPublisherProposalWithDeposit{} - contents, err := ioutil.ReadFile(args[0]) + contents, err := os.ReadFile(args[0]) if err != nil { return err } @@ -102,7 +102,7 @@ Where proposal.json contains: } from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -145,7 +145,7 @@ Where proposal.json contains: } proposal := types.RemovePublisherProposalWithDeposit{} - contents, err := ioutil.ReadFile(args[0]) + contents, err := os.ReadFile(args[0]) if err != nil { return err } @@ -170,7 +170,7 @@ Where proposal.json contains: } from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -214,7 +214,7 @@ Where proposal.json contains: } proposal := types.AddDefaultSubscriptionProposalWithDeposit{} - contents, err := ioutil.ReadFile(args[0]) + contents, err := os.ReadFile(args[0]) if err != nil { return err } @@ -240,7 +240,7 @@ Where proposal.json contains: } from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -283,7 +283,7 @@ Where proposal.json contains: } proposal := types.RemoveDefaultSubscriptionProposalWithDeposit{} - contents, err := ioutil.ReadFile(args[0]) + contents, err := os.ReadFile(args[0]) if err != nil { return err } @@ -308,7 +308,7 @@ Where proposal.json contains: } from := clientCtx.GetFromAddress() - msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) + msg, err := govtypesv1beta1.NewMsgSubmitProposal(content, deposit, from) if err != nil { return err } @@ -510,7 +510,7 @@ $ %s tx pubsub add-subscriber somm1y6d5kasehecexf09ka6y0ggl0pxzt6dg6n8lw0