diff --git a/app/ante_handler.go b/app/ante_handler.go index 5bca6498..5274ad01 100644 --- a/app/ante_handler.go +++ b/app/ante_handler.go @@ -2,8 +2,10 @@ package app import ( errorsmod "cosmossdk.io/errors" - globalfeeante "github.com/OmniFlix/omniflixhub/v2/x/globalfee/ante" - globalfeekeeper "github.com/OmniFlix/omniflixhub/v2/x/globalfee/keeper" + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + globalfeeante "github.com/OmniFlix/omniflixhub/v3/x/globalfee/ante" + globalfeekeeper "github.com/OmniFlix/omniflixhub/v3/x/globalfee/keeper" "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -26,6 +28,7 @@ type HandlerOptions struct { GovKeeper govkeeper.Keeper IBCKeeper *ibckeeper.Keeper TxCounterStoreKey storetypes.StoreKey + WasmConfig wasmtypes.WasmConfig Codec codec.BinaryCodec BypassMinFeeMsgTypes []string @@ -52,6 +55,8 @@ func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error) { anteDecorators := []sdk.AnteDecorator{ ante.NewSetUpContextDecorator(), // Outermost AnteDecorator, SetUpContext must be called first + wasmkeeper.NewLimitSimulationGasDecorator(options.WasmConfig.SimulationGasLimit), + wasmkeeper.NewCountTXDecorator(options.TxCounterStoreKey), ante.NewExtensionOptionsDecorator(options.ExtensionOptionChecker), ante.NewValidateBasicDecorator(), ante.NewTxTimeoutHeightDecorator(), diff --git a/app/app.go b/app/app.go index 6d91081f..9e06fdfb 100644 --- a/app/app.go +++ b/app/app.go @@ -7,12 +7,15 @@ import ( "os" "path/filepath" + "github.com/CosmWasm/wasmd/x/wasm" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + autocliv1 "cosmossdk.io/api/cosmos/autocli/v1" reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1" - - "github.com/OmniFlix/omniflixhub/v2/app/openapiconsole" - appparams "github.com/OmniFlix/omniflixhub/v2/app/params" - "github.com/OmniFlix/omniflixhub/v2/docs" + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" + "github.com/OmniFlix/omniflixhub/v3/app/openapiconsole" + appparams "github.com/OmniFlix/omniflixhub/v3/app/params" + "github.com/OmniFlix/omniflixhub/v3/docs" dbm "github.com/cometbft/cometbft-db" abci "github.com/cometbft/cometbft/abci/types" tmjson "github.com/cometbft/cometbft/libs/json" @@ -47,16 +50,29 @@ import ( ibcclienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" ibcchanneltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - "github.com/OmniFlix/omniflixhub/v2/app/keepers" - "github.com/OmniFlix/omniflixhub/v2/app/upgrades" - v012 "github.com/OmniFlix/omniflixhub/v2/app/upgrades/v012" - v2 "github.com/OmniFlix/omniflixhub/v2/app/upgrades/v2" - v2_1 "github.com/OmniFlix/omniflixhub/v2/app/upgrades/v2.1" + "github.com/OmniFlix/omniflixhub/v3/app/keepers" + "github.com/OmniFlix/omniflixhub/v3/app/upgrades" + v012 "github.com/OmniFlix/omniflixhub/v3/app/upgrades/v012" + v2 "github.com/OmniFlix/omniflixhub/v3/app/upgrades/v2" + v2_1 "github.com/OmniFlix/omniflixhub/v3/app/upgrades/v2.1" + v3 "github.com/OmniFlix/omniflixhub/v3/app/upgrades/v3" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" ) const Name = "omniflixhub" +var ( + // ProposalsEnabled If EnabledSpecificProposals is "", and this is "true", then enable all x/wasm proposals. + // If EnabledSpecificProposals is "", and this is not "true", then disable all x/wasm proposals. + ProposalsEnabled = "true" + // EnableSpecificProposals If set to non-empty string it must be comma-separated list of values that are all a subset + // of "EnableAllProposals" (takes precedence over ProposalsEnabled) + // https://github.com/CosmWasm/wasmd/blob/02a54d33ff2c064f3539ae12d75d027d9c665f05/x/wasm/internal/types/proposal.go#L28-L34 + EnableSpecificProposals = "" + + EmptyWasmOpts [][]wasmkeeper.Option +) + func getGovProposalHandlers() []govclient.ProposalHandler { var govProposalHandlers []govclient.ProposalHandler govProposalHandlers = append(govProposalHandlers, @@ -73,7 +89,7 @@ func getGovProposalHandlers() []govclient.ProposalHandler { var ( // DefaultNodeHome default home directories for the application daemon DefaultNodeHome string - Upgrades = []upgrades.Upgrade{v012.Upgrade, v2.Upgrade, v2_1.Upgrade} + Upgrades = []upgrades.Upgrade{v012.Upgrade, v2.Upgrade, v2_1.Upgrade, v3.Upgrade} Forks []upgrades.Fork ) @@ -120,6 +136,7 @@ func NewOmniFlixApp( invCheckPeriod uint, encodingConfig appparams.EncodingConfig, appOpts servertypes.AppOptions, + wasmOpts []wasmkeeper.Option, baseAppOptions ...func(*baseapp.BaseApp), ) *OmniFlixApp { appCodec := encodingConfig.Marshaler @@ -154,6 +171,7 @@ func NewOmniFlixApp( invCheckPeriod, logger, appOpts, + wasmOpts, ) /**** Module Options ****/ @@ -205,6 +223,11 @@ func NewOmniFlixApp( } reflectionv1.RegisterReflectionServiceServer(app.GRPCQueryRouter(), reflectionSvc) + wasmConfig, err := wasm.ReadWasmConfig(appOpts) + if err != nil { + panic("error while reading wasm config: " + err.Error()) + } + anteHandler, err := NewAnteHandler( HandlerOptions{ HandlerOptions: ante.HandlerOptions{ @@ -214,9 +237,11 @@ func NewOmniFlixApp( SignModeHandler: encodingConfig.TxConfig.SignModeHandler(), SigGasConsumer: ante.DefaultSigVerificationGasConsumer, }, - GovKeeper: app.GovKeeper, - IBCKeeper: app.IBCKeeper, - Codec: appCodec, + GovKeeper: app.GovKeeper, + IBCKeeper: app.IBCKeeper, + Codec: appCodec, + WasmConfig: wasmConfig, + TxCounterStoreKey: app.AppKeepers.GetKey(wasmtypes.StoreKey), BypassMinFeeMsgTypes: GetDefaultBypassFeeMessages(), GlobalFeeKeeper: app.GlobalFeeKeeper, diff --git a/app/apptesting/test_suite.go b/app/apptesting/test_suite.go index a34ff8c8..20088b58 100644 --- a/app/apptesting/test_suite.go +++ b/app/apptesting/test_suite.go @@ -6,7 +6,7 @@ import ( "cosmossdk.io/math" - "github.com/OmniFlix/omniflixhub/v2/app" + "github.com/OmniFlix/omniflixhub/v3/app" dbm "github.com/cometbft/cometbft-db" abci "github.com/cometbft/cometbft/abci/types" diff --git a/app/encoding.go b/app/encoding.go index cc097424..fb20952c 100644 --- a/app/encoding.go +++ b/app/encoding.go @@ -1,7 +1,7 @@ package app import ( - "github.com/OmniFlix/omniflixhub/v2/app/params" + "github.com/OmniFlix/omniflixhub/v3/app/params" "github.com/cosmos/cosmos-sdk/std" ) diff --git a/app/keepers/keepers.go b/app/keepers/keepers.go index b027b7f6..dc4398be 100644 --- a/app/keepers/keepers.go +++ b/app/keepers/keepers.go @@ -1,7 +1,13 @@ package keepers import ( - "github.com/OmniFlix/omniflixhub/v2/x/ics721nft" + "fmt" + "path/filepath" + + "github.com/CosmWasm/wasmd/x/wasm" + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + "github.com/OmniFlix/omniflixhub/v3/x/ics721nft" nfttransfer "github.com/bianjieai/nft-transfer" "github.com/cometbft/cometbft/libs/log" tmos "github.com/cometbft/cometbft/libs/os" @@ -10,7 +16,6 @@ import ( servertypes "github.com/cosmos/cosmos-sdk/server/types" "github.com/cosmos/cosmos-sdk/store/streaming" storetypes "github.com/cosmos/cosmos-sdk/store/types" - icq "github.com/cosmos/ibc-apps/modules/async-icq/v7" icqkeeper "github.com/cosmos/ibc-apps/modules/async-icq/v7/keeper" icqtypes "github.com/cosmos/ibc-apps/modules/async-icq/v7/types" @@ -47,9 +52,9 @@ import ( govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - "github.com/OmniFlix/omniflixhub/v2/x/globalfee" - globalfeekeeper "github.com/OmniFlix/omniflixhub/v2/x/globalfee/keeper" - globalfeetypes "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee" + globalfeekeeper "github.com/OmniFlix/omniflixhub/v3/x/globalfee/keeper" + globalfeetypes "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types" "github.com/cosmos/cosmos-sdk/x/group" groupkeeper "github.com/cosmos/cosmos-sdk/x/group/keeper" @@ -67,8 +72,8 @@ import ( stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - tokenfactorykeeper "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/keeper" - tokenfactorytypes "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + tokenfactorykeeper "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/keeper" + tokenfactorytypes "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" "github.com/cosmos/cosmos-sdk/x/upgrade" upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper" @@ -90,23 +95,25 @@ import ( packetforwardkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/keeper" packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types" - allockeeper "github.com/OmniFlix/omniflixhub/v2/x/alloc/keeper" - alloctypes "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + allockeeper "github.com/OmniFlix/omniflixhub/v3/x/alloc/keeper" + alloctypes "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" - onftkeeper "github.com/OmniFlix/omniflixhub/v2/x/onft/keeper" - onfttypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + onftkeeper "github.com/OmniFlix/omniflixhub/v3/x/onft/keeper" + onfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" - marketplacekeeper "github.com/OmniFlix/omniflixhub/v2/x/marketplace/keeper" - marketplacetypes "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + marketplacekeeper "github.com/OmniFlix/omniflixhub/v3/x/marketplace/keeper" + marketplacetypes "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" - itckeeper "github.com/OmniFlix/omniflixhub/v2/x/itc/keeper" - itctypes "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + itckeeper "github.com/OmniFlix/omniflixhub/v3/x/itc/keeper" + itctypes "github.com/OmniFlix/omniflixhub/v3/x/itc/types" streampaykeeper "github.com/OmniFlix/streampay/v2/x/streampay/keeper" streampaytypes "github.com/OmniFlix/streampay/v2/x/streampay/types" ibcnfttransferkeeper "github.com/bianjieai/nft-transfer/keeper" ibcnfttransfertypes "github.com/bianjieai/nft-transfer/types" + + tfbindings "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/bindings" ) var tokenFactoryCapabilities = []string{ @@ -146,6 +153,7 @@ type AppKeepers struct { GroupKeeper groupkeeper.Keeper TokenFactoryKeeper tokenfactorykeeper.Keeper IBCNFTTransferKeeper ibcnfttransferkeeper.Keeper + WasmKeeper wasmkeeper.Keeper // make scoped keepers public for test purposes ScopedIBCKeeper capabilitykeeper.ScopedKeeper @@ -153,6 +161,7 @@ type AppKeepers struct { ScopedICAHostKeeper capabilitykeeper.ScopedKeeper ScopedICQKeeper capabilitykeeper.ScopedKeeper ScopedNFTTransferKeeper capabilitykeeper.ScopedKeeper + ScopedWasmKeeper capabilitykeeper.ScopedKeeper AllocKeeper allockeeper.Keeper ONFTKeeper onftkeeper.Keeper @@ -173,6 +182,7 @@ func NewAppKeeper( invCheckPeriod uint, logger log.Logger, appOpts servertypes.AppOptions, + wasmOpts []wasmkeeper.Option, ) AppKeepers { appKeepers := AppKeepers{} @@ -213,7 +223,7 @@ func NewAppKeeper( appKeepers.ScopedICAHostKeeper = appKeepers.CapabilityKeeper.ScopeToModule(icahosttypes.SubModuleName) appKeepers.ScopedICQKeeper = appKeepers.CapabilityKeeper.ScopeToModule(icqtypes.ModuleName) appKeepers.ScopedNFTTransferKeeper = appKeepers.CapabilityKeeper.ScopeToModule(ibcnfttransfertypes.ModuleName) - + appKeepers.ScopedWasmKeeper = appKeepers.CapabilityKeeper.ScopeToModule(wasmtypes.ModuleName) appKeepers.CapabilityKeeper.Seal() appKeepers.CrisisKeeper = crisiskeeper.NewKeeper( @@ -519,6 +529,50 @@ func NewAppKeeper( appKeepers.IBCKeeper.SetRouter(ibcRouter) + // wasm configuration + + wasmDir := filepath.Join(homePath, "wasm") + wasmConfig, err := wasm.ReadWasmConfig(appOpts) + if err != nil { + panic(fmt.Sprintf("error while reading wasm config: %s", err)) + } + + // custom tokenfactory messages + tfOpts := tfbindings.RegisterCustomPlugins(appKeepers.BankKeeper, &appKeepers.TokenFactoryKeeper) + wasmOpts = append(wasmOpts, tfOpts...) + + querierOpts := wasmkeeper.WithQueryPlugins( + &wasmkeeper.QueryPlugins{ + Stargate: wasmkeeper.AcceptListStargateQuerier( + AcceptedStargateQueries(), + bApp.GRPCQueryRouter(), + appCodec, + ), + }) + + wasmOpts = append(wasmOpts, querierOpts) + + appKeepers.WasmKeeper = wasmkeeper.NewKeeper( + appCodec, + keys[wasmtypes.StoreKey], + appKeepers.AccountKeeper, + appKeepers.BankKeeper, + appKeepers.StakingKeeper, + distrkeeper.NewQuerier(appKeepers.DistrKeeper), + appKeepers.IBCKeeper.ChannelKeeper, + appKeepers.IBCKeeper.ChannelKeeper, + &appKeepers.IBCKeeper.PortKeeper, + appKeepers.ScopedWasmKeeper, + appKeepers.TransferKeeper, + bApp.MsgServiceRouter(), + bApp.GRPCQueryRouter(), + wasmDir, + wasmConfig, + GetWasmCapabilities(), + govModAddress, + wasmOpts..., + ) + return appKeepers } @@ -547,6 +601,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino paramsKeeper.Subspace(packetforwardtypes.ModuleName) paramsKeeper.Subspace(globalfee.ModuleName) paramsKeeper.Subspace(tokenfactorytypes.ModuleName) + paramsKeeper.Subspace(wasmtypes.ModuleName) paramsKeeper.Subspace(alloctypes.ModuleName) paramsKeeper.Subspace(onfttypes.ModuleName) paramsKeeper.Subspace(marketplacetypes.ModuleName) diff --git a/app/keepers/keys.go b/app/keepers/keys.go index 7ad21306..a59b2b4e 100644 --- a/app/keepers/keys.go +++ b/app/keepers/keys.go @@ -1,12 +1,13 @@ package keepers import ( - alloctypes "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" - globalfeetypes "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types" - itctypes "github.com/OmniFlix/omniflixhub/v2/x/itc/types" - marketplacetypes "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" - onfttypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" - tokenfactorytypes "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + alloctypes "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" + globalfeetypes "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types" + itctypes "github.com/OmniFlix/omniflixhub/v3/x/itc/types" + marketplacetypes "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" + onfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" + tokenfactorytypes "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" streampaytypes "github.com/OmniFlix/streampay/v2/x/streampay/types" ibcnfttransfertypes "github.com/bianjieai/nft-transfer/types" storetypes "github.com/cosmos/cosmos-sdk/store/types" @@ -56,6 +57,7 @@ func (appKeepers *AppKeepers) GenerateKeys() { capabilitytypes.StoreKey, crisistypes.StoreKey, feegrant.StoreKey, + wasmtypes.StoreKey, globalfeetypes.StoreKey, group.StoreKey, tokenfactorytypes.StoreKey, diff --git a/app/keepers/wasm.go b/app/keepers/wasm.go new file mode 100644 index 00000000..2943f2c1 --- /dev/null +++ b/app/keepers/wasm.go @@ -0,0 +1,97 @@ +package keepers + +import ( + "strings" + + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" + itctypes "github.com/OmniFlix/omniflixhub/v3/x/itc/types" + marketplacetypes "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" + onfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" + tokenfactorytypes "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" + streampaytypes "github.com/OmniFlix/streampay/v2/x/streampay/types" + distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + ibcclienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + ibcconnectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" +) + +// AllCapabilities returns all capabilities available with the current wasmvm +// See https://github.com/CosmWasm/cosmwasm/blob/main/docs/CAPABILITIES-BUILT-IN.md +// This functionality is going to be moved upstream: https://github.com/CosmWasm/wasmvm/issues/425 +var wasmCapabilities = []string{ + "iterator", + "staking", + "stargate", + "cosmwasm_1_1", + "cosmwasm_1_2", + "cosmwasm_1_3", + "cosmwasm_1_4", + "cosmwasm_1_5", + "token_factory", +} + +func AcceptedStargateQueries() wasmkeeper.AcceptedStargateQueries { + return wasmkeeper.AcceptedStargateQueries{ + // ibc + "/ibc.core.client.v1.Query/ClientState": &ibcclienttypes.QueryClientStateResponse{}, + "/ibc.core.client.v1.Query/ConsensusState": &ibcclienttypes.QueryConsensusStateResponse{}, + "/ibc.core.connection.v1.Query/Connection": &ibcconnectiontypes.QueryConnectionResponse{}, + + // governance + "/cosmos.gov.v1beta1.Query/Vote": &govv1.QueryVoteResponse{}, + + // distribution + "/cosmos.distribution.v1beta1.Query/DelegationRewards": &distrtypes.QueryDelegationRewardsResponse{}, + + // staking + "/cosmos.staking.v1beta1.Query/Delegation": &stakingtypes.QueryDelegationResponse{}, + "/cosmos.staking.v1beta1.Query/Redelegations": &stakingtypes.QueryRedelegationsResponse{}, + "/cosmos.staking.v1beta1.Query/UnbondingDelegation": &stakingtypes.QueryUnbondingDelegationResponse{}, + "/cosmos.staking.v1beta1.Query/Validator": &stakingtypes.QueryValidatorResponse{}, + "/cosmos.staking.v1beta1.Query/Params": &stakingtypes.QueryParamsResponse{}, + "/cosmos.staking.v1beta1.Query/Pool": &stakingtypes.QueryPoolResponse{}, + + // onft + "/OmniFlix.onft.v1beta1.Query/Denoms": &onfttypes.QueryDenomsResponse{}, + "/OmniFlix.onft.v1beta1.Query/Denom": &onfttypes.QueryDenomResponse{}, + "/OmniFlix.onft.v1beta1.Query/IBCDenom": &onfttypes.QueryDenomResponse{}, + "/OmniFlix.onft.v1beta1.Query/Collection": &onfttypes.QueryCollectionResponse{}, + "/OmniFlix.onft.v1beta1.Query/IBCCollection": &onfttypes.QueryCollectionResponse{}, + "/OmniFlix.onft.v1beta1.Query/OwnerONFTs": &onfttypes.QueryOwnerONFTsResponse{}, + "/OmniFlix.onft.v1beta1.Query/ONFT": &onfttypes.QueryONFTResponse{}, + "/OmniFlix.onft.v1beta1.Query/Supply": &onfttypes.QuerySupplyResponse{}, + "/OmniFlix.onft.v1beta1.Query/Params": &onfttypes.QueryParamsResponse{}, + + // marketplace + "/OmniFlix.marketplace.v1beta1.Query/Listings": &marketplacetypes.QueryListingsResponse{}, + "/OmniFlix.marketplace.v1beta1.Query/Listing": &marketplacetypes.QueryListingResponse{}, + "/OmniFlix.marketplace.v1beta1.Query/ListingsByOwner": &marketplacetypes.QueryListingsByOwnerResponse{}, + "/OmniFlix.marketplace.v1beta1.Query/Auctions": &marketplacetypes.QueryAuctionsResponse{}, + "/OmniFlix.marketplace.v1beta1.Query/Auction": &marketplacetypes.QueryAuctionResponse{}, + "/OmniFlix.marketplace.v1beta1.Query/AuctionsByOwner": &marketplacetypes.QueryAuctionsResponse{}, + "/OmniFlix.marketplace.v1beta1.Query/Bids": &marketplacetypes.QueryBidsResponse{}, + "/OmniFlix.marketplace.v1beta1.Query/Bid": &marketplacetypes.QueryBidResponse{}, + "/OmniFlix.marketplace.v1beta1.Query/Params": &marketplacetypes.QueryParamsResponse{}, + + // itc + "/OmniFlix.itc.v1.Query/Campaigns": &itctypes.QueryCampaignsResponse{}, + "/OmniFlix.itc.v1.Query/Campaign": &itctypes.QueryCampaignResponse{}, + "/OmniFlix.itc.v1.Query/Claims": &itctypes.QueryClaimsResponse{}, + "/OmniFlix.itc.v1.Query/Params": &itctypes.QueryParamsResponse{}, + + // streampay + "/OmniFlix.streampay.v1.Query/StreamPayments": &streampaytypes.QueryStreamPaymentsResponse{}, + "/OmniFlix.streampay.v1.Query/StreamPayment": &streampaytypes.QueryStreamPaymentResponse{}, + "/OmniFlix.streampay.v1.Query/Params": &streampaytypes.QueryParamsResponse{}, + + // tokenfactory queries + "/osmosis.tokenfactory.v1beta1.Query/Params": &tokenfactorytypes.QueryParamsResponse{}, + "/osmosis.tokenfactory.v1beta1.Query/DenomAuthorityMetadata": &tokenfactorytypes.QueryDenomAuthorityMetadataResponse{}, + "/osmosis.tokenfactory.v1beta1.Query/DenomsFromCreator": &tokenfactorytypes.QueryDenomsFromCreatorResponse{}, + } +} + +func GetWasmCapabilities() string { + return strings.Join(wasmCapabilities, ",") +} diff --git a/app/modules.go b/app/modules.go index 1f6946c8..39a6801d 100644 --- a/app/modules.go +++ b/app/modules.go @@ -1,8 +1,10 @@ package app import ( - appparams "github.com/OmniFlix/omniflixhub/v2/app/params" - "github.com/OmniFlix/omniflixhub/v2/x/globalfee" + "github.com/CosmWasm/wasmd/x/wasm" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + appparams "github.com/OmniFlix/omniflixhub/v3/app/params" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee" nfttransfer "github.com/bianjieai/nft-transfer" ibcnfttransfertypes "github.com/bianjieai/nft-transfer/types" "github.com/cosmos/cosmos-sdk/types/module" @@ -58,8 +60,8 @@ import ( "github.com/cosmos/cosmos-sdk/x/staking" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory" - tokenfactorytypes "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory" + tokenfactorytypes "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" "github.com/cosmos/cosmos-sdk/x/upgrade" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" @@ -79,17 +81,17 @@ import ( "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward" packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types" - "github.com/OmniFlix/omniflixhub/v2/x/alloc" - alloctypes "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc" + alloctypes "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" - "github.com/OmniFlix/omniflixhub/v2/x/onft" - onfttypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft" + onfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace" - marketplacetypes "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace" + marketplacetypes "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" - "github.com/OmniFlix/omniflixhub/v2/x/itc" - itctypes "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc" + itctypes "github.com/OmniFlix/omniflixhub/v3/x/itc/types" "github.com/OmniFlix/streampay/v2/x/streampay" streampaytypes "github.com/OmniFlix/streampay/v2/x/streampay/types" @@ -108,6 +110,7 @@ var ( mint.AppModuleBasic{}, distr.AppModuleBasic{}, gov.NewAppModuleBasic(getGovProposalHandlers()), + wasm.AppModuleBasic{}, groupmodule.AppModuleBasic{}, params.AppModuleBasic{}, consensus.AppModuleBasic{}, @@ -149,6 +152,7 @@ var ( icatypes.ModuleName: nil, tokenfactorytypes.ModuleName: {authtypes.Minter, authtypes.Burner}, globalfee.ModuleName: nil, + wasmtypes.ModuleName: {authtypes.Burner}, alloctypes.ModuleName: {authtypes.Minter, authtypes.Burner, authtypes.Staking}, nft.ModuleName: nil, onfttypes.ModuleName: nil, @@ -226,6 +230,15 @@ func appModules( params.NewAppModule(app.ParamsKeeper), consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper), transfer.NewAppModule(app.TransferKeeper), + wasm.NewAppModule( + appCodec, + &app.WasmKeeper, + app.StakingKeeper, + app.AccountKeeper, + app.BankKeeper, + app.MsgServiceRouter(), + app.GetSubspace(wasmtypes.ModuleName), + ), ica.NewAppModule(nil, &app.ICAHostKeeper), icq.NewAppModule(app.ICQKeeper, app.GetSubspace(icqtypes.ModuleName)), nfttransfer.NewAppModule(app.IBCNFTTransferKeeper), @@ -304,6 +317,7 @@ func orderBeginBlockers() []string { govtypes.ModuleName, paramstypes.ModuleName, consensusparamtypes.ModuleName, + wasmtypes.ModuleName, ibctransfertypes.ModuleName, icatypes.ModuleName, icqtypes.ModuleName, @@ -338,6 +352,7 @@ func orderEndBlockers() []string { vestingtypes.ModuleName, paramstypes.ModuleName, consensusparamtypes.ModuleName, + wasmtypes.ModuleName, ibctransfertypes.ModuleName, icatypes.ModuleName, icqtypes.ModuleName, @@ -388,6 +403,7 @@ func orderInitGenesis() []string { upgradetypes.ModuleName, vestingtypes.ModuleName, feegrant.ModuleName, + wasmtypes.ModuleName, globalfee.ModuleName, group.ModuleName, tokenfactorytypes.ModuleName, diff --git a/app/prefix.go b/app/prefix.go index ed545e5d..258fd8cb 100644 --- a/app/prefix.go +++ b/app/prefix.go @@ -1,6 +1,7 @@ package app import ( + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -21,5 +22,6 @@ func SetConfig() { config.SetBech32PrefixForAccount(AccountAddressPrefix, AccountPubKeyPrefix) config.SetBech32PrefixForValidator(ValidatorAddressPrefix, ValidatorPubKeyPrefix) config.SetBech32PrefixForConsensusNode(ConsNodeAddressPrefix, ConsNodePubKeyPrefix) + config.SetAddressVerifier(wasmtypes.VerifyAddressLen()) config.Seal() } diff --git a/app/test_helpers.go b/app/test_helpers.go index 3d68c1a5..a62d8999 100644 --- a/app/test_helpers.go +++ b/app/test_helpers.go @@ -6,11 +6,13 @@ import ( "testing" "time" + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" + "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/snapshots" - apphelpers "github.com/OmniFlix/omniflixhub/v2/app/helpers" - appparams "github.com/OmniFlix/omniflixhub/v2/app/params" + apphelpers "github.com/OmniFlix/omniflixhub/v3/app/helpers" + appparams "github.com/OmniFlix/omniflixhub/v3/app/params" dbm "github.com/cometbft/cometbft-db" abci "github.com/cometbft/cometbft/abci/types" "github.com/cometbft/cometbft/crypto" @@ -133,7 +135,7 @@ func SetupWithGenesisValSet( return omniflixTestApp } -func setup(t *testing.T, withGenesis bool) (*OmniFlixApp, GenesisState) { +func setup(t *testing.T, withGenesis bool, opts ...wasmkeeper.Option) (*OmniFlixApp, GenesisState) { t.Helper() db := dbm.NewMemDB() @@ -147,7 +149,7 @@ func setup(t *testing.T, withGenesis bool) (*OmniFlixApp, GenesisState) { snapshotStore, err := snapshots.NewStore(snapshotDB, snapshotDir) require.NoError(t, err) - appOptions := make(simtestutil.AppOptionsMap, 0) + appOptions := make(simtestutil.AppOptionsMap) appOptions[flags.FlagHome] = nodeHome // ensure unique folder app := NewOmniFlixApp( @@ -160,6 +162,7 @@ func setup(t *testing.T, withGenesis bool) (*OmniFlixApp, GenesisState) { 0, encCdc, appOptions, + opts, baseApp.SetChainID(SimAppChainID), baseApp.SetSnapshot(snapshotStore, snapshottypes.SnapshotOptions{KeepRecent: 2}), ) diff --git a/app/upgrades/types.go b/app/upgrades/types.go index a3c6e4d4..4017f27d 100644 --- a/app/upgrades/types.go +++ b/app/upgrades/types.go @@ -7,7 +7,7 @@ import ( "github.com/cosmos/cosmos-sdk/types/module" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - "github.com/OmniFlix/omniflixhub/v2/app/keepers" + "github.com/OmniFlix/omniflixhub/v3/app/keepers" ) // BaseAppParamManager defines an interface that BaseApp is expected to full-fill, diff --git a/app/upgrades/v012/constants.go b/app/upgrades/v012/constants.go index f60cc848..aed4fdf9 100644 --- a/app/upgrades/v012/constants.go +++ b/app/upgrades/v012/constants.go @@ -1,7 +1,7 @@ package v012 import ( - "github.com/OmniFlix/omniflixhub/v2/app/upgrades" + "github.com/OmniFlix/omniflixhub/v3/app/upgrades" store "github.com/cosmos/cosmos-sdk/store/types" packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types" icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types" diff --git a/app/upgrades/v012/upgrades.go b/app/upgrades/v012/upgrades.go index 06735b27..0504989d 100644 --- a/app/upgrades/v012/upgrades.go +++ b/app/upgrades/v012/upgrades.go @@ -1,8 +1,8 @@ package v012 import ( - "github.com/OmniFlix/omniflixhub/v2/app/keepers" - "github.com/OmniFlix/omniflixhub/v2/app/upgrades" + "github.com/OmniFlix/omniflixhub/v3/app/keepers" + "github.com/OmniFlix/omniflixhub/v3/app/upgrades" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" diff --git a/app/upgrades/v2.1/constants.go b/app/upgrades/v2.1/constants.go index 5241edc8..d7d3e05b 100644 --- a/app/upgrades/v2.1/constants.go +++ b/app/upgrades/v2.1/constants.go @@ -1,7 +1,7 @@ package v2_1 import ( - "github.com/OmniFlix/omniflixhub/v2/app/upgrades" + "github.com/OmniFlix/omniflixhub/v3/app/upgrades" store "github.com/cosmos/cosmos-sdk/store/types" ) diff --git a/app/upgrades/v2.1/upgrades.go b/app/upgrades/v2.1/upgrades.go index 0edf738f..d28955a7 100644 --- a/app/upgrades/v2.1/upgrades.go +++ b/app/upgrades/v2.1/upgrades.go @@ -1,8 +1,8 @@ package v2_1 import ( - "github.com/OmniFlix/omniflixhub/v2/app/keepers" - "github.com/OmniFlix/omniflixhub/v2/app/upgrades" + "github.com/OmniFlix/omniflixhub/v3/app/keepers" + "github.com/OmniFlix/omniflixhub/v3/app/upgrades" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" diff --git a/app/upgrades/v2/constants.go b/app/upgrades/v2/constants.go index e74c9581..47591ac3 100644 --- a/app/upgrades/v2/constants.go +++ b/app/upgrades/v2/constants.go @@ -1,9 +1,9 @@ package v2 import ( - "github.com/OmniFlix/omniflixhub/v2/app/upgrades" - globalfeetypes "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types" - tokenfactorytypes "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/app/upgrades" + globalfeetypes "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types" + tokenfactorytypes "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ibcnfttransfertypes "github.com/bianjieai/nft-transfer/types" store "github.com/cosmos/cosmos-sdk/store/types" consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types" diff --git a/app/upgrades/v2/upgrades.go b/app/upgrades/v2/upgrades.go index 51da3ecc..7d21d799 100644 --- a/app/upgrades/v2/upgrades.go +++ b/app/upgrades/v2/upgrades.go @@ -1,13 +1,13 @@ package v2 import ( - "github.com/OmniFlix/omniflixhub/v2/app/keepers" - "github.com/OmniFlix/omniflixhub/v2/app/upgrades" - alloctypes "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" - itctypes "github.com/OmniFlix/omniflixhub/v2/x/itc/types" - marketplacetypes "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" - onfttypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" - tokenfactorytypes "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/app/keepers" + "github.com/OmniFlix/omniflixhub/v3/app/upgrades" + alloctypes "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" + itctypes "github.com/OmniFlix/omniflixhub/v3/x/itc/types" + marketplacetypes "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" + onfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" + tokenfactorytypes "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" streampaytypes "github.com/OmniFlix/streampay/v2/x/streampay/types" "github.com/cosmos/cosmos-sdk/baseapp" sdk "github.com/cosmos/cosmos-sdk/types" diff --git a/app/upgrades/v3/constants.go b/app/upgrades/v3/constants.go new file mode 100644 index 00000000..6886a33f --- /dev/null +++ b/app/upgrades/v3/constants.go @@ -0,0 +1,17 @@ +package v3 + +import ( + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + "github.com/OmniFlix/omniflixhub/v3/app/upgrades" + store "github.com/cosmos/cosmos-sdk/store/types" +) + +const UpgradeName = "v3-dev" + +var Upgrade = upgrades.Upgrade{ + UpgradeName: UpgradeName, + CreateUpgradeHandler: CreateV3UpgradeHandler, + StoreUpgrades: store.StoreUpgrades{ + Added: []string{wasmtypes.ModuleName}, + }, +} diff --git a/app/upgrades/v3/upgrades.go b/app/upgrades/v3/upgrades.go new file mode 100644 index 00000000..6b305f65 --- /dev/null +++ b/app/upgrades/v3/upgrades.go @@ -0,0 +1,44 @@ +package v3 + +import ( + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + "github.com/OmniFlix/omniflixhub/v3/app/keepers" + "github.com/OmniFlix/omniflixhub/v3/app/upgrades" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" +) + +func CreateV3UpgradeHandler( + mm *module.Manager, + cfg module.Configurator, + _ upgrades.BaseAppParamManager, + keepers *keepers.AppKeepers, +) upgradetypes.UpgradeHandler { + return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { + ctx.Logger().Info("running migrations ...") + // Run migrations before applying any other state changes. + // NOTE: DO NOT PUT ANY STATE CHANGES BEFORE RunMigrations(). + versionMap, err := mm.RunMigrations(ctx, cfg, fromVM) + if err != nil { + return nil, err + } + + params := wasmtypes.DefaultParams() + params.CodeUploadAccess = wasmtypes.AccessConfig{ + Permission: wasmtypes.AccessTypeAnyOfAddresses, + Addresses: []string{ + // test addrs + "omniflix18fw35sd99ksgcylrxqz555hk2ffnp9dx3gzv9a", + "omniflix1fua9pv84yfqp7gjpv8vmsrygqa9prtsm3y95vm", + }, + } + params.InstantiateDefaultPermission = wasmtypes.AccessTypeEverybody + if err := keepers.WasmKeeper.SetParams(ctx, params); err != nil { + return nil, err + } + + ctx.Logger().Info("Upgrade complete") + return versionMap, nil + } +} diff --git a/cmd/omniflixhubd/cmd/root.go b/cmd/omniflixhubd/cmd/root.go index 603dba9c..fc61f195 100644 --- a/cmd/omniflixhubd/cmd/root.go +++ b/cmd/omniflixhubd/cmd/root.go @@ -9,10 +9,13 @@ import ( "github.com/cosmos/cosmos-sdk/client/config" "github.com/cosmos/cosmos-sdk/client/debug" "github.com/cosmos/cosmos-sdk/client/pruning" + "github.com/prometheus/client_golang/prometheus" - "github.com/OmniFlix/omniflixhub/v2/app/params" + "github.com/OmniFlix/omniflixhub/v3/app" + "github.com/OmniFlix/omniflixhub/v3/app/params" - "github.com/OmniFlix/omniflixhub/v2/app" + "github.com/CosmWasm/wasmd/x/wasm" + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" dbm "github.com/cometbft/cometbft-db" tmcli "github.com/cometbft/cometbft/libs/cli" "github.com/cometbft/cometbft/libs/log" @@ -118,6 +121,7 @@ func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig) { func addModuleInitFlags(startCmd *cobra.Command) { crisis.AddModuleInitFlags(startCmd) + wasm.AddModuleInitFlags(startCmd) } func genesisCommand(encodingConfig params.EncodingConfig, cmds ...*cobra.Command) *cobra.Command { @@ -192,6 +196,11 @@ func (a appCreator) newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, a skipUpgradeHeights[int64(h)] = true } + var wasmOpts []wasmkeeper.Option + if cast.ToBool(appOpts.Get("telemetry.enabled")) { + wasmOpts = append(wasmOpts, wasmkeeper.WithVMCacheMetrics(prometheus.DefaultRegisterer)) + } + baseappOptions := server.DefaultBaseappOptions(appOpts) return app.NewOmniFlixApp( @@ -204,6 +213,7 @@ func (a appCreator) newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, a cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)), a.encCfg, appOpts, + wasmOpts, baseappOptions..., ) } @@ -226,6 +236,7 @@ func (a appCreator) appExport( return servertypes.ExportedApp{}, errors.New("application home not set") } + var emptyWasmOpts []wasmkeeper.Option if height != -1 { anApp = app.NewOmniFlixApp( logger, @@ -237,6 +248,7 @@ func (a appCreator) appExport( uint(1), a.encCfg, appOpts, + emptyWasmOpts, ) if err := anApp.LoadHeight(height); err != nil { @@ -253,6 +265,7 @@ func (a appCreator) appExport( uint(1), a.encCfg, appOpts, + emptyWasmOpts, ) } diff --git a/cmd/omniflixhubd/main.go b/cmd/omniflixhubd/main.go index 9a403d8f..b93f1206 100644 --- a/cmd/omniflixhubd/main.go +++ b/cmd/omniflixhubd/main.go @@ -3,8 +3,8 @@ package main import ( "os" - "github.com/OmniFlix/omniflixhub/v2/app" - "github.com/OmniFlix/omniflixhub/v2/cmd/omniflixhubd/cmd" + "github.com/OmniFlix/omniflixhub/v3/app" + "github.com/OmniFlix/omniflixhub/v3/cmd/omniflixhubd/cmd" svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" ) diff --git a/go.mod b/go.mod index 4f055ec5..f8af099e 100644 --- a/go.mod +++ b/go.mod @@ -1,14 +1,16 @@ -module github.com/OmniFlix/omniflixhub/v2 +module github.com/OmniFlix/omniflixhub/v3 go 1.21 require ( + github.com/CosmWasm/wasmd v0.45.0 + github.com/CosmWasm/wasmvm v1.5.2 github.com/OmniFlix/streampay/v2 v2.3.0 github.com/bianjieai/nft-transfer v1.1.3-ibc-v7.3.0 - github.com/cometbft/cometbft v0.37.2 + github.com/cometbft/cometbft v0.37.4 github.com/cometbft/cometbft-db v0.8.0 github.com/cosmos/cosmos-proto v1.0.0-beta.2 - github.com/cosmos/cosmos-sdk v0.47.5 + github.com/cosmos/cosmos-sdk v0.47.8 github.com/cosmos/gogoproto v1.4.10 github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.1 github.com/cosmos/ibc-apps/modules/async-icq/v7 v7.1.1 @@ -22,28 +24,28 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb - google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 - google.golang.org/grpc v1.56.2 - google.golang.org/protobuf v1.31.0 + google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0 + google.golang.org/grpc v1.60.1 + google.golang.org/protobuf v1.32.0 ) require ( - cloud.google.com/go v0.110.4 // indirect - cloud.google.com/go/compute v1.20.1 // indirect + cloud.google.com/go v0.111.0 // indirect + cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v1.1.0 // indirect + cloud.google.com/go/iam v1.1.5 // indirect cloud.google.com/go/storage v1.30.1 // indirect cosmossdk.io/api v0.3.1 cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect - cosmossdk.io/errors v1.0.0 - cosmossdk.io/log v1.2.1 // indirect - cosmossdk.io/math v1.1.2 + cosmossdk.io/errors v1.0.1 + cosmossdk.io/log v1.3.0 // indirect + cosmossdk.io/math v1.2.0 cosmossdk.io/tools/rosetta v0.2.1 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect - github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect + github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/aws/aws-sdk-go v1.44.203 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -63,7 +65,7 @@ require ( github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v0.20.0 // indirect + github.com/cosmos/iavl v0.20.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.12.4 // indirect github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect @@ -75,6 +77,7 @@ require ( github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect + github.com/docker/distribution v2.8.2+incompatible // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/dvsekhvalnov/jose2go v1.5.0 // indirect github.com/felixge/httpsnoop v1.0.2 // indirect @@ -83,19 +86,22 @@ require ( github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect github.com/google/orderedcode v0.0.1 // indirect - github.com/google/s2a-go v0.1.4 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.11.0 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.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 @@ -116,7 +122,7 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect - github.com/klauspost/compress v1.16.3 // indirect + github.com/klauspost/compress v1.16.7 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.7 // indirect @@ -125,7 +131,7 @@ require ( github.com/magiconair/properties v1.8.7 // 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.19 // indirect + github.com/mattn/go-isatty v0.0.20 // 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 @@ -133,19 +139,20 @@ require ( github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mtibben/percent v0.2.1 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect github.com/pelletier/go-toml/v2 v2.0.8 // indirect github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect github.com/pkg/errors v0.9.1 github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.14.0 // indirect + github.com/prometheus/client_golang v1.16.0 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/prometheus/procfs v0.10.1 // indirect github.com/rakyll/statik v0.1.7 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/rs/cors v1.8.3 // indirect - github.com/rs/zerolog v1.30.0 // indirect + github.com/rs/zerolog v1.31.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/spf13/afero v1.9.5 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect @@ -159,17 +166,20 @@ require ( github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.11.0 // indirect - golang.org/x/net v0.12.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sys v0.11.0 // indirect - golang.org/x/term v0.10.0 // indirect - golang.org/x/text v0.12.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.126.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/otel/metric v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/crypto v0.17.0 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/oauth2 v0.13.0 // indirect + golang.org/x/sync v0.4.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.15.0 // indirect + golang.org/x/text v0.14.0 // indirect + google.golang.org/api v0.149.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index 60150933..f0738142 100644 --- a/go.sum +++ b/go.sum @@ -34,8 +34,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk= -cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.111.0 h1:YHLKNupSD1KqjDbQ3+LVdQ81h/UJbJyZG203cEfnQgM= +cloud.google.com/go v0.111.0/go.mod h1:0mibmpKP1TyOOFYQY5izo0LnT+ecvOQ0Sg3OdmMiNRU= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -73,8 +73,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg= -cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= 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/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -114,8 +114,8 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97 cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v1.1.0 h1:67gSqaPukx7O8WLLHMa0PNs3EBGd2eE4d+psbO/CO94= -cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk= +cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= +cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= @@ -197,12 +197,12 @@ cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE= cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= -cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04= -cosmossdk.io/errors v1.0.0/go.mod h1:+hJZLuhdDE0pYN8HkOrVNwrIOYvUGnn6+4fjnJs/oV0= -cosmossdk.io/log v1.2.1 h1:Xc1GgTCicniwmMiKwDxUjO4eLhPxoVdI9vtMW8Ti/uk= -cosmossdk.io/log v1.2.1/go.mod h1:GNSCc/6+DhFIj1aLn/j7Id7PaO8DzNylUZoOYBL9+I4= -cosmossdk.io/math v1.1.2 h1:ORZetZCTyWkI5GlZ6CZS28fMHi83ZYf+A2vVnHNzZBM= -cosmossdk.io/math v1.1.2/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= +cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= +cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= +cosmossdk.io/log v1.3.0 h1:L0Z0XstClo2kOU4h3V1iDoE5Ji64sg5HLOogzGg67Oo= +cosmossdk.io/log v1.3.0/go.mod h1:HIDyvWLqZe2ovlWabsDN4aPMpY/nUEquAhgfTf2ZzB8= +cosmossdk.io/math v1.2.0 h1:8gudhTkkD3NxOP2YyyJIYYmt6dQ55ZfJkDOaxXpy7Ig= +cosmossdk.io/math v1.2.0/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -220,8 +220,12 @@ github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOEl github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= 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/CosmWasm/wasmd v0.45.0 h1:9zBqrturKJwC2kVsfHvbrA++EN0PS7UTXCffCGbg6JI= +github.com/CosmWasm/wasmd v0.45.0/go.mod h1:RnSAiqbNIZu4QhO+0pd7qGZgnYAMBPGmXpzTADag944= +github.com/CosmWasm/wasmvm v1.5.2 h1:+pKB1Mz9GZVt1vadxB+EDdD1FOz3dMNjIKq/58/lrag= +github.com/CosmWasm/wasmvm v1.5.2/go.mod h1:Q0bSEtlktzh7W2hhEaifrFp1Erx11ckQZmjq8FLCyys= github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/zstd v1.5.0/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= @@ -377,8 +381,8 @@ github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE 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.37.2 h1:XB0yyHGT0lwmJlFmM4+rsRnczPlHoAKFX6K8Zgc2/Jc= -github.com/cometbft/cometbft v0.37.2/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= +github.com/cometbft/cometbft v0.37.4 h1:xyvvEqlyfK8MgNIIKVJaMsuIp03wxOcFmVkT26+Ikpg= +github.com/cometbft/cometbft v0.37.4/go.mod h1:Cmg5Hp4sNpapm7j+x0xRyt2g0juQfmB752ous+pA0G8= github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AKVZpjo= github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0= github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= @@ -399,8 +403,8 @@ 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-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= -github.com/cosmos/cosmos-sdk v0.47.5 h1:n1+WjP/VM/gAEOx3TqU2/Ny734rj/MX1kpUnn7zVJP8= -github.com/cosmos/cosmos-sdk v0.47.5/go.mod h1:EHwCeN9IXonsjKcjpS12MqeStdZvIdxt3VYXhus3G3c= +github.com/cosmos/cosmos-sdk v0.47.8 h1:kzYF2xhnfi8dy15t2VVS24tc2KcuU4JBgjh9yCFx4y4= +github.com/cosmos/cosmos-sdk v0.47.8/go.mod h1:VTAtthIsmfplanhFfUTfT6ED4F+kkJxT7nmvmKXRthI= 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= @@ -409,8 +413,8 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI= github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek= -github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= -github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= +github.com/cosmos/iavl v0.20.1 h1:rM1kqeG3/HBT85vsZdoSNsehciqUQPWrR4BYmqE2+zg= +github.com/cosmos/iavl v0.20.1/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.1 h1:PqIK9vTr6zxCdQmrDZwxwL4KMAqg/GRGsiMEiaMP4wA= github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.1/go.mod h1:UvDmcGIWJPIytq+Q78/ff5NTOsuX/7IrNgEugTW5i0s= github.com/cosmos/ibc-apps/modules/async-icq/v7 v7.1.1 h1:02RCbih5lQ8aGdDMSvxhTnk5JDLEDitn17ytEE1Qhko= @@ -466,6 +470,8 @@ github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8 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/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= +github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/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= @@ -545,6 +551,11 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= 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= @@ -585,8 +596,8 @@ github.com/golang-jwt/jwt/v4 v4.3.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzw 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.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= 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= @@ -647,8 +658,9 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -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/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/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/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -679,8 +691,8 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= -github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 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= @@ -691,8 +703,8 @@ github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= -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/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= 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.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -702,8 +714,8 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cUUI8Ki4= -github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= 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= @@ -849,8 +861,8 @@ github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY= -github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5 h1:2U0HzY8BJ8hVwDKIzp7y4voR9CX/nvcfymLmg2UiOio= github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -900,7 +912,6 @@ github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVc 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= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= @@ -910,8 +921,9 @@ github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2y 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/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/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= @@ -1044,8 +1056,8 @@ 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.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= +github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= 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= @@ -1070,8 +1082,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT 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.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= +github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= @@ -1090,8 +1102,8 @@ github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c= -github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w= +github.com/rs/zerolog v1.31.0 h1:FcTR3NnLWW+NnTwwhFWiJSZr4ECLpqCm6QsEnyvbV4A= +github.com/rs/zerolog v1.31.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -1228,6 +1240,14 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= 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= @@ -1265,12 +1285,11 @@ golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm 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-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= -golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= 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= @@ -1386,8 +1405,8 @@ golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= -golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= 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= @@ -1413,8 +1432,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY= +golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= 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= @@ -1430,8 +1449,8 @@ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= -golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= +golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= 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= @@ -1515,7 +1534,6 @@ golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/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-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1543,8 +1561,9 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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= @@ -1552,8 +1571,8 @@ golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= -golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= 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= @@ -1568,8 +1587,8 @@ golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= 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= @@ -1707,8 +1726,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o= -google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/api v0.149.0 h1:b2CqT6kG+zqJIVKRQ3ELJVLN1PwHZ6DJ3dW8yl82rgY= +google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= 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= @@ -1716,8 +1735,9 @@ google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 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/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= 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= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1828,12 +1848,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8= -google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= -google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 h1:s5YSX+ZH5b5vS9rnpGymvIyMpLRJizowqDlOuyjXnTk= -google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917 h1:nz5NESFLZbJGPFxDT/HCn+V1mZ8JGNoY4nUpmW/Y2eg= +google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917/go.mod h1:pZqR+glSb11aJ+JQcczCvgf47+duRuzNSKqE8YAQnV0= +google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0 h1:s1w3X6gQxwrLEpxnLd/qXTVLgQE2yXwaOaoa6IlY/+o= +google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0/go.mod h1:CAny0tYF+0/9rmDB9fahA9YLzX3+AEVl1qXbv5hhj6c= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 h1:gphdwh0npgs8elJ4T6J+DQJHPVF7RsuJHCfwztUb4J4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA= 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.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1875,8 +1895,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.56.2 h1:fVRFRnXvU+x6C4IlHZewvJOVHoOv1TUuQyoRsYnB4bI= -google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU= +google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= 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= @@ -1894,8 +1914,8 @@ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= 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= @@ -1933,8 +1953,8 @@ 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.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= -gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= 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= diff --git a/proto/OmniFlix/alloc/v1beta1/genesis.proto b/proto/OmniFlix/alloc/v1beta1/genesis.proto index c6693da6..ab96c42c 100644 --- a/proto/OmniFlix/alloc/v1beta1/genesis.proto +++ b/proto/OmniFlix/alloc/v1beta1/genesis.proto @@ -4,7 +4,7 @@ package OmniFlix.alloc.v1beta1; import "gogoproto/gogo.proto"; import "OmniFlix/alloc/v1beta1/params.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/alloc/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/alloc/types"; // GenesisState defines the alloc module's genesis state. message GenesisState { diff --git a/proto/OmniFlix/alloc/v1beta1/params.proto b/proto/OmniFlix/alloc/v1beta1/params.proto index e3fb686c..d181752b 100644 --- a/proto/OmniFlix/alloc/v1beta1/params.proto +++ b/proto/OmniFlix/alloc/v1beta1/params.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package OmniFlix.alloc.v1beta1; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/alloc/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/alloc/types"; import "gogoproto/gogo.proto"; diff --git a/proto/OmniFlix/alloc/v1beta1/query.proto b/proto/OmniFlix/alloc/v1beta1/query.proto index 587c4804..1db8d62d 100644 --- a/proto/OmniFlix/alloc/v1beta1/query.proto +++ b/proto/OmniFlix/alloc/v1beta1/query.proto @@ -5,7 +5,7 @@ import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; import "OmniFlix/alloc/v1beta1/params.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/alloc/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/alloc/types"; // QueryParamsRequest is the request type for the Query/Params RPC method. message QueryParamsRequest {} diff --git a/proto/OmniFlix/alloc/v1beta1/tx.proto b/proto/OmniFlix/alloc/v1beta1/tx.proto index 589ac5b8..48fd3b2f 100644 --- a/proto/OmniFlix/alloc/v1beta1/tx.proto +++ b/proto/OmniFlix/alloc/v1beta1/tx.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package OmniFlix.alloc.v1beta1; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/alloc/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/alloc/types"; import "cosmos/msg/v1/msg.proto"; import "OmniFlix/alloc/v1beta1/params.proto"; diff --git a/proto/OmniFlix/globalfee/v1beta1/genesis.proto b/proto/OmniFlix/globalfee/v1beta1/genesis.proto index a02eb2df..323fe13d 100644 --- a/proto/OmniFlix/globalfee/v1beta1/genesis.proto +++ b/proto/OmniFlix/globalfee/v1beta1/genesis.proto @@ -4,7 +4,7 @@ package OmniFlix.globalfee.v1beta1; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types"; // GenesisState - initial state of module message GenesisState { diff --git a/proto/OmniFlix/globalfee/v1beta1/query.proto b/proto/OmniFlix/globalfee/v1beta1/query.proto index 3f65e4ed..402e401f 100644 --- a/proto/OmniFlix/globalfee/v1beta1/query.proto +++ b/proto/OmniFlix/globalfee/v1beta1/query.proto @@ -5,7 +5,7 @@ import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; import "OmniFlix/globalfee/v1beta1/genesis.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types"; // Query defines the gRPC querier service. service Query { diff --git a/proto/OmniFlix/globalfee/v1beta1/tx.proto b/proto/OmniFlix/globalfee/v1beta1/tx.proto index f6679572..f0c602c1 100644 --- a/proto/OmniFlix/globalfee/v1beta1/tx.proto +++ b/proto/OmniFlix/globalfee/v1beta1/tx.proto @@ -7,7 +7,7 @@ import "OmniFlix/globalfee/v1beta1/genesis.proto"; import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types"; // Msg defines the x/globalfee Msg service. service Msg { diff --git a/proto/OmniFlix/itc/v1/genesis.proto b/proto/OmniFlix/itc/v1/genesis.proto index 9c112db3..fc8ccbbc 100644 --- a/proto/OmniFlix/itc/v1/genesis.proto +++ b/proto/OmniFlix/itc/v1/genesis.proto @@ -5,7 +5,7 @@ import "gogoproto/gogo.proto"; import "OmniFlix/itc/v1/params.proto"; import "OmniFlix/itc/v1/itc.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/itc/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/itc/types"; // GenesisState defines the itc module's genesis state. message GenesisState { diff --git a/proto/OmniFlix/itc/v1/itc.proto b/proto/OmniFlix/itc/v1/itc.proto index dff1fd20..1807613c 100644 --- a/proto/OmniFlix/itc/v1/itc.proto +++ b/proto/OmniFlix/itc/v1/itc.proto @@ -6,7 +6,7 @@ import "gogoproto/gogo.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/duration.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/itc/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/itc/types"; option (gogoproto.goproto_getters_all) = false; option (gogoproto.goproto_enum_prefix_all) = false; diff --git a/proto/OmniFlix/itc/v1/params.proto b/proto/OmniFlix/itc/v1/params.proto index a4551613..1243f256 100644 --- a/proto/OmniFlix/itc/v1/params.proto +++ b/proto/OmniFlix/itc/v1/params.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package OmniFlix.itc.v1; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/itc/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/itc/types"; option (gogoproto.goproto_getters_all) = false; diff --git a/proto/OmniFlix/itc/v1/query.proto b/proto/OmniFlix/itc/v1/query.proto index 139c3e70..5e764010 100644 --- a/proto/OmniFlix/itc/v1/query.proto +++ b/proto/OmniFlix/itc/v1/query.proto @@ -7,7 +7,7 @@ import "google/api/annotations.proto"; import "OmniFlix/itc/v1/params.proto"; import "OmniFlix/itc/v1/itc.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/itc/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/itc/types"; option (gogoproto.goproto_getters_all) = false; // Query defines the gRPC querier service. diff --git a/proto/OmniFlix/itc/v1/tx.proto b/proto/OmniFlix/itc/v1/tx.proto index dac10e6f..324ee25d 100644 --- a/proto/OmniFlix/itc/v1/tx.proto +++ b/proto/OmniFlix/itc/v1/tx.proto @@ -11,7 +11,7 @@ import "google/protobuf/duration.proto"; import "OmniFlix/itc/v1/itc.proto"; import "OmniFlix/itc/v1/params.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/itc/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/itc/types"; option (gogoproto.goproto_getters_all) = false; service Msg { diff --git a/proto/OmniFlix/marketplace/v1beta1/auction.proto b/proto/OmniFlix/marketplace/v1beta1/auction.proto index ae69382a..43fca8bc 100644 --- a/proto/OmniFlix/marketplace/v1beta1/auction.proto +++ b/proto/OmniFlix/marketplace/v1beta1/auction.proto @@ -6,7 +6,7 @@ import "gogoproto/gogo.proto"; import "google/protobuf/timestamp.proto"; import "OmniFlix/marketplace/v1beta1/listing.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types"; option (gogoproto.goproto_getters_all) = false; option (gogoproto.goproto_enum_prefix_all) = false; diff --git a/proto/OmniFlix/marketplace/v1beta1/events.proto b/proto/OmniFlix/marketplace/v1beta1/events.proto index 0381d6d5..057d9f38 100644 --- a/proto/OmniFlix/marketplace/v1beta1/events.proto +++ b/proto/OmniFlix/marketplace/v1beta1/events.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package OmniFlix.marketplace.v1beta1; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types"; // EventListONFT is emitted on NFT Listing on market message EventListNFT { diff --git a/proto/OmniFlix/marketplace/v1beta1/genesis.proto b/proto/OmniFlix/marketplace/v1beta1/genesis.proto index 2dcf0646..6480e2a7 100644 --- a/proto/OmniFlix/marketplace/v1beta1/genesis.proto +++ b/proto/OmniFlix/marketplace/v1beta1/genesis.proto @@ -6,7 +6,7 @@ import "OmniFlix/marketplace/v1beta1/listing.proto"; import "OmniFlix/marketplace/v1beta1/auction.proto"; import "OmniFlix/marketplace/v1beta1/params.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types"; message GenesisState { // NFTs that are listed in marketplace diff --git a/proto/OmniFlix/marketplace/v1beta1/listing.proto b/proto/OmniFlix/marketplace/v1beta1/listing.proto index 648db657..f6bc2377 100644 --- a/proto/OmniFlix/marketplace/v1beta1/listing.proto +++ b/proto/OmniFlix/marketplace/v1beta1/listing.proto @@ -4,7 +4,7 @@ package OmniFlix.marketplace.v1beta1; import "cosmos/base/v1beta1/coin.proto"; import "gogoproto/gogo.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types"; option (gogoproto.goproto_getters_all) = false; diff --git a/proto/OmniFlix/marketplace/v1beta1/params.proto b/proto/OmniFlix/marketplace/v1beta1/params.proto index d9bfabe3..7fb07f83 100644 --- a/proto/OmniFlix/marketplace/v1beta1/params.proto +++ b/proto/OmniFlix/marketplace/v1beta1/params.proto @@ -4,7 +4,7 @@ package OmniFlix.marketplace.v1beta1; import "gogoproto/gogo.proto"; import "google/protobuf/duration.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types"; option (gogoproto.goproto_getters_all) = false; diff --git a/proto/OmniFlix/marketplace/v1beta1/query.proto b/proto/OmniFlix/marketplace/v1beta1/query.proto index 4d6dc069..b17fd453 100644 --- a/proto/OmniFlix/marketplace/v1beta1/query.proto +++ b/proto/OmniFlix/marketplace/v1beta1/query.proto @@ -8,7 +8,7 @@ import "OmniFlix/marketplace/v1beta1/params.proto"; import "OmniFlix/marketplace/v1beta1/auction.proto"; import "gogoproto/gogo.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types"; service Query { // Params queries params of the marketplace module. diff --git a/proto/OmniFlix/marketplace/v1beta1/tx.proto b/proto/OmniFlix/marketplace/v1beta1/tx.proto index 36b77cb1..f517d0fc 100644 --- a/proto/OmniFlix/marketplace/v1beta1/tx.proto +++ b/proto/OmniFlix/marketplace/v1beta1/tx.proto @@ -12,7 +12,7 @@ import "gogoproto/gogo.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types"; option (gogoproto.goproto_getters_all) = false; service Msg { diff --git a/proto/OmniFlix/onft/v1beta1/genesis.proto b/proto/OmniFlix/onft/v1beta1/genesis.proto index e05a30ff..a3ccc163 100644 --- a/proto/OmniFlix/onft/v1beta1/genesis.proto +++ b/proto/OmniFlix/onft/v1beta1/genesis.proto @@ -4,7 +4,7 @@ package OmniFlix.onft.v1beta1; import "gogoproto/gogo.proto"; import "OmniFlix/onft/v1beta1/onft.proto"; import "OmniFlix/onft/v1beta1/params.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/onft/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/onft/types"; // GenesisState defines the nft module's genesis state. message GenesisState { diff --git a/proto/OmniFlix/onft/v1beta1/onft.proto b/proto/OmniFlix/onft/v1beta1/onft.proto index 7614dc7a..549ca8fc 100644 --- a/proto/OmniFlix/onft/v1beta1/onft.proto +++ b/proto/OmniFlix/onft/v1beta1/onft.proto @@ -4,7 +4,7 @@ package OmniFlix.onft.v1beta1; import "gogoproto/gogo.proto"; import "google/protobuf/timestamp.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/onft/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/onft/types"; option (gogoproto.goproto_getters_all) = false; // Collection diff --git a/proto/OmniFlix/onft/v1beta1/params.proto b/proto/OmniFlix/onft/v1beta1/params.proto index 384f08da..de3d5617 100644 --- a/proto/OmniFlix/onft/v1beta1/params.proto +++ b/proto/OmniFlix/onft/v1beta1/params.proto @@ -4,7 +4,7 @@ package OmniFlix.onft.v1beta1; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/onft/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/onft/types"; option (gogoproto.goproto_getters_all) = false; diff --git a/proto/OmniFlix/onft/v1beta1/query.proto b/proto/OmniFlix/onft/v1beta1/query.proto index 8bc62de5..184c66d7 100644 --- a/proto/OmniFlix/onft/v1beta1/query.proto +++ b/proto/OmniFlix/onft/v1beta1/query.proto @@ -7,7 +7,7 @@ import "OmniFlix/onft/v1beta1/onft.proto"; import "OmniFlix/onft/v1beta1/params.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/onft/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/onft/types"; service Query { rpc Collection(QueryCollectionRequest) returns (QueryCollectionResponse) { diff --git a/proto/OmniFlix/onft/v1beta1/tx.proto b/proto/OmniFlix/onft/v1beta1/tx.proto index 81e4b3c8..646ce387 100644 --- a/proto/OmniFlix/onft/v1beta1/tx.proto +++ b/proto/OmniFlix/onft/v1beta1/tx.proto @@ -9,7 +9,7 @@ import "cosmos/base/v1beta1/coin.proto"; import "gogoproto/gogo.proto"; import "OmniFlix/onft/v1beta1/onft.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/onft/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/onft/types"; option (gogoproto.goproto_getters_all) = false; service Msg { diff --git a/proto/osmosis/tokenfactory/v1beta1/authorityMetadata.proto b/proto/osmosis/tokenfactory/v1beta1/authorityMetadata.proto index 77a5dba0..aa42b0b6 100755 --- a/proto/osmosis/tokenfactory/v1beta1/authorityMetadata.proto +++ b/proto/osmosis/tokenfactory/v1beta1/authorityMetadata.proto @@ -4,7 +4,7 @@ package osmosis.tokenfactory.v1beta1; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types"; // DenomAuthorityMetadata specifies metadata for addresses that have specific // capabilities over a token factory denom. Right now there is only one Admin diff --git a/proto/osmosis/tokenfactory/v1beta1/genesis.proto b/proto/osmosis/tokenfactory/v1beta1/genesis.proto index ffcf4f2b..1f73178c 100755 --- a/proto/osmosis/tokenfactory/v1beta1/genesis.proto +++ b/proto/osmosis/tokenfactory/v1beta1/genesis.proto @@ -5,7 +5,7 @@ import "gogoproto/gogo.proto"; import "osmosis/tokenfactory/v1beta1/authorityMetadata.proto"; import "osmosis/tokenfactory/v1beta1/params.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types"; // GenesisState defines the tokenfactory module's genesis state. message GenesisState { diff --git a/proto/osmosis/tokenfactory/v1beta1/params.proto b/proto/osmosis/tokenfactory/v1beta1/params.proto index a7866530..0dd22ebd 100755 --- a/proto/osmosis/tokenfactory/v1beta1/params.proto +++ b/proto/osmosis/tokenfactory/v1beta1/params.proto @@ -6,7 +6,7 @@ import "osmosis/tokenfactory/v1beta1/authorityMetadata.proto"; import "cosmos_proto/cosmos.proto"; import "cosmos/base/v1beta1/coin.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types"; // Params defines the parameters for the tokenfactory module. message Params { diff --git a/proto/osmosis/tokenfactory/v1beta1/query.proto b/proto/osmosis/tokenfactory/v1beta1/query.proto index 8ad6b1d1..b5b1ed4c 100755 --- a/proto/osmosis/tokenfactory/v1beta1/query.proto +++ b/proto/osmosis/tokenfactory/v1beta1/query.proto @@ -7,7 +7,7 @@ import "cosmos/base/query/v1beta1/pagination.proto"; import "osmosis/tokenfactory/v1beta1/authorityMetadata.proto"; import "osmosis/tokenfactory/v1beta1/params.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types"; // Query defines the gRPC querier service. service Query { diff --git a/proto/osmosis/tokenfactory/v1beta1/tx.proto b/proto/osmosis/tokenfactory/v1beta1/tx.proto index 8208b175..78b80f5f 100755 --- a/proto/osmosis/tokenfactory/v1beta1/tx.proto +++ b/proto/osmosis/tokenfactory/v1beta1/tx.proto @@ -9,7 +9,7 @@ import "cosmos/msg/v1/msg.proto"; import "amino/amino.proto"; import "cosmos_proto/cosmos.proto"; -option go_package = "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types"; +option go_package = "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types"; // Msg defines the tokefactory module's gRPC message service. service Msg { diff --git a/scripts/protocgen.sh b/scripts/protocgen.sh index 061c01b1..31f027aa 100644 --- a/scripts/protocgen.sh +++ b/scripts/protocgen.sh @@ -6,5 +6,5 @@ echo "Generating gogo proto code" (cd proto; buf generate --template buf.gen.gogo.yaml) # move proto files to the right places -cp -r github.com/OmniFlix/omniflixhub/v2/* ./ +cp -r github.com/OmniFlix/omniflixhub/v3/* ./ rm -rf github.com diff --git a/x/alloc/abci.go b/x/alloc/abci.go index 0eea839d..7d69b7c1 100644 --- a/x/alloc/abci.go +++ b/x/alloc/abci.go @@ -4,8 +4,8 @@ import ( "fmt" "time" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" "github.com/cosmos/cosmos-sdk/telemetry" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/alloc/client/cli/query.go b/x/alloc/client/cli/query.go index efc13132..384a9d7c 100644 --- a/x/alloc/client/cli/query.go +++ b/x/alloc/client/cli/query.go @@ -5,7 +5,7 @@ import ( "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" "github.com/cosmos/cosmos-sdk/client" "github.com/spf13/cobra" ) diff --git a/x/alloc/client/cli/tx.go b/x/alloc/client/cli/tx.go index 519150c8..69b21fcc 100644 --- a/x/alloc/client/cli/tx.go +++ b/x/alloc/client/cli/tx.go @@ -6,7 +6,7 @@ import ( "github.com/spf13/cobra" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" "github.com/cosmos/cosmos-sdk/client" ) diff --git a/x/alloc/genesis.go b/x/alloc/genesis.go index c5bff577..44a90ff7 100644 --- a/x/alloc/genesis.go +++ b/x/alloc/genesis.go @@ -1,8 +1,8 @@ package alloc import ( - "github.com/OmniFlix/omniflixhub/v2/x/alloc/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/alloc/keeper/grpc_query.go b/x/alloc/keeper/grpc_query.go index 0df9c71c..5664d675 100644 --- a/x/alloc/keeper/grpc_query.go +++ b/x/alloc/keeper/grpc_query.go @@ -3,7 +3,7 @@ package keeper import ( "context" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/alloc/keeper/keeper.go b/x/alloc/keeper/keeper.go index a27b46a5..7769677e 100644 --- a/x/alloc/keeper/keeper.go +++ b/x/alloc/keeper/keeper.go @@ -4,7 +4,7 @@ import ( "errors" "fmt" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" "github.com/cometbft/cometbft/libs/log" "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" diff --git a/x/alloc/keeper/keeper_test.go b/x/alloc/keeper/keeper_test.go index c8f30ff3..614ab66d 100644 --- a/x/alloc/keeper/keeper_test.go +++ b/x/alloc/keeper/keeper_test.go @@ -6,14 +6,14 @@ import ( tmproto "github.com/cometbft/cometbft/proto/tendermint/types" - "github.com/OmniFlix/omniflixhub/v2/app/apptesting" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/app/apptesting" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" "github.com/stretchr/testify/suite" - "github.com/OmniFlix/omniflixhub/v2/app" + "github.com/OmniFlix/omniflixhub/v3/app" ) type KeeperTestSuite struct { diff --git a/x/alloc/keeper/migrator.go b/x/alloc/keeper/migrator.go index 13393213..307fb3c2 100644 --- a/x/alloc/keeper/migrator.go +++ b/x/alloc/keeper/migrator.go @@ -1,8 +1,8 @@ package keeper import ( - "github.com/OmniFlix/omniflixhub/v2/x/alloc/exported" - v3 "github.com/OmniFlix/omniflixhub/v2/x/alloc/migrations/v3" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/exported" + v3 "github.com/OmniFlix/omniflixhub/v3/x/alloc/migrations/v3" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/alloc/keeper/msg_server.go b/x/alloc/keeper/msg_server.go index 076f5cee..523a761c 100644 --- a/x/alloc/keeper/msg_server.go +++ b/x/alloc/keeper/msg_server.go @@ -4,7 +4,7 @@ import ( "context" errorsmod "cosmossdk.io/errors" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" sdk "github.com/cosmos/cosmos-sdk/types" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" ) diff --git a/x/alloc/keeper/params.go b/x/alloc/keeper/params.go index 0d5edbb0..7210298c 100644 --- a/x/alloc/keeper/params.go +++ b/x/alloc/keeper/params.go @@ -1,7 +1,7 @@ package keeper import ( - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/alloc/migrations/v3/migrate.go b/x/alloc/migrations/v3/migrate.go index d1ea933b..64764813 100644 --- a/x/alloc/migrations/v3/migrate.go +++ b/x/alloc/migrations/v3/migrate.go @@ -1,8 +1,8 @@ package v3 import ( - "github.com/OmniFlix/omniflixhub/v2/x/alloc/exported" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/exported" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/alloc/migrations/v3/migrator_test.go b/x/alloc/migrations/v3/migrator_test.go index fc04951b..507d5d96 100644 --- a/x/alloc/migrations/v3/migrator_test.go +++ b/x/alloc/migrations/v3/migrator_test.go @@ -5,10 +5,10 @@ import ( "github.com/stretchr/testify/require" - "github.com/OmniFlix/omniflixhub/v2/x/alloc" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/exported" - v3 "github.com/OmniFlix/omniflixhub/v2/x/alloc/migrations/v3" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/exported" + v3 "github.com/OmniFlix/omniflixhub/v3/x/alloc/migrations/v3" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" "github.com/cosmos/cosmos-sdk/testutil" sdk "github.com/cosmos/cosmos-sdk/types" moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" diff --git a/x/alloc/module.go b/x/alloc/module.go index b60aa2ff..b2c477bb 100644 --- a/x/alloc/module.go +++ b/x/alloc/module.go @@ -5,7 +5,7 @@ import ( "encoding/json" "fmt" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/exported" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/exported" "github.com/gorilla/mux" "github.com/grpc-ecosystem/grpc-gateway/runtime" @@ -13,9 +13,9 @@ import ( abci "github.com/cometbft/cometbft/abci/types" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/client/cli" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/client/cli" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" cdctypes "github.com/cosmos/cosmos-sdk/codec/types" diff --git a/x/alloc/types/genesis_test.go b/x/alloc/types/genesis_test.go index ea91c6da..d832799a 100644 --- a/x/alloc/types/genesis_test.go +++ b/x/alloc/types/genesis_test.go @@ -3,7 +3,7 @@ package types_test import ( "testing" - "github.com/OmniFlix/omniflixhub/v2/x/alloc/types" + "github.com/OmniFlix/omniflixhub/v3/x/alloc/types" "github.com/stretchr/testify/require" ) diff --git a/x/globalfee/alias.go b/x/globalfee/alias.go index eda7c90f..a6807133 100644 --- a/x/globalfee/alias.go +++ b/x/globalfee/alias.go @@ -1,7 +1,7 @@ package globalfee import ( - "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types" ) const ( diff --git a/x/globalfee/ante/fee.go b/x/globalfee/ante/fee.go index 4f090e53..2725d4f3 100644 --- a/x/globalfee/ante/fee.go +++ b/x/globalfee/ante/fee.go @@ -11,7 +11,7 @@ import ( sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" - globalfeekeeper "github.com/OmniFlix/omniflixhub/v2/x/globalfee/keeper" + globalfeekeeper "github.com/OmniFlix/omniflixhub/v3/x/globalfee/keeper" ) // FeeWithBypassDecorator checks if the transaction's fee is at least as large diff --git a/x/globalfee/client/cli/query.go b/x/globalfee/client/cli/query.go index 31c6d858..184b0e38 100644 --- a/x/globalfee/client/cli/query.go +++ b/x/globalfee/client/cli/query.go @@ -6,7 +6,7 @@ import ( "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types" ) func GetQueryCmd() *cobra.Command { diff --git a/x/globalfee/genesis_test.go b/x/globalfee/genesis_test.go index 185b514f..effbad7e 100644 --- a/x/globalfee/genesis_test.go +++ b/x/globalfee/genesis_test.go @@ -15,9 +15,9 @@ import ( storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" - appparams "github.com/OmniFlix/omniflixhub/v2/app/params" - globalfeekeeper "github.com/OmniFlix/omniflixhub/v2/x/globalfee/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types" + appparams "github.com/OmniFlix/omniflixhub/v3/app/params" + globalfeekeeper "github.com/OmniFlix/omniflixhub/v3/x/globalfee/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types" ) func TestDefaultGenesis(t *testing.T) { diff --git a/x/globalfee/keeper/grpc_query.go b/x/globalfee/keeper/grpc_query.go index a18000f7..5bc3b537 100644 --- a/x/globalfee/keeper/grpc_query.go +++ b/x/globalfee/keeper/grpc_query.go @@ -3,7 +3,7 @@ package keeper import ( "context" - "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/globalfee/keeper/grpc_query_test.go b/x/globalfee/keeper/grpc_query_test.go index 86938ab4..f8433906 100644 --- a/x/globalfee/keeper/grpc_query_test.go +++ b/x/globalfee/keeper/grpc_query_test.go @@ -8,8 +8,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - globalfeekeeper "github.com/OmniFlix/omniflixhub/v2/x/globalfee/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types" + globalfeekeeper "github.com/OmniFlix/omniflixhub/v3/x/globalfee/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types" ) func TestQueryGlobalFeeParamMinGasPrices(t *testing.T) { diff --git a/x/globalfee/keeper/keeper.go b/x/globalfee/keeper/keeper.go index 9b11aacc..edeb7f35 100644 --- a/x/globalfee/keeper/keeper.go +++ b/x/globalfee/keeper/keeper.go @@ -5,7 +5,7 @@ import ( storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types" ) // Keeper of the globalfee store diff --git a/x/globalfee/keeper/keeper_test.go b/x/globalfee/keeper/keeper_test.go index 0dfb225f..77a6675c 100644 --- a/x/globalfee/keeper/keeper_test.go +++ b/x/globalfee/keeper/keeper_test.go @@ -4,9 +4,9 @@ import ( "testing" "time" - appparams "github.com/OmniFlix/omniflixhub/v2/app/params" - globalfeekeeper "github.com/OmniFlix/omniflixhub/v2/x/globalfee/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types" + appparams "github.com/OmniFlix/omniflixhub/v3/app/params" + globalfeekeeper "github.com/OmniFlix/omniflixhub/v3/x/globalfee/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types" dbm "github.com/cometbft/cometbft-db" "github.com/cometbft/cometbft/libs/log" tmproto "github.com/cometbft/cometbft/proto/tendermint/types" diff --git a/x/globalfee/keeper/msg_server.go b/x/globalfee/keeper/msg_server.go index 7e91b7d0..f05d0d77 100644 --- a/x/globalfee/keeper/msg_server.go +++ b/x/globalfee/keeper/msg_server.go @@ -8,7 +8,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types" ) var _ types.MsgServer = msgServer{} diff --git a/x/globalfee/module.go b/x/globalfee/module.go index 69ec4985..259face2 100644 --- a/x/globalfee/module.go +++ b/x/globalfee/module.go @@ -16,9 +16,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" - "github.com/OmniFlix/omniflixhub/v2/x/globalfee/client/cli" - "github.com/OmniFlix/omniflixhub/v2/x/globalfee/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/globalfee/types" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee/client/cli" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/globalfee/types" ) var ( diff --git a/x/ics721nft/keeper.go b/x/ics721nft/keeper.go index 2ab66e8a..b7f71b27 100644 --- a/x/ics721nft/keeper.go +++ b/x/ics721nft/keeper.go @@ -5,8 +5,8 @@ import ( errorsmod "cosmossdk.io/errors" - onftkeeper "github.com/OmniFlix/omniflixhub/v2/x/onft/keeper" - onfttypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + onftkeeper "github.com/OmniFlix/omniflixhub/v3/x/onft/keeper" + onfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" nfttransfer "github.com/bianjieai/nft-transfer/types" "github.com/cometbft/cometbft/libs/log" "github.com/cosmos/cosmos-sdk/codec" diff --git a/x/itc/abci.go b/x/itc/abci.go index 47b4e673..5fe16a9d 100644 --- a/x/itc/abci.go +++ b/x/itc/abci.go @@ -1,7 +1,7 @@ package itc import ( - "github.com/OmniFlix/omniflixhub/v2/x/itc/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/itc/keeper" abcitypes "github.com/cometbft/cometbft/abci/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/itc/client/cli/query.go b/x/itc/client/cli/query.go index 4b2afe4a..dc4603b8 100644 --- a/x/itc/client/cli/query.go +++ b/x/itc/client/cli/query.go @@ -10,7 +10,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/version" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" "github.com/spf13/cobra" ) diff --git a/x/itc/client/cli/tx.go b/x/itc/client/cli/tx.go index 84af184d..c2fb80c3 100644 --- a/x/itc/client/cli/tx.go +++ b/x/itc/client/cli/tx.go @@ -4,7 +4,7 @@ import ( "fmt" "strconv" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/tx" diff --git a/x/itc/client/cli/utils.go b/x/itc/client/cli/utils.go index 72a92eac..25080df2 100644 --- a/x/itc/client/cli/utils.go +++ b/x/itc/client/cli/utils.go @@ -7,7 +7,7 @@ import ( "strings" "time" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/spf13/pflag" ) diff --git a/x/itc/genesis.go b/x/itc/genesis.go index 7c27ac3d..d2724c10 100644 --- a/x/itc/genesis.go +++ b/x/itc/genesis.go @@ -3,8 +3,8 @@ package itc import ( "fmt" - "github.com/OmniFlix/omniflixhub/v2/x/itc/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/itc/keeper/campaign.go b/x/itc/keeper/campaign.go index 67928207..fb433852 100644 --- a/x/itc/keeper/campaign.go +++ b/x/itc/keeper/campaign.go @@ -6,8 +6,8 @@ import ( errorsmod "cosmossdk.io/errors" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" - nfttypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" + nfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" streampaytypes "github.com/OmniFlix/streampay/v2/x/streampay/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" diff --git a/x/itc/keeper/events.go b/x/itc/keeper/events.go index e38d0166..4e5c11e8 100644 --- a/x/itc/keeper/events.go +++ b/x/itc/keeper/events.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/itc/keeper/grpc_query.go b/x/itc/keeper/grpc_query.go index ab39b86d..f59b1a7e 100644 --- a/x/itc/keeper/grpc_query.go +++ b/x/itc/keeper/grpc_query.go @@ -9,7 +9,7 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/itc/keeper/itc.go b/x/itc/keeper/itc.go index 84611f52..0cbb6393 100644 --- a/x/itc/keeper/itc.go +++ b/x/itc/keeper/itc.go @@ -3,7 +3,7 @@ package keeper import ( "fmt" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" gogotypes "github.com/cosmos/gogoproto/types" diff --git a/x/itc/keeper/keeper.go b/x/itc/keeper/keeper.go index 98daac6f..19670ae6 100644 --- a/x/itc/keeper/keeper.go +++ b/x/itc/keeper/keeper.go @@ -7,7 +7,7 @@ import ( "github.com/cometbft/cometbft/libs/log" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/itc/keeper/keeper_test.go b/x/itc/keeper/keeper_test.go index 6f769e4f..035c5351 100644 --- a/x/itc/keeper/keeper_test.go +++ b/x/itc/keeper/keeper_test.go @@ -5,12 +5,12 @@ import ( "testing" "time" - onftkeeper "github.com/OmniFlix/omniflixhub/v2/x/onft/keeper" - onfttypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + onftkeeper "github.com/OmniFlix/omniflixhub/v3/x/onft/keeper" + onfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" - "github.com/OmniFlix/omniflixhub/v2/app/apptesting" - "github.com/OmniFlix/omniflixhub/v2/x/itc/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/app/apptesting" + "github.com/OmniFlix/omniflixhub/v3/x/itc/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/suite" ) diff --git a/x/itc/keeper/migrator.go b/x/itc/keeper/migrator.go index e0122db5..ebf7a290 100644 --- a/x/itc/keeper/migrator.go +++ b/x/itc/keeper/migrator.go @@ -1,8 +1,8 @@ package keeper import ( - "github.com/OmniFlix/omniflixhub/v2/x/itc/exported" - v2 "github.com/OmniFlix/omniflixhub/v2/x/itc/migrations/v2" + "github.com/OmniFlix/omniflixhub/v3/x/itc/exported" + v2 "github.com/OmniFlix/omniflixhub/v3/x/itc/migrations/v2" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/itc/keeper/msg_server.go b/x/itc/keeper/msg_server.go index 2ca0885e..8c1f9742 100644 --- a/x/itc/keeper/msg_server.go +++ b/x/itc/keeper/msg_server.go @@ -7,7 +7,7 @@ import ( errorsmod "cosmossdk.io/errors" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/itc/keeper/msg_server_test.go b/x/itc/keeper/msg_server_test.go index 9aa001ed..79e5133f 100644 --- a/x/itc/keeper/msg_server_test.go +++ b/x/itc/keeper/msg_server_test.go @@ -4,10 +4,10 @@ import ( "fmt" "time" - onfttypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + onfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/itc/keeper/params.go b/x/itc/keeper/params.go index cff99f3b..b08e6480 100644 --- a/x/itc/keeper/params.go +++ b/x/itc/keeper/params.go @@ -3,7 +3,7 @@ package keeper import ( "time" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/itc/migrations/v2/migrate.go b/x/itc/migrations/v2/migrate.go index 07d7b081..6ad434b9 100644 --- a/x/itc/migrations/v2/migrate.go +++ b/x/itc/migrations/v2/migrate.go @@ -1,8 +1,8 @@ package v2 import ( - "github.com/OmniFlix/omniflixhub/v2/x/itc/exported" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/exported" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/itc/migrations/v2/migrator_test.go b/x/itc/migrations/v2/migrator_test.go index 9c029178..2783ce0a 100644 --- a/x/itc/migrations/v2/migrator_test.go +++ b/x/itc/migrations/v2/migrator_test.go @@ -5,10 +5,10 @@ import ( "github.com/stretchr/testify/require" - "github.com/OmniFlix/omniflixhub/v2/x/itc" - "github.com/OmniFlix/omniflixhub/v2/x/itc/exported" - v2 "github.com/OmniFlix/omniflixhub/v2/x/itc/migrations/v2" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc" + "github.com/OmniFlix/omniflixhub/v3/x/itc/exported" + v2 "github.com/OmniFlix/omniflixhub/v3/x/itc/migrations/v2" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" "github.com/cosmos/cosmos-sdk/testutil" sdk "github.com/cosmos/cosmos-sdk/types" moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" diff --git a/x/itc/module.go b/x/itc/module.go index 4d24c9d6..2f57d5d5 100644 --- a/x/itc/module.go +++ b/x/itc/module.go @@ -5,9 +5,9 @@ import ( "encoding/json" "fmt" - "github.com/OmniFlix/omniflixhub/v2/x/itc/exported" + "github.com/OmniFlix/omniflixhub/v3/x/itc/exported" - "github.com/OmniFlix/omniflixhub/v2/x/itc/client/cli" + "github.com/OmniFlix/omniflixhub/v3/x/itc/client/cli" "github.com/cosmos/cosmos-sdk/types/module" "github.com/spf13/cobra" @@ -16,8 +16,8 @@ import ( abci "github.com/cometbft/cometbft/abci/types" - "github.com/OmniFlix/omniflixhub/v2/x/itc/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" cdctypes "github.com/cosmos/cosmos-sdk/codec/types" diff --git a/x/itc/types/campaign.go b/x/itc/types/campaign.go index 70e5e31a..6838755d 100644 --- a/x/itc/types/campaign.go +++ b/x/itc/types/campaign.go @@ -4,7 +4,7 @@ import "C" import ( "time" - "github.com/OmniFlix/omniflixhub/v2/x/itc/exported" + "github.com/OmniFlix/omniflixhub/v3/x/itc/exported" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/gogoproto/proto" ) diff --git a/x/itc/types/claim.go b/x/itc/types/claim.go index cc4a4f7c..5cb1bd82 100644 --- a/x/itc/types/claim.go +++ b/x/itc/types/claim.go @@ -1,7 +1,7 @@ package types import ( - "github.com/OmniFlix/omniflixhub/v2/x/itc/exported" + "github.com/OmniFlix/omniflixhub/v3/x/itc/exported" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/gogoproto/proto" ) diff --git a/x/itc/types/codec.go b/x/itc/types/codec.go index a949cf77..e1aeeb6b 100644 --- a/x/itc/types/codec.go +++ b/x/itc/types/codec.go @@ -1,7 +1,7 @@ package types import ( - "github.com/OmniFlix/omniflixhub/v2/x/itc/exported" + "github.com/OmniFlix/omniflixhub/v3/x/itc/exported" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/legacy" "github.com/cosmos/cosmos-sdk/codec/types" diff --git a/x/itc/types/expected_keepers.go b/x/itc/types/expected_keepers.go index cc7ee076..ebb22500 100644 --- a/x/itc/types/expected_keepers.go +++ b/x/itc/types/expected_keepers.go @@ -3,8 +3,8 @@ package types import ( "time" - nft "github.com/OmniFlix/omniflixhub/v2/x/onft/exported" - nfttypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + nft "github.com/OmniFlix/omniflixhub/v3/x/onft/exported" + nfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" streampaytypes "github.com/OmniFlix/streampay/v2/x/streampay/types" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" diff --git a/x/itc/types/genesis_test.go b/x/itc/types/genesis_test.go index 697e2946..016a028d 100644 --- a/x/itc/types/genesis_test.go +++ b/x/itc/types/genesis_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" "github.com/cometbft/cometbft/crypto/ed25519" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/require" diff --git a/x/itc/types/msgs.go b/x/itc/types/msgs.go index df985384..6fe4b668 100644 --- a/x/itc/types/msgs.go +++ b/x/itc/types/msgs.go @@ -5,7 +5,7 @@ import ( errorsmod "cosmossdk.io/errors" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" diff --git a/x/itc/types/msgs_test.go b/x/itc/types/msgs_test.go index 5d0d5b50..85ea014b 100644 --- a/x/itc/types/msgs_test.go +++ b/x/itc/types/msgs_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - "github.com/OmniFlix/omniflixhub/v2/x/itc/types" + "github.com/OmniFlix/omniflixhub/v3/x/itc/types" "github.com/cometbft/cometbft/crypto/ed25519" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/require" diff --git a/x/marketplace/abci.go b/x/marketplace/abci.go index 66852518..1523271b 100644 --- a/x/marketplace/abci.go +++ b/x/marketplace/abci.go @@ -1,7 +1,7 @@ package marketplace import ( - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/keeper" abcitypes "github.com/cometbft/cometbft/abci/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/marketplace/client/cli/query.go b/x/marketplace/client/cli/query.go index 95680f1a..9d35190d 100644 --- a/x/marketplace/client/cli/query.go +++ b/x/marketplace/client/cli/query.go @@ -10,7 +10,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/version" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" "github.com/spf13/cobra" ) diff --git a/x/marketplace/client/cli/tx.go b/x/marketplace/client/cli/tx.go index a9d3cb70..2ac8f826 100644 --- a/x/marketplace/client/cli/tx.go +++ b/x/marketplace/client/cli/tx.go @@ -12,7 +12,7 @@ import ( "github.com/cosmos/cosmos-sdk/version" "github.com/spf13/cobra" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" "github.com/cosmos/cosmos-sdk/client" ) diff --git a/x/marketplace/genesis.go b/x/marketplace/genesis.go index a9a59ccf..3df07b6e 100644 --- a/x/marketplace/genesis.go +++ b/x/marketplace/genesis.go @@ -3,8 +3,8 @@ package marketplace import ( "fmt" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/marketplace/keeper/alias.go b/x/marketplace/keeper/alias.go index dc3d8b79..e36a1689 100644 --- a/x/marketplace/keeper/alias.go +++ b/x/marketplace/keeper/alias.go @@ -1,7 +1,7 @@ package keeper import ( - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" diff --git a/x/marketplace/keeper/auction.go b/x/marketplace/keeper/auction.go index 6ca2328c..702f22e7 100644 --- a/x/marketplace/keeper/auction.go +++ b/x/marketplace/keeper/auction.go @@ -3,7 +3,7 @@ package keeper import ( "fmt" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" gogotypes "github.com/cosmos/gogoproto/types" diff --git a/x/marketplace/keeper/bid.go b/x/marketplace/keeper/bid.go index 05a4353b..85823380 100644 --- a/x/marketplace/keeper/bid.go +++ b/x/marketplace/keeper/bid.go @@ -1,7 +1,7 @@ package keeper import ( - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" gogotypes "github.com/cosmos/gogoproto/types" diff --git a/x/marketplace/keeper/events.go b/x/marketplace/keeper/events.go index 15ca5a36..ed5b0f43 100644 --- a/x/marketplace/keeper/events.go +++ b/x/marketplace/keeper/events.go @@ -3,7 +3,7 @@ package keeper import ( "fmt" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/marketplace/keeper/grpc_query.go b/x/marketplace/keeper/grpc_query.go index c047fdeb..1d38cc03 100644 --- a/x/marketplace/keeper/grpc_query.go +++ b/x/marketplace/keeper/grpc_query.go @@ -5,7 +5,7 @@ import ( "fmt" "time" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/query" diff --git a/x/marketplace/keeper/keeper.go b/x/marketplace/keeper/keeper.go index 699cf095..c826afaa 100644 --- a/x/marketplace/keeper/keeper.go +++ b/x/marketplace/keeper/keeper.go @@ -3,13 +3,13 @@ package keeper import ( "fmt" - onfttypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + onfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" errorsmod "cosmossdk.io/errors" storetypes "github.com/cosmos/cosmos-sdk/store/types" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" "github.com/cometbft/cometbft/libs/log" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" diff --git a/x/marketplace/keeper/listing.go b/x/marketplace/keeper/listing.go index 594a576a..23ac1f62 100644 --- a/x/marketplace/keeper/listing.go +++ b/x/marketplace/keeper/listing.go @@ -3,7 +3,7 @@ package keeper import ( "encoding/binary" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" gogotypes "github.com/cosmos/gogoproto/types" diff --git a/x/marketplace/keeper/migrator.go b/x/marketplace/keeper/migrator.go index 474d91ec..210581cd 100644 --- a/x/marketplace/keeper/migrator.go +++ b/x/marketplace/keeper/migrator.go @@ -1,8 +1,8 @@ package keeper import ( - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/exported" - v3 "github.com/OmniFlix/omniflixhub/v2/x/marketplace/migrations/v3" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/exported" + v3 "github.com/OmniFlix/omniflixhub/v3/x/marketplace/migrations/v3" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/marketplace/keeper/msg_server.go b/x/marketplace/keeper/msg_server.go index 467e4d79..fe62de53 100644 --- a/x/marketplace/keeper/msg_server.go +++ b/x/marketplace/keeper/msg_server.go @@ -8,7 +8,7 @@ import ( errorsmod "cosmossdk.io/errors" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" sdk "github.com/cosmos/cosmos-sdk/types" "golang.org/x/exp/slices" ) diff --git a/x/marketplace/keeper/params.go b/x/marketplace/keeper/params.go index 63d7d4cc..36e8e835 100644 --- a/x/marketplace/keeper/params.go +++ b/x/marketplace/keeper/params.go @@ -3,7 +3,7 @@ package keeper import ( "time" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/marketplace/migrations/v3/migrate.go b/x/marketplace/migrations/v3/migrate.go index 8255ac59..e7967df2 100644 --- a/x/marketplace/migrations/v3/migrate.go +++ b/x/marketplace/migrations/v3/migrate.go @@ -1,8 +1,8 @@ package v3 import ( - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/exported" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/exported" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/marketplace/migrations/v3/migrator_test.go b/x/marketplace/migrations/v3/migrator_test.go index cde5dad4..ba437820 100644 --- a/x/marketplace/migrations/v3/migrator_test.go +++ b/x/marketplace/migrations/v3/migrator_test.go @@ -5,10 +5,10 @@ import ( "github.com/stretchr/testify/require" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/exported" - v3 "github.com/OmniFlix/omniflixhub/v2/x/marketplace/migrations/v3" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/exported" + v3 "github.com/OmniFlix/omniflixhub/v3/x/marketplace/migrations/v3" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" "github.com/cosmos/cosmos-sdk/testutil" sdk "github.com/cosmos/cosmos-sdk/types" moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" diff --git a/x/marketplace/module.go b/x/marketplace/module.go index d0fdab6e..08efc72f 100644 --- a/x/marketplace/module.go +++ b/x/marketplace/module.go @@ -5,9 +5,9 @@ import ( "encoding/json" "fmt" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/exported" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/exported" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/client/cli" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/client/cli" "github.com/cosmos/cosmos-sdk/types/module" "github.com/spf13/cobra" @@ -15,8 +15,8 @@ import ( abci "github.com/cometbft/cometbft/abci/types" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/types" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" cdctypes "github.com/cosmos/cosmos-sdk/codec/types" diff --git a/x/marketplace/types/auction.go b/x/marketplace/types/auction.go index 4812270b..5aad2e2a 100644 --- a/x/marketplace/types/auction.go +++ b/x/marketplace/types/auction.go @@ -3,7 +3,7 @@ package types import ( "time" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/exported" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/exported" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/gogoproto/proto" ) diff --git a/x/marketplace/types/bid.go b/x/marketplace/types/bid.go index 4d94d8f7..083cc4d1 100644 --- a/x/marketplace/types/bid.go +++ b/x/marketplace/types/bid.go @@ -3,7 +3,7 @@ package types import ( "time" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/exported" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/exported" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/gogoproto/proto" ) diff --git a/x/marketplace/types/codec.go b/x/marketplace/types/codec.go index b0567f43..9cf97f09 100644 --- a/x/marketplace/types/codec.go +++ b/x/marketplace/types/codec.go @@ -11,7 +11,7 @@ import ( govcodec "github.com/cosmos/cosmos-sdk/x/gov/codec" gogotypes "github.com/cosmos/gogoproto/types" - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/exported" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/exported" ) func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { diff --git a/x/marketplace/types/expected_keepers.go b/x/marketplace/types/expected_keepers.go index f609114a..aac86a0d 100644 --- a/x/marketplace/types/expected_keepers.go +++ b/x/marketplace/types/expected_keepers.go @@ -1,8 +1,8 @@ package types import ( - nft "github.com/OmniFlix/omniflixhub/v2/x/onft/exported" - nftypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + nft "github.com/OmniFlix/omniflixhub/v3/x/onft/exported" + nftypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" ) diff --git a/x/marketplace/types/listing.go b/x/marketplace/types/listing.go index 0de2dcf3..51cb6903 100644 --- a/x/marketplace/types/listing.go +++ b/x/marketplace/types/listing.go @@ -1,7 +1,7 @@ package types import ( - "github.com/OmniFlix/omniflixhub/v2/x/marketplace/exported" + "github.com/OmniFlix/omniflixhub/v3/x/marketplace/exported" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/gogoproto/proto" ) diff --git a/x/marketplace/types/msgs.go b/x/marketplace/types/msgs.go index ad35d6eb..2f5b3470 100644 --- a/x/marketplace/types/msgs.go +++ b/x/marketplace/types/msgs.go @@ -52,13 +52,17 @@ func (msg MsgListNFT) Route() string { return MsgRoute } func (msg MsgListNFT) Type() string { return TypeMsgListNFT } func (msg MsgListNFT) ValidateBasic() error { + owner, err := sdk.AccAddressFromBech32(msg.Owner) + if err != nil { + return err + } return ValidateListing( NewListing( msg.Id, msg.NftId, msg.DenomId, msg.Price, - sdk.AccAddress(msg.Owner), + owner, msg.SplitShares, ), ) diff --git a/x/onft/client/cli/query.go b/x/onft/client/cli/query.go index 7edaa41a..a9ab6c81 100644 --- a/x/onft/client/cli/query.go +++ b/x/onft/client/cli/query.go @@ -12,7 +12,7 @@ import ( "github.com/cosmos/cosmos-sdk/version" "github.com/spf13/cobra" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" ) func GetQueryCmd() *cobra.Command { diff --git a/x/onft/client/cli/tx.go b/x/onft/client/cli/tx.go index d2618855..e16403e0 100644 --- a/x/onft/client/cli/tx.go +++ b/x/onft/client/cli/tx.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/tx" diff --git a/x/onft/genesis.go b/x/onft/genesis.go index c2643034..78eaeaf4 100644 --- a/x/onft/genesis.go +++ b/x/onft/genesis.go @@ -1,8 +1,8 @@ package onft import ( - "github.com/OmniFlix/omniflixhub/v2/x/onft/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/onft/keeper/alias.go b/x/onft/keeper/alias.go index 53073856..9dad9691 100644 --- a/x/onft/keeper/alias.go +++ b/x/onft/keeper/alias.go @@ -1,7 +1,7 @@ package keeper import ( - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" ) diff --git a/x/onft/keeper/collection.go b/x/onft/keeper/collection.go index b54fd5ae..32428676 100644 --- a/x/onft/keeper/collection.go +++ b/x/onft/keeper/collection.go @@ -2,7 +2,7 @@ package keeper import ( errorsmod "cosmossdk.io/errors" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/onft/keeper/denom.go b/x/onft/keeper/denom.go index de1ce5be..cfaaf953 100644 --- a/x/onft/keeper/denom.go +++ b/x/onft/keeper/denom.go @@ -7,7 +7,7 @@ import ( sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/nft" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" ) // SaveDenom saves a denom diff --git a/x/onft/keeper/events.go b/x/onft/keeper/events.go index bccb6711..aadf842b 100644 --- a/x/onft/keeper/events.go +++ b/x/onft/keeper/events.go @@ -1,7 +1,7 @@ package keeper import ( - onfttypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + onfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/onft/keeper/grpc_query.go b/x/onft/keeper/grpc_query.go index f14a6caf..3aef3deb 100644 --- a/x/onft/keeper/grpc_query.go +++ b/x/onft/keeper/grpc_query.go @@ -11,7 +11,7 @@ import ( errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" ) var _ types.QueryServer = Keeper{} diff --git a/x/onft/keeper/invariants.go b/x/onft/keeper/invariants.go index 4b248ecb..81a01dac 100644 --- a/x/onft/keeper/invariants.go +++ b/x/onft/keeper/invariants.go @@ -3,7 +3,7 @@ package keeper import ( "fmt" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/onft/keeper/keeper.go b/x/onft/keeper/keeper.go index 917039eb..73b8948f 100644 --- a/x/onft/keeper/keeper.go +++ b/x/onft/keeper/keeper.go @@ -10,7 +10,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" nftkeeper "github.com/cosmos/cosmos-sdk/x/nft/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" ) type Keeper struct { diff --git a/x/onft/keeper/keeper_test.go b/x/onft/keeper/keeper_test.go index 73537386..73eacf0d 100644 --- a/x/onft/keeper/keeper_test.go +++ b/x/onft/keeper/keeper_test.go @@ -3,9 +3,9 @@ package keeper_test import ( "testing" - "github.com/OmniFlix/omniflixhub/v2/app/apptesting" - "github.com/OmniFlix/omniflixhub/v2/x/onft/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/app/apptesting" + "github.com/OmniFlix/omniflixhub/v3/x/onft/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/suite" ) diff --git a/x/onft/keeper/migrator.go b/x/onft/keeper/migrator.go index a075a720..86a4ba22 100644 --- a/x/onft/keeper/migrator.go +++ b/x/onft/keeper/migrator.go @@ -1,8 +1,8 @@ package keeper import ( - "github.com/OmniFlix/omniflixhub/v2/x/onft/exported" - v2 "github.com/OmniFlix/omniflixhub/v2/x/onft/migrations/v2" + "github.com/OmniFlix/omniflixhub/v3/x/onft/exported" + v2 "github.com/OmniFlix/omniflixhub/v3/x/onft/migrations/v2" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/onft/keeper/msg_server.go b/x/onft/keeper/msg_server.go index 1326bb2d..3b01a9e9 100644 --- a/x/onft/keeper/msg_server.go +++ b/x/onft/keeper/msg_server.go @@ -8,7 +8,7 @@ import ( govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" errorsmod "cosmossdk.io/errors" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/onft/keeper/onft.go b/x/onft/keeper/onft.go index e147efff..a71467e5 100644 --- a/x/onft/keeper/onft.go +++ b/x/onft/keeper/onft.go @@ -4,8 +4,8 @@ import ( "time" errorsmod "cosmossdk.io/errors" - "github.com/OmniFlix/omniflixhub/v2/x/onft/exported" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/exported" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/nft" diff --git a/x/onft/keeper/params.go b/x/onft/keeper/params.go index 80f571aa..b7532516 100644 --- a/x/onft/keeper/params.go +++ b/x/onft/keeper/params.go @@ -1,7 +1,7 @@ package keeper import ( - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/onft/migrations/v2/expected_keepers.go b/x/onft/migrations/v2/expected_keepers.go index 12f9dba5..eae900f6 100644 --- a/x/onft/migrations/v2/expected_keepers.go +++ b/x/onft/migrations/v2/expected_keepers.go @@ -1,7 +1,7 @@ package v2 import ( - onfttypes "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + onfttypes "github.com/OmniFlix/omniflixhub/v3/x/onft/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/onft/migrations/v2/keeper.go b/x/onft/migrations/v2/keeper.go index 03ea3e76..1bf7254b 100644 --- a/x/onft/migrations/v2/keeper.go +++ b/x/onft/migrations/v2/keeper.go @@ -14,7 +14,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/nft" nftkeeper "github.com/cosmos/cosmos-sdk/x/nft/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" ) type keeper struct { diff --git a/x/onft/migrations/v2/migrate.go b/x/onft/migrations/v2/migrate.go index 218e680b..81bf554c 100644 --- a/x/onft/migrations/v2/migrate.go +++ b/x/onft/migrations/v2/migrate.go @@ -1,8 +1,8 @@ package v2 import ( - "github.com/OmniFlix/omniflixhub/v2/x/onft/exported" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/exported" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" diff --git a/x/onft/migrations/v2/migrator_test.go b/x/onft/migrations/v2/migrator_test.go index 7ec208ab..b17f08a8 100644 --- a/x/onft/migrations/v2/migrator_test.go +++ b/x/onft/migrations/v2/migrator_test.go @@ -3,14 +3,14 @@ package v2_test import ( "testing" - "github.com/OmniFlix/omniflixhub/v2/app/apptesting" + "github.com/OmniFlix/omniflixhub/v3/app/apptesting" "github.com/stretchr/testify/suite" "github.com/stretchr/testify/require" - "github.com/OmniFlix/omniflixhub/v2/x/onft/exported" - v2 "github.com/OmniFlix/omniflixhub/v2/x/onft/migrations/v2" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/exported" + v2 "github.com/OmniFlix/omniflixhub/v3/x/onft/migrations/v2" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/onft/migrations/v2/store.go b/x/onft/migrations/v2/store.go index a258516f..52de5e9a 100644 --- a/x/onft/migrations/v2/store.go +++ b/x/onft/migrations/v2/store.go @@ -10,7 +10,7 @@ import ( storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" ) // MigrateCollections is used to migrate nft data from onft to x/nft diff --git a/x/onft/migrations/v2/store_test.go b/x/onft/migrations/v2/store_test.go index 8eaca3ef..db634e11 100644 --- a/x/onft/migrations/v2/store_test.go +++ b/x/onft/migrations/v2/store_test.go @@ -8,10 +8,10 @@ import ( "github.com/stretchr/testify/require" - "github.com/OmniFlix/omniflixhub/v2/app/apptesting" - "github.com/OmniFlix/omniflixhub/v2/x/onft/keeper" - v2 "github.com/OmniFlix/omniflixhub/v2/x/onft/migrations/v2" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/app/apptesting" + "github.com/OmniFlix/omniflixhub/v3/x/onft/keeper" + v2 "github.com/OmniFlix/omniflixhub/v3/x/onft/migrations/v2" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" diff --git a/x/onft/module.go b/x/onft/module.go index ad06c19f..3650c6bf 100644 --- a/x/onft/module.go +++ b/x/onft/module.go @@ -5,18 +5,18 @@ import ( "encoding/json" "fmt" - "github.com/OmniFlix/omniflixhub/v2/x/onft/exported" + "github.com/OmniFlix/omniflixhub/v3/x/onft/exported" - "github.com/OmniFlix/omniflixhub/v2/x/onft/simulation" + "github.com/OmniFlix/omniflixhub/v3/x/onft/simulation" abci "github.com/cometbft/cometbft/abci/types" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" "github.com/cosmos/gogoproto/grpc" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/spf13/cobra" - "github.com/OmniFlix/omniflixhub/v2/x/onft/client/cli" - "github.com/OmniFlix/omniflixhub/v2/x/onft/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/client/cli" + "github.com/OmniFlix/omniflixhub/v3/x/onft/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" diff --git a/x/onft/simulation/decoder.go b/x/onft/simulation/decoder.go index 7509e630..3f4fb4a2 100644 --- a/x/onft/simulation/decoder.go +++ b/x/onft/simulation/decoder.go @@ -4,7 +4,7 @@ import ( "bytes" "fmt" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/types/kv" ) diff --git a/x/onft/simulation/genesis.go b/x/onft/simulation/genesis.go index 5f2e0acb..cca91d77 100644 --- a/x/onft/simulation/genesis.go +++ b/x/onft/simulation/genesis.go @@ -12,7 +12,7 @@ import ( "github.com/cosmos/cosmos-sdk/types/module" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" ) const ( diff --git a/x/onft/simulation/operations.go b/x/onft/simulation/operations.go index 4aafc4fc..8370dea5 100644 --- a/x/onft/simulation/operations.go +++ b/x/onft/simulation/operations.go @@ -5,9 +5,9 @@ import ( "math/rand" "strings" - appparams "github.com/OmniFlix/omniflixhub/v2/app/params" - "github.com/OmniFlix/omniflixhub/v2/x/onft/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/onft/types" + appparams "github.com/OmniFlix/omniflixhub/v3/app/params" + "github.com/OmniFlix/omniflixhub/v3/x/onft/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/onft/types" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" diff --git a/x/onft/types/codec.go b/x/onft/types/codec.go index 9859b073..4f58318e 100644 --- a/x/onft/types/codec.go +++ b/x/onft/types/codec.go @@ -1,7 +1,7 @@ package types import ( - "github.com/OmniFlix/omniflixhub/v2/x/onft/exported" + "github.com/OmniFlix/omniflixhub/v3/x/onft/exported" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/legacy" codectypes "github.com/cosmos/cosmos-sdk/codec/types" diff --git a/x/onft/types/collection.go b/x/onft/types/collection.go index 236d03f1..557a21ac 100644 --- a/x/onft/types/collection.go +++ b/x/onft/types/collection.go @@ -1,7 +1,7 @@ package types import ( - "github.com/OmniFlix/omniflixhub/v2/x/onft/exported" + "github.com/OmniFlix/omniflixhub/v3/x/onft/exported" ) func NewCollection(denom Denom, onfts []exported.ONFTI) (c Collection) { diff --git a/x/onft/types/constants.go b/x/onft/types/constants.go index 4ece88de..b15bf520 100644 --- a/x/onft/types/constants.go +++ b/x/onft/types/constants.go @@ -3,7 +3,7 @@ package types const ( MinDenomLen = 3 MaxDenomLen = 128 - MinIDLen = 3 + MinIDLen = 1 MaxIDLen = 128 MaxNameLen = 256 MaxDescriptionLen = 4096 diff --git a/x/onft/types/onft.go b/x/onft/types/onft.go index cc384cb8..faefa738 100644 --- a/x/onft/types/onft.go +++ b/x/onft/types/onft.go @@ -3,7 +3,7 @@ package types import ( "time" - "github.com/OmniFlix/omniflixhub/v2/x/onft/exported" + "github.com/OmniFlix/omniflixhub/v3/x/onft/exported" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/onft/types/validations.go b/x/onft/types/validations.go index b9f6ba47..0cd40e16 100644 --- a/x/onft/types/validations.go +++ b/x/onft/types/validations.go @@ -14,10 +14,10 @@ func ValidateONFTID(onftId string) error { ErrInvalidONFTID, "invalid onftId %s, length must be between [%d, %d]", onftId, MinIDLen, MaxIDLen) } - if !IsBeginWithAlpha(onftId) || !IsAlphaNumeric(onftId) { + if !IsAlphaNumeric(onftId) { return errorsmod.Wrapf( ErrInvalidONFTID, - "invalid onftId %s, only accepts alphanumeric characters and begin with an english letter", onftId) + "invalid onftId %s, only accepts alphanumeric characters", onftId) } return nil } diff --git a/x/tokenfactory/bindings/custom_msg_test.go b/x/tokenfactory/bindings/custom_msg_test.go new file mode 100644 index 00000000..e454a882 --- /dev/null +++ b/x/tokenfactory/bindings/custom_msg_test.go @@ -0,0 +1,330 @@ +package bindings_test + +import ( + "encoding/json" + "fmt" + "testing" + + "github.com/CosmWasm/wasmd/x/wasm/keeper" + wasmvmtypes "github.com/CosmWasm/wasmvm/types" + "github.com/stretchr/testify/require" + + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/OmniFlix/omniflixhub/v3/app" + bindings "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/bindings/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" +) + +func TestCreateDenomMsg(t *testing.T) { + creator := RandomAccountAddress() + customApp, ctx := SetupCustomApp(t, creator) + + lucky := RandomAccountAddress() + reflect := instantiateReflectContract(t, ctx, customApp, lucky) + require.NotEmpty(t, reflect) + + // Fund reflect contract with 100 base denom creation fees + reflectAmount := sdk.NewCoins(sdk.NewCoin(types.DefaultParams().DenomCreationFee[0].Denom, types.DefaultParams().DenomCreationFee[0].Amount.MulRaw(100))) + fundAccount(t, ctx, customApp, reflect, reflectAmount) + + msg := bindings.TokenFactoryMsg{CreateDenom: &bindings.CreateDenom{ + Subdenom: "SUN", + }} + err := executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) + + // query the denom and see if it matches + query := bindings.TokenFactoryQuery{ + FullDenom: &bindings.FullDenom{ + CreatorAddr: reflect.String(), + Subdenom: "SUN", + }, + } + resp := bindings.FullDenomResponse{} + queryCustom(t, ctx, customApp, reflect, query, &resp) + + require.Equal(t, resp.Denom, fmt.Sprintf("factory/%s/SUN", reflect.String())) +} + +func TestMintMsg(t *testing.T) { + creator := RandomAccountAddress() + customApp, ctx := SetupCustomApp(t, creator) + + lucky := RandomAccountAddress() + reflect := instantiateReflectContract(t, ctx, customApp, lucky) + require.NotEmpty(t, reflect) + + // Fund reflect contract with 100 base denom creation fees + reflectAmount := sdk.NewCoins(sdk.NewCoin(types.DefaultParams().DenomCreationFee[0].Denom, types.DefaultParams().DenomCreationFee[0].Amount.MulRaw(100))) + fundAccount(t, ctx, customApp, reflect, reflectAmount) + + // lucky was broke + balances := customApp.AppKeepers.BankKeeper.GetAllBalances(ctx, lucky) + require.Empty(t, balances) + + // Create denom for minting + msg := bindings.TokenFactoryMsg{CreateDenom: &bindings.CreateDenom{ + Subdenom: "SUN", + }} + err := executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) + sunDenom := fmt.Sprintf("factory/%s/%s", reflect.String(), msg.CreateDenom.Subdenom) + + amount, ok := sdk.NewIntFromString("808010808") + require.True(t, ok) + msg = bindings.TokenFactoryMsg{MintTokens: &bindings.MintTokens{ + Denom: sunDenom, + Amount: amount, + MintToAddress: lucky.String(), + }} + err = executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) + + balances = customApp.AppKeepers.BankKeeper.GetAllBalances(ctx, lucky) + require.Len(t, balances, 1) + coin := balances[0] + require.Equal(t, amount, coin.Amount) + require.Contains(t, coin.Denom, "factory/") + + // query the denom and see if it matches + query := bindings.TokenFactoryQuery{ + FullDenom: &bindings.FullDenom{ + CreatorAddr: reflect.String(), + Subdenom: "SUN", + }, + } + resp := bindings.FullDenomResponse{} + queryCustom(t, ctx, customApp, reflect, query, &resp) + + require.Equal(t, resp.Denom, coin.Denom) + + // mint the same denom again + err = executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) + + balances = customApp.AppKeepers.BankKeeper.GetAllBalances(ctx, lucky) + require.Len(t, balances, 1) + coin = balances[0] + require.Equal(t, amount.MulRaw(2), coin.Amount) + require.Contains(t, coin.Denom, "factory/") + + // query the denom and see if it matches + query = bindings.TokenFactoryQuery{ + FullDenom: &bindings.FullDenom{ + CreatorAddr: reflect.String(), + Subdenom: "SUN", + }, + } + resp = bindings.FullDenomResponse{} + queryCustom(t, ctx, customApp, reflect, query, &resp) + + require.Equal(t, resp.Denom, coin.Denom) + + // now mint another amount / denom + // create it first + msg = bindings.TokenFactoryMsg{CreateDenom: &bindings.CreateDenom{ + Subdenom: "MOON", + }} + err = executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) + moonDenom := fmt.Sprintf("factory/%s/%s", reflect.String(), msg.CreateDenom.Subdenom) + + amount = amount.SubRaw(1) + msg = bindings.TokenFactoryMsg{MintTokens: &bindings.MintTokens{ + Denom: moonDenom, + Amount: amount, + MintToAddress: lucky.String(), + }} + err = executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) + + balances = customApp.AppKeepers.BankKeeper.GetAllBalances(ctx, lucky) + require.Len(t, balances, 2) + coin = balances[0] + require.Equal(t, amount, coin.Amount) + require.Contains(t, coin.Denom, "factory/") + + // query the denom and see if it matches + query = bindings.TokenFactoryQuery{ + FullDenom: &bindings.FullDenom{ + CreatorAddr: reflect.String(), + Subdenom: "MOON", + }, + } + resp = bindings.FullDenomResponse{} + queryCustom(t, ctx, customApp, reflect, query, &resp) + + require.Equal(t, resp.Denom, coin.Denom) + + // and check the first denom is unchanged + coin = balances[1] + require.Equal(t, amount.AddRaw(1).MulRaw(2), coin.Amount) + require.Contains(t, coin.Denom, "factory/") + + // query the denom and see if it matches + query = bindings.TokenFactoryQuery{ + FullDenom: &bindings.FullDenom{ + CreatorAddr: reflect.String(), + Subdenom: "SUN", + }, + } + resp = bindings.FullDenomResponse{} + queryCustom(t, ctx, customApp, reflect, query, &resp) + + require.Equal(t, resp.Denom, coin.Denom) +} + +func TestForceTransfer(t *testing.T) { + creator := RandomAccountAddress() + customApp, ctx := SetupCustomApp(t, creator) + + lucky := RandomAccountAddress() + rcpt := RandomAccountAddress() + reflect := instantiateReflectContract(t, ctx, customApp, lucky) + require.NotEmpty(t, reflect) + + // Fund reflect contract with 100 base denom creation fees + reflectAmount := sdk.NewCoins(sdk.NewCoin(types.DefaultParams().DenomCreationFee[0].Denom, types.DefaultParams().DenomCreationFee[0].Amount.MulRaw(100))) + fundAccount(t, ctx, customApp, reflect, reflectAmount) + + // lucky was broke + balances := customApp.AppKeepers.BankKeeper.GetAllBalances(ctx, lucky) + require.Empty(t, balances) + + // Create denom for minting + msg := bindings.TokenFactoryMsg{CreateDenom: &bindings.CreateDenom{ + Subdenom: "SUN", + }} + err := executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) + sunDenom := fmt.Sprintf("factory/%s/%s", reflect.String(), msg.CreateDenom.Subdenom) + + amount, ok := sdk.NewIntFromString("808010808") + require.True(t, ok) + + // Mint new tokens to lucky + msg = bindings.TokenFactoryMsg{MintTokens: &bindings.MintTokens{ + Denom: sunDenom, + Amount: amount, + MintToAddress: lucky.String(), + }} + err = executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) + + // Force move 100 tokens from lucky to rcpt + msg = bindings.TokenFactoryMsg{ForceTransfer: &bindings.ForceTransfer{ + Denom: sunDenom, + Amount: sdk.NewInt(100), + FromAddress: lucky.String(), + ToAddress: rcpt.String(), + }} + err = executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) + + // check the balance of rcpt + balances = customApp.AppKeepers.BankKeeper.GetAllBalances(ctx, rcpt) + require.Len(t, balances, 1) + coin := balances[0] + require.Equal(t, sdk.NewInt(100), coin.Amount) +} + +func TestBurnMsg(t *testing.T) { + creator := RandomAccountAddress() + customApp, ctx := SetupCustomApp(t, creator) + + lucky := RandomAccountAddress() + reflect := instantiateReflectContract(t, ctx, customApp, lucky) + require.NotEmpty(t, reflect) + + // Fund reflect contract with 100 base denom creation fees + reflectAmount := sdk.NewCoins(sdk.NewCoin(types.DefaultParams().DenomCreationFee[0].Denom, types.DefaultParams().DenomCreationFee[0].Amount.MulRaw(100))) + fundAccount(t, ctx, customApp, reflect, reflectAmount) + + // lucky was broke + balances := customApp.AppKeepers.BankKeeper.GetAllBalances(ctx, lucky) + require.Empty(t, balances) + + // Create denom for minting + msg := bindings.TokenFactoryMsg{CreateDenom: &bindings.CreateDenom{ + Subdenom: "SUN", + }} + err := executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) + sunDenom := fmt.Sprintf("factory/%s/%s", reflect.String(), msg.CreateDenom.Subdenom) + + amount, ok := sdk.NewIntFromString("808010809") + require.True(t, ok) + + msg = bindings.TokenFactoryMsg{MintTokens: &bindings.MintTokens{ + Denom: sunDenom, + Amount: amount, + MintToAddress: lucky.String(), + }} + err = executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) + + // can burn from different address with burnFrom + amt, ok := sdk.NewIntFromString("1") + require.True(t, ok) + msg = bindings.TokenFactoryMsg{BurnTokens: &bindings.BurnTokens{ + Denom: sunDenom, + Amount: amt, + BurnFromAddress: lucky.String(), + }} + err = executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) + + // lucky needs to send balance to reflect contract to burn it + luckyBalance := customApp.AppKeepers.BankKeeper.GetAllBalances(ctx, lucky) + err = customApp.AppKeepers.BankKeeper.SendCoins(ctx, lucky, reflect, luckyBalance) + require.NoError(t, err) + + msg = bindings.TokenFactoryMsg{BurnTokens: &bindings.BurnTokens{ + Denom: sunDenom, + Amount: amount.Abs().Sub(sdk.NewInt(1)), + BurnFromAddress: reflect.String(), + }} + err = executeCustom(t, ctx, customApp, reflect, lucky, msg, sdk.Coin{}) + require.NoError(t, err) +} + +type ReflectExec struct { + ReflectMsg *ReflectMsgs `json:"reflect_msg,omitempty"` + ReflectSubMsg *ReflectSubMsgs `json:"reflect_sub_msg,omitempty"` +} + +type ReflectMsgs struct { + Msgs []wasmvmtypes.CosmosMsg `json:"msgs"` +} + +type ReflectSubMsgs struct { + Msgs []wasmvmtypes.SubMsg `json:"msgs"` +} + +func executeCustom(t *testing.T, ctx sdk.Context, customApp *app.OmniFlixApp, contract sdk.AccAddress, sender sdk.AccAddress, msg bindings.TokenFactoryMsg, funds sdk.Coin) error { //nolint:unparam // funds is always nil but could change in the future. + t.Helper() + + customBz, err := json.Marshal(msg) + require.NoError(t, err) + + reflectMsg := ReflectExec{ + ReflectMsg: &ReflectMsgs{ + Msgs: []wasmvmtypes.CosmosMsg{{ + Custom: customBz, + }}, + }, + } + reflectBz, err := json.Marshal(reflectMsg) + require.NoError(t, err) + + // no funds sent if amount is 0 + var coins sdk.Coins + if !funds.Amount.IsNil() { + coins = sdk.Coins{funds} + } + + contractKeeper := keeper.NewDefaultPermissionKeeper(customApp.AppKeepers.WasmKeeper) + _, err = contractKeeper.Execute(ctx, contract, sender, reflectBz, coins) + return err +} diff --git a/x/tokenfactory/bindings/custom_query_test.go b/x/tokenfactory/bindings/custom_query_test.go new file mode 100644 index 00000000..a260e44f --- /dev/null +++ b/x/tokenfactory/bindings/custom_query_test.go @@ -0,0 +1,73 @@ +package bindings_test + +import ( + "encoding/json" + "fmt" + "testing" + + wasmvmtypes "github.com/CosmWasm/wasmvm/types" + "github.com/stretchr/testify/require" + + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/OmniFlix/omniflixhub/v3/app" + bindings "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/bindings/types" +) + +func TestQueryFullDenom(t *testing.T) { + actor := RandomAccountAddress() + customApp, ctx := SetupCustomApp(t, actor) + + reflect := instantiateReflectContract(t, ctx, customApp, actor) + require.NotEmpty(t, reflect) + + // query full denom + query := bindings.TokenFactoryQuery{ + FullDenom: &bindings.FullDenom{ + CreatorAddr: reflect.String(), + Subdenom: "ustart", + }, + } + resp := bindings.FullDenomResponse{} + queryCustom(t, ctx, customApp, reflect, query, &resp) + + expected := fmt.Sprintf("factory/%s/ustart", reflect.String()) + require.EqualValues(t, expected, resp.Denom) +} + +type ReflectQuery struct { + Chain *ChainRequest `json:"chain,omitempty"` +} + +type ChainRequest struct { + Request wasmvmtypes.QueryRequest `json:"request"` +} + +type ChainResponse struct { + Data []byte `json:"data"` +} + +func queryCustom(t *testing.T, ctx sdk.Context, customApp *app.OmniFlixApp, contract sdk.AccAddress, request bindings.TokenFactoryQuery, response interface{}) { + t.Helper() + + msgBz, err := json.Marshal(request) + require.NoError(t, err) + fmt.Println("queryCustom1", string(msgBz)) + + query := ReflectQuery{ + Chain: &ChainRequest{ + Request: wasmvmtypes.QueryRequest{Custom: msgBz}, + }, + } + queryBz, err := json.Marshal(query) + require.NoError(t, err) + fmt.Println("queryCustom2", string(queryBz)) + + resBz, err := customApp.AppKeepers.WasmKeeper.QuerySmart(ctx, contract, queryBz) + require.NoError(t, err) + var resp ChainResponse + err = json.Unmarshal(resBz, &resp) + require.NoError(t, err) + err = json.Unmarshal(resp.Data, response) + require.NoError(t, err) +} diff --git a/x/tokenfactory/bindings/helpers_test.go b/x/tokenfactory/bindings/helpers_test.go new file mode 100644 index 00000000..99401af4 --- /dev/null +++ b/x/tokenfactory/bindings/helpers_test.go @@ -0,0 +1,104 @@ +package bindings_test + +import ( + "os" + "testing" + "time" + + "github.com/CosmWasm/wasmd/x/wasm/keeper" + "github.com/stretchr/testify/require" + + "github.com/cometbft/cometbft/crypto" + "github.com/cometbft/cometbft/crypto/ed25519" + tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + + sdk "github.com/cosmos/cosmos-sdk/types" + banktestutil "github.com/cosmos/cosmos-sdk/x/bank/testutil" + + "github.com/OmniFlix/omniflixhub/v3/app" +) + +func CreateTestInput(t *testing.T) (*app.OmniFlixApp, sdk.Context) { + t.Helper() + + omniflix := app.Setup(t) + ctx := omniflix.BaseApp.NewContext(false, tmproto.Header{Height: 1, ChainID: "testing", Time: time.Now().UTC()}) + return omniflix, ctx +} + +func FundAccount(t *testing.T, ctx sdk.Context, customApp *app.OmniFlixApp, acct sdk.AccAddress) { + t.Helper() + + err := banktestutil.FundAccount(customApp.AppKeepers.BankKeeper, ctx, acct, sdk.NewCoins( + sdk.NewCoin("uflix", sdk.NewInt(10000000000)), + )) + require.NoError(t, err) +} + +// we need to make this deterministic (same every test run), as content might affect gas costs +func keyPubAddr() (crypto.PrivKey, crypto.PubKey, sdk.AccAddress) { + key := ed25519.GenPrivKey() + pub := key.PubKey() + addr := sdk.AccAddress(pub.Address()) + return key, pub, addr +} + +func RandomAccountAddress() sdk.AccAddress { + _, _, addr := keyPubAddr() + return addr +} + +func RandomBech32AccountAddress() string { + return RandomAccountAddress().String() +} + +func storeReflectCode(t *testing.T, ctx sdk.Context, customApp *app.OmniFlixApp, addr sdk.AccAddress) uint64 { + t.Helper() + + wasmCode, err := os.ReadFile("./testdata/token_reflect.wasm") + require.NoError(t, err) + + contractKeeper := keeper.NewDefaultPermissionKeeper(customApp.AppKeepers.WasmKeeper) + codeID, _, err := contractKeeper.Create(ctx, addr, wasmCode, nil) + require.NoError(t, err) + + return codeID +} + +func instantiateReflectContract(t *testing.T, ctx sdk.Context, customApp *app.OmniFlixApp, funder sdk.AccAddress) sdk.AccAddress { + t.Helper() + + initMsgBz := []byte("{}") + contractKeeper := keeper.NewDefaultPermissionKeeper(customApp.AppKeepers.WasmKeeper) + codeID := uint64(1) + addr, _, err := contractKeeper.Instantiate(ctx, codeID, funder, funder, initMsgBz, "demo contract", nil) + require.NoError(t, err) + + return addr +} + +func fundAccount(t *testing.T, ctx sdk.Context, customApp *app.OmniFlixApp, addr sdk.AccAddress, coins sdk.Coins) { + t.Helper() + + err := banktestutil.FundAccount( + customApp.AppKeepers.BankKeeper, + ctx, + addr, + coins, + ) + require.NoError(t, err) +} + +func SetupCustomApp(t *testing.T, addr sdk.AccAddress) (*app.OmniFlixApp, sdk.Context) { + t.Helper() + + customApp, ctx := CreateTestInput(t) + wasmKeeper := customApp.AppKeepers.WasmKeeper + + storeReflectCode(t, ctx, customApp, addr) + + cInfo := wasmKeeper.GetCodeInfo(ctx, 1) + require.NotNil(t, cInfo) + + return customApp, ctx +} diff --git a/x/tokenfactory/bindings/message_plugin.go b/x/tokenfactory/bindings/message_plugin.go new file mode 100644 index 00000000..fd496cbf --- /dev/null +++ b/x/tokenfactory/bindings/message_plugin.go @@ -0,0 +1,368 @@ +package bindings + +import ( + "encoding/json" + + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" + wasmvmtypes "github.com/CosmWasm/wasmvm/types" + + errorsmod "cosmossdk.io/errors" + + sdk "github.com/cosmos/cosmos-sdk/types" + bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + + bindingstypes "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/bindings/types" + tokenfactorykeeper "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/keeper" + tokenfactorytypes "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" +) + +// CustomMessageDecorator returns decorator for custom CosmWasm bindings messages +func CustomMessageDecorator(bank bankkeeper.Keeper, tokenFactory *tokenfactorykeeper.Keeper) func(wasmkeeper.Messenger) wasmkeeper.Messenger { + return func(old wasmkeeper.Messenger) wasmkeeper.Messenger { + return &CustomMessenger{ + wrapped: old, + bank: bank, + tokenFactory: tokenFactory, + } + } +} + +type CustomMessenger struct { + wrapped wasmkeeper.Messenger + bank bankkeeper.Keeper + tokenFactory *tokenfactorykeeper.Keeper +} + +var _ wasmkeeper.Messenger = (*CustomMessenger)(nil) + +// DispatchMsg executes on the contractMsg. +func (m *CustomMessenger) DispatchMsg(ctx sdk.Context, contractAddr sdk.AccAddress, contractIBCPortID string, msg wasmvmtypes.CosmosMsg) ([]sdk.Event, [][]byte, error) { + if msg.Custom != nil { + // only handle the happy path where this is really creating / minting / swapping ... + // leave everything else for the wrapped version + var contractMsg bindingstypes.TokenFactoryMsg + if err := json.Unmarshal(msg.Custom, &contractMsg); err != nil { + return nil, nil, errorsmod.Wrap(err, "token factory msg") + } + + if contractMsg.CreateDenom != nil { + return m.createDenom(ctx, contractAddr, contractMsg.CreateDenom) + } + if contractMsg.MintTokens != nil { + return m.mintTokens(ctx, contractAddr, contractMsg.MintTokens) + } + if contractMsg.ChangeAdmin != nil { + return m.changeAdmin(ctx, contractAddr, contractMsg.ChangeAdmin) + } + if contractMsg.BurnTokens != nil { + return m.burnTokens(ctx, contractAddr, contractMsg.BurnTokens) + } + if contractMsg.SetMetadata != nil { + return m.setMetadata(ctx, contractAddr, contractMsg.SetMetadata) + } + if contractMsg.ForceTransfer != nil { + return m.forceTransfer(ctx, contractAddr, contractMsg.ForceTransfer) + } + } + return m.wrapped.DispatchMsg(ctx, contractAddr, contractIBCPortID, msg) +} + +// createDenom creates a new token denom +func (m *CustomMessenger) createDenom(ctx sdk.Context, contractAddr sdk.AccAddress, createDenom *bindingstypes.CreateDenom) ([]sdk.Event, [][]byte, error) { + bz, err := PerformCreateDenom(m.tokenFactory, m.bank, ctx, contractAddr, createDenom) + if err != nil { + return nil, nil, errorsmod.Wrap(err, "perform create denom") + } + // TODO: double check how this is all encoded to the contract + return nil, [][]byte{bz}, nil +} + +// PerformCreateDenom is used with createDenom to create a token denom; validates the msgCreateDenom. +func PerformCreateDenom(f *tokenfactorykeeper.Keeper, b bankkeeper.Keeper, ctx sdk.Context, contractAddr sdk.AccAddress, createDenom *bindingstypes.CreateDenom) ([]byte, error) { + if createDenom == nil { + return nil, wasmvmtypes.InvalidRequest{Err: "create denom null create denom"} + } + + msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) + + msgCreateDenom := tokenfactorytypes.NewMsgCreateDenom(contractAddr.String(), createDenom.Subdenom) + + if err := msgCreateDenom.ValidateBasic(); err != nil { + return nil, errorsmod.Wrap(err, "failed validating MsgCreateDenom") + } + + // Create denom + resp, err := msgServer.CreateDenom( + sdk.WrapSDKContext(ctx), + msgCreateDenom, + ) + if err != nil { + return nil, errorsmod.Wrap(err, "creating denom") + } + + if createDenom.Metadata != nil { + newDenom := resp.NewTokenDenom + err := PerformSetMetadata(f, b, ctx, contractAddr, newDenom, *createDenom.Metadata) + if err != nil { + return nil, errorsmod.Wrap(err, "setting metadata") + } + } + + return resp.Marshal() +} + +// mintTokens mints tokens of a specified denom to an address. +func (m *CustomMessenger) mintTokens(ctx sdk.Context, contractAddr sdk.AccAddress, mint *bindingstypes.MintTokens) ([]sdk.Event, [][]byte, error) { + err := PerformMint(m.tokenFactory, m.bank, ctx, contractAddr, mint) + if err != nil { + return nil, nil, errorsmod.Wrap(err, "perform mint") + } + return nil, nil, nil +} + +// PerformMint used with mintTokens to validate the mint message and mint through token factory. +func PerformMint(f *tokenfactorykeeper.Keeper, b bankkeeper.Keeper, ctx sdk.Context, contractAddr sdk.AccAddress, mint *bindingstypes.MintTokens) error { + if mint == nil { + return wasmvmtypes.InvalidRequest{Err: "mint token null mint"} + } + rcpt, err := parseAddress(mint.MintToAddress) + if err != nil { + return err + } + + coin := sdk.Coin{Denom: mint.Denom, Amount: mint.Amount} + sdkMsg := tokenfactorytypes.NewMsgMint(contractAddr.String(), coin) + + if err = sdkMsg.ValidateBasic(); err != nil { + return err + } + + // Mint through token factory / message server + msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) + _, err = msgServer.Mint(sdk.WrapSDKContext(ctx), sdkMsg) + if err != nil { + return errorsmod.Wrap(err, "minting coins from message") + } + + if b.BlockedAddr(rcpt) { + return errorsmod.Wrapf(err, "minting coins to blocked address %s", rcpt.String()) + } + + err = b.SendCoins(ctx, contractAddr, rcpt, sdk.NewCoins(coin)) + if err != nil { + return errorsmod.Wrap(err, "sending newly minted coins from message") + } + return nil +} + +// changeAdmin changes the admin. +func (m *CustomMessenger) changeAdmin(ctx sdk.Context, contractAddr sdk.AccAddress, changeAdmin *bindingstypes.ChangeAdmin) ([]sdk.Event, [][]byte, error) { + err := ChangeAdmin(m.tokenFactory, ctx, contractAddr, changeAdmin) + if err != nil { + return nil, nil, errorsmod.Wrap(err, "failed to change admin") + } + return nil, nil, nil +} + +// ChangeAdmin is used with changeAdmin to validate changeAdmin messages and to dispatch. +func ChangeAdmin(f *tokenfactorykeeper.Keeper, ctx sdk.Context, contractAddr sdk.AccAddress, changeAdmin *bindingstypes.ChangeAdmin) error { + if changeAdmin == nil { + return wasmvmtypes.InvalidRequest{Err: "changeAdmin is nil"} + } + newAdminAddr, err := parseAddress(changeAdmin.NewAdminAddress) + if err != nil { + return err + } + + changeAdminMsg := tokenfactorytypes.NewMsgChangeAdmin(contractAddr.String(), changeAdmin.Denom, newAdminAddr.String()) + if err := changeAdminMsg.ValidateBasic(); err != nil { + return err + } + + msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) + _, err = msgServer.ChangeAdmin(sdk.WrapSDKContext(ctx), changeAdminMsg) + if err != nil { + return errorsmod.Wrap(err, "failed changing admin from message") + } + return nil +} + +// burnTokens burns tokens. +func (m *CustomMessenger) burnTokens(ctx sdk.Context, contractAddr sdk.AccAddress, burn *bindingstypes.BurnTokens) ([]sdk.Event, [][]byte, error) { + err := PerformBurn(m.tokenFactory, ctx, contractAddr, burn) + if err != nil { + return nil, nil, errorsmod.Wrap(err, "perform burn") + } + return nil, nil, nil +} + +// PerformBurn performs token burning after validating tokenBurn message. +func PerformBurn(f *tokenfactorykeeper.Keeper, ctx sdk.Context, contractAddr sdk.AccAddress, burn *bindingstypes.BurnTokens) error { + if burn == nil { + return wasmvmtypes.InvalidRequest{Err: "burn token null mint"} + } + + coin := sdk.Coin{Denom: burn.Denom, Amount: burn.Amount} + sdkMsg := tokenfactorytypes.NewMsgBurn(contractAddr.String(), coin) + if burn.BurnFromAddress != "" { + sdkMsg = tokenfactorytypes.NewMsgBurnFrom(contractAddr.String(), coin, burn.BurnFromAddress) + } + + if err := sdkMsg.ValidateBasic(); err != nil { + return err + } + + // Burn through token factory / message server + msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) + _, err := msgServer.Burn(sdk.WrapSDKContext(ctx), sdkMsg) + if err != nil { + return errorsmod.Wrap(err, "burning coins from message") + } + return nil +} + +// forceTransfer moves tokens. +func (m *CustomMessenger) forceTransfer(ctx sdk.Context, contractAddr sdk.AccAddress, forcetransfer *bindingstypes.ForceTransfer) ([]sdk.Event, [][]byte, error) { + err := PerformForceTransfer(m.tokenFactory, ctx, contractAddr, forcetransfer) + if err != nil { + return nil, nil, errorsmod.Wrap(err, "perform force transfer") + } + return nil, nil, nil +} + +// PerformForceTransfer performs token moving after validating tokenForceTransfer message. +func PerformForceTransfer(f *tokenfactorykeeper.Keeper, ctx sdk.Context, contractAddr sdk.AccAddress, forcetransfer *bindingstypes.ForceTransfer) error { + if forcetransfer == nil { + return wasmvmtypes.InvalidRequest{Err: "force transfer null"} + } + + _, err := parseAddress(forcetransfer.FromAddress) + if err != nil { + return err + } + + _, err = parseAddress(forcetransfer.ToAddress) + if err != nil { + return err + } + + coin := sdk.Coin{Denom: forcetransfer.Denom, Amount: forcetransfer.Amount} + sdkMsg := tokenfactorytypes.NewMsgForceTransfer(contractAddr.String(), coin, forcetransfer.FromAddress, forcetransfer.ToAddress) + + if err := sdkMsg.ValidateBasic(); err != nil { + return err + } + + // Transfer through token factory / message server + msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) + _, err = msgServer.ForceTransfer(sdk.WrapSDKContext(ctx), sdkMsg) + if err != nil { + return errorsmod.Wrap(err, "force transferring from message") + } + return nil +} + +// createDenom creates a new token denom +func (m *CustomMessenger) setMetadata(ctx sdk.Context, contractAddr sdk.AccAddress, setMetadata *bindingstypes.SetMetadata) ([]sdk.Event, [][]byte, error) { + err := PerformSetMetadata(m.tokenFactory, m.bank, ctx, contractAddr, setMetadata.Denom, setMetadata.Metadata) + if err != nil { + return nil, nil, errorsmod.Wrap(err, "perform create denom") + } + return nil, nil, nil +} + +// PerformSetMetadata is used with setMetadata to add new metadata +// It also is called inside CreateDenom if optional metadata field is set +func PerformSetMetadata(f *tokenfactorykeeper.Keeper, b bankkeeper.Keeper, ctx sdk.Context, contractAddr sdk.AccAddress, denom string, metadata bindingstypes.Metadata) error { + // ensure contract address is admin of denom + auth, err := f.GetAuthorityMetadata(ctx, denom) + if err != nil { + return err + } + if auth.Admin != contractAddr.String() { + return wasmvmtypes.InvalidRequest{Err: "only admin can set metadata"} + } + + // ensure we are setting proper denom metadata (bank uses Base field, fill it if missing) + if metadata.Base == "" { + metadata.Base = denom + } else if metadata.Base != denom { + // this is the key that we set + return wasmvmtypes.InvalidRequest{Err: "Base must be the same as denom"} + } + + // Create and validate the metadata + bankMetadata := WasmMetadataToSdk(metadata) + if err := bankMetadata.Validate(); err != nil { + return err + } + + b.SetDenomMetaData(ctx, bankMetadata) + return nil +} + +// GetFullDenom is a function, not method, so the message_plugin can use it +func GetFullDenom(contract string, subDenom string) (string, error) { + // Address validation + if _, err := parseAddress(contract); err != nil { + return "", err + } + fullDenom, err := tokenfactorytypes.GetTokenDenom(contract, subDenom) + if err != nil { + return "", errorsmod.Wrap(err, "validate sub-denom") + } + + return fullDenom, nil +} + +// parseAddress parses address from bech32 string and verifies its format. +func parseAddress(addr string) (sdk.AccAddress, error) { + parsed, err := sdk.AccAddressFromBech32(addr) + if err != nil { + return nil, errorsmod.Wrap(err, "address from bech32") + } + err = sdk.VerifyAddressFormat(parsed) + if err != nil { + return nil, errorsmod.Wrap(err, "verify address format") + } + return parsed, nil +} + +func WasmMetadataToSdk(metadata bindingstypes.Metadata) banktypes.Metadata { + denoms := []*banktypes.DenomUnit{} + for _, unit := range metadata.DenomUnits { + denoms = append(denoms, &banktypes.DenomUnit{ + Denom: unit.Denom, + Exponent: unit.Exponent, + Aliases: unit.Aliases, + }) + } + return banktypes.Metadata{ + Description: metadata.Description, + Display: metadata.Display, + Base: metadata.Base, + Name: metadata.Name, + Symbol: metadata.Symbol, + DenomUnits: denoms, + } +} + +func SdkMetadataToWasm(metadata banktypes.Metadata) *bindingstypes.Metadata { + denoms := []bindingstypes.DenomUnit{} + for _, unit := range metadata.DenomUnits { + denoms = append(denoms, bindingstypes.DenomUnit{ + Denom: unit.Denom, + Exponent: unit.Exponent, + Aliases: unit.Aliases, + }) + } + return &bindingstypes.Metadata{ + Description: metadata.Description, + Display: metadata.Display, + Base: metadata.Base, + Name: metadata.Name, + Symbol: metadata.Symbol, + DenomUnits: denoms, + } +} diff --git a/x/tokenfactory/bindings/queries.go b/x/tokenfactory/bindings/queries.go new file mode 100644 index 00000000..c89ce613 --- /dev/null +++ b/x/tokenfactory/bindings/queries.go @@ -0,0 +1,57 @@ +package bindings + +import ( + "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" + + bindingstypes "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/bindings/types" + tokenfactorykeeper "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/keeper" +) + +type QueryPlugin struct { + bankKeeper bankkeeper.Keeper + tokenFactoryKeeper *tokenfactorykeeper.Keeper +} + +// NewQueryPlugin returns a reference to a new QueryPlugin. +func NewQueryPlugin(b bankkeeper.Keeper, tfk *tokenfactorykeeper.Keeper) *QueryPlugin { + return &QueryPlugin{ + bankKeeper: b, + tokenFactoryKeeper: tfk, + } +} + +// GetDenomAdmin is a query to get denom admin. +func (qp QueryPlugin) GetDenomAdmin(ctx sdk.Context, denom string) (*bindingstypes.AdminResponse, error) { + metadata, err := qp.tokenFactoryKeeper.GetAuthorityMetadata(ctx, denom) + if err != nil { + return nil, fmt.Errorf("failed to get admin for denom: %s", denom) + } + return &bindingstypes.AdminResponse{Admin: metadata.Admin}, nil +} + +func (qp QueryPlugin) GetDenomsByCreator(ctx sdk.Context, creator string) (*bindingstypes.DenomsByCreatorResponse, error) { + // TODO: validate creator address + denoms := qp.tokenFactoryKeeper.GetDenomsFromCreator(ctx, creator) + return &bindingstypes.DenomsByCreatorResponse{Denoms: denoms}, nil +} + +func (qp QueryPlugin) GetMetadata(ctx sdk.Context, denom string) (*bindingstypes.MetadataResponse, error) { + metadata, found := qp.bankKeeper.GetDenomMetaData(ctx, denom) + var parsed *bindingstypes.Metadata + if found { + parsed = SdkMetadataToWasm(metadata) + } + return &bindingstypes.MetadataResponse{Metadata: parsed}, nil +} + +func (qp QueryPlugin) GetParams(ctx sdk.Context) (*bindingstypes.ParamsResponse, error) { + params := qp.tokenFactoryKeeper.GetParams(ctx) + return &bindingstypes.ParamsResponse{ + Params: bindingstypes.Params{ + DenomCreationFee: ConvertSdkCoinsToWasmCoins(params.DenomCreationFee), + }, + }, nil +} diff --git a/x/tokenfactory/bindings/query_plugin.go b/x/tokenfactory/bindings/query_plugin.go new file mode 100644 index 00000000..0707730c --- /dev/null +++ b/x/tokenfactory/bindings/query_plugin.go @@ -0,0 +1,117 @@ +package bindings + +import ( + "encoding/json" + "fmt" + + errorsmod "cosmossdk.io/errors" + wasmvmtypes "github.com/CosmWasm/wasmvm/types" + bindingstypes "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/bindings/types" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// CustomQuerier dispatches custom CosmWasm bindings queries. +func CustomQuerier(qp *QueryPlugin) func(ctx sdk.Context, request json.RawMessage) ([]byte, error) { + return func(ctx sdk.Context, request json.RawMessage) ([]byte, error) { + var contractQuery bindingstypes.TokenFactoryQuery + if err := json.Unmarshal(request, &contractQuery); err != nil { + return nil, errorsmod.Wrap(err, "osmosis query") + } + + switch { + case contractQuery.FullDenom != nil: + creator := contractQuery.FullDenom.CreatorAddr + subdenom := contractQuery.FullDenom.Subdenom + + fullDenom, err := GetFullDenom(creator, subdenom) + if err != nil { + return nil, errorsmod.Wrap(err, "osmo full denom query") + } + + res := bindingstypes.FullDenomResponse{ + Denom: fullDenom, + } + + bz, err := json.Marshal(res) + if err != nil { + return nil, errorsmod.Wrap(err, "failed to marshal FullDenomResponse") + } + + return bz, nil + + case contractQuery.Admin != nil: + res, err := qp.GetDenomAdmin(ctx, contractQuery.Admin.Denom) + if err != nil { + return nil, err + } + + bz, err := json.Marshal(res) + if err != nil { + return nil, fmt.Errorf("failed to JSON marshal AdminResponse: %w", err) + } + + return bz, nil + + case contractQuery.Metadata != nil: + res, err := qp.GetMetadata(ctx, contractQuery.Metadata.Denom) + if err != nil { + return nil, err + } + + bz, err := json.Marshal(res) + if err != nil { + return nil, fmt.Errorf("failed to JSON marshal MetadataResponse: %w", err) + } + + return bz, nil + + case contractQuery.DenomsByCreator != nil: + res, err := qp.GetDenomsByCreator(ctx, contractQuery.DenomsByCreator.Creator) + if err != nil { + return nil, err + } + + bz, err := json.Marshal(res) + if err != nil { + return nil, fmt.Errorf("failed to JSON marshal DenomsByCreatorResponse: %w", err) + } + + return bz, nil + + case contractQuery.Params != nil: + res, err := qp.GetParams(ctx) + if err != nil { + return nil, err + } + + bz, err := json.Marshal(res) + if err != nil { + return nil, fmt.Errorf("failed to JSON marshal ParamsResponse: %w", err) + } + + return bz, nil + + default: + return nil, wasmvmtypes.UnsupportedRequest{Kind: "unknown token query variant"} + } + } +} + +// ConvertSdkCoinsToWasmCoins converts sdk type coins to wasm vm type coins +func ConvertSdkCoinsToWasmCoins(coins []sdk.Coin) wasmvmtypes.Coins { + var toSend wasmvmtypes.Coins + for _, coin := range coins { + c := ConvertSdkCoinToWasmCoin(coin) + toSend = append(toSend, c) + } + return toSend +} + +// ConvertSdkCoinToWasmCoin converts a sdk type coin to a wasm vm type coin +func ConvertSdkCoinToWasmCoin(coin sdk.Coin) wasmvmtypes.Coin { + return wasmvmtypes.Coin{ + Denom: coin.Denom, + // Note: tokenfactory tokens have 18 decimal places, so 10^22 is common, no longer in u64 range + Amount: coin.Amount.String(), + } +} diff --git a/x/tokenfactory/bindings/testdata/README.md b/x/tokenfactory/bindings/testdata/README.md new file mode 100644 index 00000000..221c6518 --- /dev/null +++ b/x/tokenfactory/bindings/testdata/README.md @@ -0,0 +1,5 @@ +# token-reflect-contract + + + +Commit: 834bb36573fb21c74f8e78207308d9001df127a2 diff --git a/x/tokenfactory/bindings/testdata/token_reflect.wasm b/x/tokenfactory/bindings/testdata/token_reflect.wasm new file mode 100755 index 00000000..0526f174 Binary files /dev/null and b/x/tokenfactory/bindings/testdata/token_reflect.wasm differ diff --git a/x/tokenfactory/bindings/types/msg.go b/x/tokenfactory/bindings/types/msg.go new file mode 100644 index 00000000..81d9a68f --- /dev/null +++ b/x/tokenfactory/bindings/types/msg.go @@ -0,0 +1,64 @@ +package types + +import "cosmossdk.io/math" + +type TokenFactoryMsg struct { + /// Contracts can create denoms, namespaced under the contract's address. + /// A contract may create any number of independent sub-denoms. + CreateDenom *CreateDenom `json:"create_denom,omitempty"` + /// Contracts can change the admin of a denom that they are the admin of. + ChangeAdmin *ChangeAdmin `json:"change_admin,omitempty"` + /// Contracts can mint native tokens for an existing factory denom + /// that they are the admin of. + MintTokens *MintTokens `json:"mint_tokens,omitempty"` + /// Contracts can burn native tokens for an existing factory denom + /// that they are the admin of. + /// Currently, the burn from address must be the admin contract. + BurnTokens *BurnTokens `json:"burn_tokens,omitempty"` + /// Sets the metadata on a denom which the contract controls + SetMetadata *SetMetadata `json:"set_metadata,omitempty"` + /// Forces a transfer of tokens from one address to another. + ForceTransfer *ForceTransfer `json:"force_transfer,omitempty"` +} + +// CreateDenom creates a new factory denom, of denomination: +// factory/{creating contract address}/{Subdenom} +// Subdenom can be of length at most 44 characters, in [0-9a-zA-Z./] +// The (creating contract address, subdenom) pair must be unique. +// The created denom's admin is the creating contract address, +// but this admin can be changed using the ChangeAdmin binding. +type CreateDenom struct { + Subdenom string `json:"subdenom"` + Metadata *Metadata `json:"metadata,omitempty"` +} + +// ChangeAdmin changes the admin for a factory denom. +// If the NewAdminAddress is empty, the denom has no admin. +type ChangeAdmin struct { + Denom string `json:"denom"` + NewAdminAddress string `json:"new_admin_address"` +} + +type MintTokens struct { + Denom string `json:"denom"` + Amount math.Int `json:"amount"` + MintToAddress string `json:"mint_to_address"` +} + +type BurnTokens struct { + Denom string `json:"denom"` + Amount math.Int `json:"amount"` + BurnFromAddress string `json:"burn_from_address"` +} + +type SetMetadata struct { + Denom string `json:"denom"` + Metadata Metadata `json:"metadata"` +} + +type ForceTransfer struct { + Denom string `json:"denom"` + Amount math.Int `json:"amount"` + FromAddress string `json:"from_address"` + ToAddress string `json:"to_address"` +} diff --git a/x/tokenfactory/bindings/types/query.go b/x/tokenfactory/bindings/types/query.go new file mode 100644 index 00000000..60f0ac3e --- /dev/null +++ b/x/tokenfactory/bindings/types/query.go @@ -0,0 +1,55 @@ +package types + +// See https://github.com/CosmWasm/token-bindings/blob/main/packages/bindings/src/query.rs +type TokenFactoryQuery struct { + /// Given a subdenom minted by a contract via `OsmosisMsg::MintTokens`, + /// returns the full denom as used by `BankMsg::Send`. + FullDenom *FullDenom `json:"full_denom,omitempty"` + Admin *DenomAdmin `json:"admin,omitempty"` + Metadata *GetMetadata `json:"metadata,omitempty"` + DenomsByCreator *DenomsByCreator `json:"denoms_by_creator,omitempty"` + Params *GetParams `json:"params,omitempty"` +} + +// query types + +type FullDenom struct { + CreatorAddr string `json:"creator_addr"` + Subdenom string `json:"subdenom"` +} + +type GetMetadata struct { + Denom string `json:"denom"` +} + +type DenomAdmin struct { + Denom string `json:"denom"` +} + +type DenomsByCreator struct { + Creator string `json:"creator"` +} + +type GetParams struct{} + +// responses + +type FullDenomResponse struct { + Denom string `json:"denom"` +} + +type AdminResponse struct { + Admin string `json:"admin"` +} + +type MetadataResponse struct { + Metadata *Metadata `json:"metadata,omitempty"` +} + +type DenomsByCreatorResponse struct { + Denoms []string `json:"denoms"` +} + +type ParamsResponse struct { + Params Params `json:"params"` +} diff --git a/x/tokenfactory/bindings/types/types.go b/x/tokenfactory/bindings/types/types.go new file mode 100644 index 00000000..2c75feeb --- /dev/null +++ b/x/tokenfactory/bindings/types/types.go @@ -0,0 +1,37 @@ +package types + +import ( + wasmvmtypes "github.com/CosmWasm/wasmvm/types" +) + +type Metadata struct { + Description string `json:"description"` + // DenomUnits represents the list of DenomUnit's for a given coin + DenomUnits []DenomUnit `json:"denom_units"` + // Base represents the base denom (should be the DenomUnit with exponent = 0). + Base string `json:"base"` + // Display indicates the suggested denom that should be displayed in clients. + Display string `json:"display"` + // Name defines the name of the token (eg: Cosmos Atom) + Name string `json:"name"` + // Symbol is the token symbol usually shown on exchanges (eg: ATOM). + // This can be the same as the display. + Symbol string `json:"symbol"` +} + +type DenomUnit struct { + // Denom represents the string name of the given denom unit (e.g uatom). + Denom string `json:"denom"` + // Exponent represents power of 10 exponent that one must + // raise the base_denom to in order to equal the given DenomUnit's denom + // 1 denom = 1^exponent base_denom + // (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with + // exponent = 6, thus: 1 atom = 10^6 uatom). + Exponent uint32 `json:"exponent"` + // Aliases is a list of string aliases for the given denom + Aliases []string `json:"aliases"` +} + +type Params struct { + DenomCreationFee []wasmvmtypes.Coin `json:"denom_creation_fee"` +} diff --git a/x/tokenfactory/bindings/validate_msg_test.go b/x/tokenfactory/bindings/validate_msg_test.go new file mode 100644 index 00000000..01789f3a --- /dev/null +++ b/x/tokenfactory/bindings/validate_msg_test.go @@ -0,0 +1,415 @@ +package bindings_test + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/require" + + sdk "github.com/cosmos/cosmos-sdk/types" + + wasmbinding "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/bindings" + bindings "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/bindings/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" +) + +func TestCreateDenom(t *testing.T) { + actor := RandomAccountAddress() + app, ctx := SetupCustomApp(t, actor) + + // Fund actor with 100 base denom creation fees + actorAmount := sdk.NewCoins(sdk.NewCoin(types.DefaultParams().DenomCreationFee[0].Denom, types.DefaultParams().DenomCreationFee[0].Amount.MulRaw(100))) + fundAccount(t, ctx, app, actor, actorAmount) + + specs := map[string]struct { + createDenom *bindings.CreateDenom + expErr bool + }{ + "valid sub-denom": { + createDenom: &bindings.CreateDenom{ + Subdenom: "MOON", + }, + }, + "empty sub-denom": { + createDenom: &bindings.CreateDenom{ + Subdenom: "", + }, + expErr: false, + }, + "invalid sub-denom": { + createDenom: &bindings.CreateDenom{ + Subdenom: "sub-denom_2", + }, + expErr: false, + }, + "null create denom": { + createDenom: nil, + expErr: true, + }, + } + for name, spec := range specs { + t.Run(name, func(t *testing.T) { + // when + _, gotErr := wasmbinding.PerformCreateDenom(&app.AppKeepers.TokenFactoryKeeper, app.AppKeepers.BankKeeper, ctx, actor, spec.createDenom) + // then + if spec.expErr { + t.Logf("validate_msg_test got error: %v", gotErr) + require.Error(t, gotErr) + return + } + require.NoError(t, gotErr) + }) + } +} + +func TestChangeAdmin(t *testing.T) { + const validDenom = "validdenom" + + tokenCreator := RandomAccountAddress() + + specs := map[string]struct { + actor sdk.AccAddress + changeAdmin *bindings.ChangeAdmin + + expErrMsg string + }{ + "valid": { + changeAdmin: &bindings.ChangeAdmin{ + Denom: fmt.Sprintf("factory/%s/%s", tokenCreator.String(), validDenom), + NewAdminAddress: RandomBech32AccountAddress(), + }, + actor: tokenCreator, + }, + "typo in factory in denom name": { + changeAdmin: &bindings.ChangeAdmin{ + Denom: fmt.Sprintf("facory/%s/%s", tokenCreator.String(), validDenom), + NewAdminAddress: RandomBech32AccountAddress(), + }, + actor: tokenCreator, + expErrMsg: "denom prefix is incorrect. Is: facory. Should be: factory: invalid denom", + }, + "invalid address in denom": { + changeAdmin: &bindings.ChangeAdmin{ + Denom: fmt.Sprintf("factory/%s/%s", RandomBech32AccountAddress(), validDenom), + NewAdminAddress: RandomBech32AccountAddress(), + }, + actor: tokenCreator, + expErrMsg: "failed changing admin from message: unauthorized account", + }, + "other denom name in 3 part name": { + changeAdmin: &bindings.ChangeAdmin{ + Denom: fmt.Sprintf("factory/%s/%s", tokenCreator.String(), "invalid denom"), + NewAdminAddress: RandomBech32AccountAddress(), + }, + actor: tokenCreator, + expErrMsg: fmt.Sprintf("invalid denom: factory/%s/invalid denom", tokenCreator.String()), + }, + "empty denom": { + changeAdmin: &bindings.ChangeAdmin{ + Denom: "", + NewAdminAddress: RandomBech32AccountAddress(), + }, + actor: tokenCreator, + expErrMsg: "invalid denom: ", + }, + "empty address": { + changeAdmin: &bindings.ChangeAdmin{ + Denom: fmt.Sprintf("factory/%s/%s", tokenCreator.String(), validDenom), + NewAdminAddress: "", + }, + actor: tokenCreator, + expErrMsg: "address from bech32: empty address string is not allowed", + }, + "creator is a different address": { + changeAdmin: &bindings.ChangeAdmin{ + Denom: fmt.Sprintf("factory/%s/%s", tokenCreator.String(), validDenom), + NewAdminAddress: RandomBech32AccountAddress(), + }, + actor: RandomAccountAddress(), + expErrMsg: "failed changing admin from message: unauthorized account", + }, + "change to the same address": { + changeAdmin: &bindings.ChangeAdmin{ + Denom: fmt.Sprintf("factory/%s/%s", tokenCreator.String(), validDenom), + NewAdminAddress: tokenCreator.String(), + }, + actor: tokenCreator, + }, + "nil binding": { + actor: tokenCreator, + expErrMsg: "invalid request: changeAdmin is nil - original request: ", + }, + } + for name, spec := range specs { + t.Run(name, func(t *testing.T) { + // Setup + app, ctx := SetupCustomApp(t, tokenCreator) + + // Fund actor with 100 base denom creation fees + actorAmount := sdk.NewCoins(sdk.NewCoin(types.DefaultParams().DenomCreationFee[0].Denom, types.DefaultParams().DenomCreationFee[0].Amount.MulRaw(100))) + fundAccount(t, ctx, app, tokenCreator, actorAmount) + + _, err := wasmbinding.PerformCreateDenom(&app.AppKeepers.TokenFactoryKeeper, app.AppKeepers.BankKeeper, ctx, tokenCreator, &bindings.CreateDenom{ + Subdenom: validDenom, + }) + require.NoError(t, err) + + err = wasmbinding.ChangeAdmin(&app.AppKeepers.TokenFactoryKeeper, ctx, spec.actor, spec.changeAdmin) + if len(spec.expErrMsg) > 0 { + require.Error(t, err) + actualErrMsg := err.Error() + require.Equal(t, spec.expErrMsg, actualErrMsg) + return + } + require.NoError(t, err) + }) + } +} + +func TestMint(t *testing.T) { + creator := RandomAccountAddress() + app, ctx := SetupCustomApp(t, creator) + + // Fund actor with 100 base denom creation fees + tokenCreationFeeAmt := sdk.NewCoins(sdk.NewCoin(types.DefaultParams().DenomCreationFee[0].Denom, types.DefaultParams().DenomCreationFee[0].Amount.MulRaw(100))) + fundAccount(t, ctx, app, creator, tokenCreationFeeAmt) + + // Create denoms for valid mint tests + validDenom := bindings.CreateDenom{ + Subdenom: "MOON", + } + _, err := wasmbinding.PerformCreateDenom(&app.AppKeepers.TokenFactoryKeeper, app.AppKeepers.BankKeeper, ctx, creator, &validDenom) + require.NoError(t, err) + + emptyDenom := bindings.CreateDenom{ + Subdenom: "", + } + _, err = wasmbinding.PerformCreateDenom(&app.AppKeepers.TokenFactoryKeeper, app.AppKeepers.BankKeeper, ctx, creator, &emptyDenom) + require.NoError(t, err) + + validDenomStr := fmt.Sprintf("factory/%s/%s", creator.String(), validDenom.Subdenom) + emptyDenomStr := fmt.Sprintf("factory/%s/%s", creator.String(), emptyDenom.Subdenom) + + lucky := RandomAccountAddress() + + // lucky was broke + balances := app.AppKeepers.BankKeeper.GetAllBalances(ctx, lucky) + require.Empty(t, balances) + + amount, ok := sdk.NewIntFromString("8080") + require.True(t, ok) + + specs := map[string]struct { + mint *bindings.MintTokens + expErr bool + }{ + "valid mint": { + mint: &bindings.MintTokens{ + Denom: validDenomStr, + Amount: amount, + MintToAddress: lucky.String(), + }, + }, + "empty sub-denom": { + mint: &bindings.MintTokens{ + Denom: emptyDenomStr, + Amount: amount, + MintToAddress: lucky.String(), + }, + expErr: false, + }, + "nonexistent sub-denom": { + mint: &bindings.MintTokens{ + Denom: fmt.Sprintf("factory/%s/%s", creator.String(), "SUN"), + Amount: amount, + MintToAddress: lucky.String(), + }, + expErr: true, + }, + "invalid sub-denom": { + mint: &bindings.MintTokens{ + Denom: "sub-denom_2", + Amount: amount, + MintToAddress: lucky.String(), + }, + expErr: true, + }, + "zero amount": { + mint: &bindings.MintTokens{ + Denom: validDenomStr, + Amount: sdk.ZeroInt(), + MintToAddress: lucky.String(), + }, + expErr: true, + }, + "negative amount": { + mint: &bindings.MintTokens{ + Denom: validDenomStr, + Amount: amount.Neg(), + MintToAddress: lucky.String(), + }, + expErr: true, + }, + "empty recipient": { + mint: &bindings.MintTokens{ + Denom: validDenomStr, + Amount: amount, + MintToAddress: "", + }, + expErr: true, + }, + "invalid recipient": { + mint: &bindings.MintTokens{ + Denom: validDenomStr, + Amount: amount, + MintToAddress: "invalid", + }, + expErr: true, + }, + "null mint": { + mint: nil, + expErr: true, + }, + } + for name, spec := range specs { + t.Run(name, func(t *testing.T) { + // when + gotErr := wasmbinding.PerformMint(&app.AppKeepers.TokenFactoryKeeper, app.AppKeepers.BankKeeper, ctx, creator, spec.mint) + // then + if spec.expErr { + require.Error(t, gotErr) + return + } + require.NoError(t, gotErr) + }) + } +} + +func TestBurn(t *testing.T) { + creator := RandomAccountAddress() + app, ctx := SetupCustomApp(t, creator) + + // Fund actor with 100 base denom creation fees + tokenCreationFeeAmt := sdk.NewCoins(sdk.NewCoin(types.DefaultParams().DenomCreationFee[0].Denom, types.DefaultParams().DenomCreationFee[0].Amount.MulRaw(100))) + fundAccount(t, ctx, app, creator, tokenCreationFeeAmt) + + // Create denoms for valid burn tests + validDenom := bindings.CreateDenom{ + Subdenom: "MOON", + } + _, err := wasmbinding.PerformCreateDenom(&app.AppKeepers.TokenFactoryKeeper, app.AppKeepers.BankKeeper, ctx, creator, &validDenom) + require.NoError(t, err) + + emptyDenom := bindings.CreateDenom{ + Subdenom: "", + } + _, err = wasmbinding.PerformCreateDenom(&app.AppKeepers.TokenFactoryKeeper, app.AppKeepers.BankKeeper, ctx, creator, &emptyDenom) + require.NoError(t, err) + + lucky := RandomAccountAddress() + + // lucky was broke + balances := app.AppKeepers.BankKeeper.GetAllBalances(ctx, lucky) + require.Empty(t, balances) + + validDenomStr := fmt.Sprintf("factory/%s/%s", creator.String(), validDenom.Subdenom) + emptyDenomStr := fmt.Sprintf("factory/%s/%s", creator.String(), emptyDenom.Subdenom) + mintAmount, ok := sdk.NewIntFromString("8080") + require.True(t, ok) + + specs := map[string]struct { + burn *bindings.BurnTokens + expErr bool + }{ + "valid burn": { + burn: &bindings.BurnTokens{ + Denom: validDenomStr, + Amount: mintAmount, + BurnFromAddress: creator.String(), + }, + expErr: false, + }, + "non admin address": { + burn: &bindings.BurnTokens{ + Denom: validDenomStr, + Amount: mintAmount, + BurnFromAddress: lucky.String(), + }, + expErr: true, + }, + "empty sub-denom": { + burn: &bindings.BurnTokens{ + Denom: emptyDenomStr, + Amount: mintAmount, + BurnFromAddress: creator.String(), + }, + expErr: false, + }, + "invalid sub-denom": { + burn: &bindings.BurnTokens{ + Denom: "sub-denom_2", + Amount: mintAmount, + BurnFromAddress: creator.String(), + }, + expErr: true, + }, + "non-minted denom": { + burn: &bindings.BurnTokens{ + Denom: fmt.Sprintf("factory/%s/%s", creator.String(), "SUN"), + Amount: mintAmount, + BurnFromAddress: creator.String(), + }, + expErr: true, + }, + "zero amount": { + burn: &bindings.BurnTokens{ + Denom: validDenomStr, + Amount: sdk.ZeroInt(), + BurnFromAddress: creator.String(), + }, + expErr: true, + }, + "negative amount": { + burn: nil, + expErr: true, + }, + "null burn": { + burn: &bindings.BurnTokens{ + Denom: validDenomStr, + Amount: mintAmount.Neg(), + BurnFromAddress: creator.String(), + }, + expErr: true, + }, + } + + for name, spec := range specs { + t.Run(name, func(t *testing.T) { + // Mint valid denom str and empty denom string for burn test + mintBinding := &bindings.MintTokens{ + Denom: validDenomStr, + Amount: mintAmount, + MintToAddress: creator.String(), + } + err := wasmbinding.PerformMint(&app.AppKeepers.TokenFactoryKeeper, app.AppKeepers.BankKeeper, ctx, creator, mintBinding) + require.NoError(t, err) + + emptyDenomMintBinding := &bindings.MintTokens{ + Denom: emptyDenomStr, + Amount: mintAmount, + MintToAddress: creator.String(), + } + err = wasmbinding.PerformMint(&app.AppKeepers.TokenFactoryKeeper, app.AppKeepers.BankKeeper, ctx, creator, emptyDenomMintBinding) + require.NoError(t, err) + + // when + gotErr := wasmbinding.PerformBurn(&app.AppKeepers.TokenFactoryKeeper, ctx, creator, spec.burn) + // then + if spec.expErr { + require.Error(t, gotErr) + return + } + require.NoError(t, gotErr) + }) + } +} diff --git a/x/tokenfactory/bindings/validate_queries_test.go b/x/tokenfactory/bindings/validate_queries_test.go new file mode 100644 index 00000000..0b9cae46 --- /dev/null +++ b/x/tokenfactory/bindings/validate_queries_test.go @@ -0,0 +1,115 @@ +package bindings_test + +import ( + "fmt" + "testing" + + wasmbinding "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/bindings" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestFullDenom(t *testing.T) { + actor := RandomAccountAddress() + + specs := map[string]struct { + addr string + subdenom string + expFullDenom string + expErr bool + }{ + "valid address": { + addr: actor.String(), + subdenom: "subDenom1", + expFullDenom: fmt.Sprintf("factory/%s/subDenom1", actor.String()), + }, + "empty address": { + addr: "", + subdenom: "subDenom1", + expErr: true, + }, + "invalid address": { + addr: "invalid", + subdenom: "subDenom1", + expErr: true, + }, + "empty sub-denom": { + addr: actor.String(), + subdenom: "", + expFullDenom: fmt.Sprintf("factory/%s/", actor.String()), + }, + "valid sub-denom (contains underscore)": { + addr: actor.String(), + subdenom: "sub_denom", + expFullDenom: fmt.Sprintf("factory/%s/sub_denom", actor.String()), + }, + } + for name, spec := range specs { + t.Run(name, func(t *testing.T) { + // when + gotFullDenom, gotErr := wasmbinding.GetFullDenom(spec.addr, spec.subdenom) + // then + if spec.expErr { + require.Error(t, gotErr) + return + } + require.NoError(t, gotErr) + assert.Equal(t, spec.expFullDenom, gotFullDenom, "exp %s but got %s", spec.expFullDenom, gotFullDenom) + }) + } +} + +func TestDenomAdmin(t *testing.T) { + addr := RandomAccountAddress() + app, ctx := SetupCustomApp(t, addr) + + // set token creation fee to zero to make testing easier + tfParams := app.AppKeepers.TokenFactoryKeeper.GetParams(ctx) + tfParams.DenomCreationFee = sdk.NewCoins() + if err := app.AppKeepers.TokenFactoryKeeper.SetParams(ctx, tfParams); err != nil { + t.Fatal(err) + } + + // create a subdenom via the token factory + admin := sdk.AccAddress([]byte("addr1_______________")) + tfDenom, err := app.AppKeepers.TokenFactoryKeeper.CreateDenom(ctx, admin.String(), "subdenom") + require.NoError(t, err) + require.NotEmpty(t, tfDenom) + + queryPlugin := wasmbinding.NewQueryPlugin(app.AppKeepers.BankKeeper, &app.AppKeepers.TokenFactoryKeeper) + + testCases := []struct { + name string + denom string + expectErr bool + expectAdmin string + }{ + { + name: "valid token factory denom", + denom: tfDenom, + expectAdmin: admin.String(), + }, + { + name: "invalid token factory denom", + denom: "uosmo", + expectErr: false, + expectAdmin: "", + }, + } + + for _, tc := range testCases { + tc := tc + + t.Run(tc.name, func(t *testing.T) { + resp, err := queryPlugin.GetDenomAdmin(ctx, tc.denom) + if tc.expectErr { + require.Error(t, err) + } else { + require.NoError(t, err) + require.NotNil(t, resp) + require.Equal(t, tc.expectAdmin, resp.Admin) + } + }) + } +} diff --git a/x/tokenfactory/bindings/wasm.go b/x/tokenfactory/bindings/wasm.go new file mode 100644 index 00000000..bfebc274 --- /dev/null +++ b/x/tokenfactory/bindings/wasm.go @@ -0,0 +1,26 @@ +package bindings + +import ( + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" + tokenfactorykeeper "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/keeper" + bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" +) + +func RegisterCustomPlugins( + bank bankkeeper.Keeper, + tokenFactory *tokenfactorykeeper.Keeper, +) []wasmkeeper.Option { + wasmQueryPlugin := NewQueryPlugin(bank, tokenFactory) + + queryPluginOpt := wasmkeeper.WithQueryPlugins(&wasmkeeper.QueryPlugins{ + Custom: CustomQuerier(wasmQueryPlugin), + }) + messengerDecoratorOpt := wasmkeeper.WithMessageHandlerDecorator( + CustomMessageDecorator(bank, tokenFactory), + ) + + return []wasmkeeper.Option{ + queryPluginOpt, + messengerDecoratorOpt, + } +} diff --git a/x/tokenfactory/client/cli/query.go b/x/tokenfactory/client/cli/query.go index 57b778cd..55304a06 100644 --- a/x/tokenfactory/client/cli/query.go +++ b/x/tokenfactory/client/cli/query.go @@ -8,7 +8,7 @@ import ( "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) // GetQueryCmd returns the cli query commands for this module diff --git a/x/tokenfactory/client/cli/tx.go b/x/tokenfactory/client/cli/tx.go index 8799ba04..b732cbcb 100644 --- a/x/tokenfactory/client/cli/tx.go +++ b/x/tokenfactory/client/cli/tx.go @@ -13,7 +13,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) // GetTxCmd returns the transaction commands for this module diff --git a/x/tokenfactory/keeper/admins.go b/x/tokenfactory/keeper/admins.go index 19b30929..25bca77b 100644 --- a/x/tokenfactory/keeper/admins.go +++ b/x/tokenfactory/keeper/admins.go @@ -5,7 +5,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) // GetAuthorityMetadata returns the authority metadata for a specific denom diff --git a/x/tokenfactory/keeper/admins_test.go b/x/tokenfactory/keeper/admins_test.go index 3eaf24c4..91562acd 100644 --- a/x/tokenfactory/keeper/admins_test.go +++ b/x/tokenfactory/keeper/admins_test.go @@ -6,7 +6,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) func (suite *KeeperTestSuite) TestAdminMsgs() { diff --git a/x/tokenfactory/keeper/bankactions.go b/x/tokenfactory/keeper/bankactions.go index f3bbfc02..27f40898 100644 --- a/x/tokenfactory/keeper/bankactions.go +++ b/x/tokenfactory/keeper/bankactions.go @@ -5,7 +5,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) func (k Keeper) mintTo(ctx sdk.Context, amount sdk.Coin, mintTo string) error { diff --git a/x/tokenfactory/keeper/createdenom.go b/x/tokenfactory/keeper/createdenom.go index 2bfe32c5..914714ee 100644 --- a/x/tokenfactory/keeper/createdenom.go +++ b/x/tokenfactory/keeper/createdenom.go @@ -4,7 +4,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) // ConvertToBaseToken converts a fee amount in a whitelisted fee token to the base fee token amount diff --git a/x/tokenfactory/keeper/createdenom_test.go b/x/tokenfactory/keeper/createdenom_test.go index cc01c533..795bbdbe 100644 --- a/x/tokenfactory/keeper/createdenom_test.go +++ b/x/tokenfactory/keeper/createdenom_test.go @@ -6,8 +6,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/OmniFlix/omniflixhub/v2/app/apptesting" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/app/apptesting" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) func (suite *KeeperTestSuite) TestMsgCreateDenom() { diff --git a/x/tokenfactory/keeper/genesis.go b/x/tokenfactory/keeper/genesis.go index 39c3133d..2f74c8a6 100644 --- a/x/tokenfactory/keeper/genesis.go +++ b/x/tokenfactory/keeper/genesis.go @@ -3,7 +3,7 @@ package keeper import ( sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) // InitGenesis initializes the tokenfactory module's state from a provided genesis diff --git a/x/tokenfactory/keeper/genesis_test.go b/x/tokenfactory/keeper/genesis_test.go index cc657b65..c96637e0 100644 --- a/x/tokenfactory/keeper/genesis_test.go +++ b/x/tokenfactory/keeper/genesis_test.go @@ -4,7 +4,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) func (suite *KeeperTestSuite) TestGenesis() { diff --git a/x/tokenfactory/keeper/grpc_query.go b/x/tokenfactory/keeper/grpc_query.go index 6f5fb176..11c5497a 100644 --- a/x/tokenfactory/keeper/grpc_query.go +++ b/x/tokenfactory/keeper/grpc_query.go @@ -5,7 +5,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) var _ types.QueryServer = Keeper{} diff --git a/x/tokenfactory/keeper/keeper.go b/x/tokenfactory/keeper/keeper.go index f2fa193a..2f35a51e 100644 --- a/x/tokenfactory/keeper/keeper.go +++ b/x/tokenfactory/keeper/keeper.go @@ -11,7 +11,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) type ( diff --git a/x/tokenfactory/keeper/keeper_test.go b/x/tokenfactory/keeper/keeper_test.go index 603d293b..013c2a8b 100644 --- a/x/tokenfactory/keeper/keeper_test.go +++ b/x/tokenfactory/keeper/keeper_test.go @@ -10,9 +10,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/OmniFlix/omniflixhub/v2/app/apptesting" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/keeper" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/app/apptesting" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/keeper" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) type KeeperTestSuite struct { diff --git a/x/tokenfactory/keeper/msg_server.go b/x/tokenfactory/keeper/msg_server.go index 055d7c13..c339b710 100644 --- a/x/tokenfactory/keeper/msg_server.go +++ b/x/tokenfactory/keeper/msg_server.go @@ -8,7 +8,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) type msgServer struct { diff --git a/x/tokenfactory/keeper/msg_server_test.go b/x/tokenfactory/keeper/msg_server_test.go index 1c72ee75..b4526422 100644 --- a/x/tokenfactory/keeper/msg_server_test.go +++ b/x/tokenfactory/keeper/msg_server_test.go @@ -6,7 +6,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) // TestMintDenomMsg tests TypeMsgMint message is emitted on a successful mint diff --git a/x/tokenfactory/keeper/params.go b/x/tokenfactory/keeper/params.go index f60827c5..d7e54d7a 100644 --- a/x/tokenfactory/keeper/params.go +++ b/x/tokenfactory/keeper/params.go @@ -3,7 +3,7 @@ package keeper import ( sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) // GetParams returns the total set params. diff --git a/x/tokenfactory/module.go b/x/tokenfactory/module.go index de7ffc54..79b9e633 100644 --- a/x/tokenfactory/module.go +++ b/x/tokenfactory/module.go @@ -26,10 +26,10 @@ import ( "github.com/cosmos/cosmos-sdk/types/module" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/client/cli" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/keeper" - simulation "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/simulation" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/client/cli" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/keeper" + simulation "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/simulation" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) var ( diff --git a/x/tokenfactory/simulation/genesis.go b/x/tokenfactory/simulation/genesis.go index 3ee999a8..c73b770d 100644 --- a/x/tokenfactory/simulation/genesis.go +++ b/x/tokenfactory/simulation/genesis.go @@ -6,8 +6,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" - appparams "github.com/OmniFlix/omniflixhub/v2/app/params" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + appparams "github.com/OmniFlix/omniflixhub/v3/app/params" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) func RandDenomCreationFeeParam(r *rand.Rand) sdk.Coins { diff --git a/x/tokenfactory/simulation/operations.go b/x/tokenfactory/simulation/operations.go index c0cb5ba7..f687b616 100644 --- a/x/tokenfactory/simulation/operations.go +++ b/x/tokenfactory/simulation/operations.go @@ -10,8 +10,8 @@ import ( banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/cosmos/cosmos-sdk/x/simulation" - appparams "github.com/OmniFlix/omniflixhub/v2/app/params" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + appparams "github.com/OmniFlix/omniflixhub/v3/app/params" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) // Simulation operation weights constants diff --git a/x/tokenfactory/types/denoms_test.go b/x/tokenfactory/types/denoms_test.go index 0ae8fce5..79354b03 100644 --- a/x/tokenfactory/types/denoms_test.go +++ b/x/tokenfactory/types/denoms_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/require" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) func TestDeconstructDenom(t *testing.T) { diff --git a/x/tokenfactory/types/genesis_test.go b/x/tokenfactory/types/genesis_test.go index 726e75dd..5ac63dae 100644 --- a/x/tokenfactory/types/genesis_test.go +++ b/x/tokenfactory/types/genesis_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/require" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) func TestGenesisState_Validate(t *testing.T) { diff --git a/x/tokenfactory/types/msgs_test.go b/x/tokenfactory/types/msgs_test.go index 3c7b9186..40c7d111 100644 --- a/x/tokenfactory/types/msgs_test.go +++ b/x/tokenfactory/types/msgs_test.go @@ -11,8 +11,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/testhelpers" - "github.com/OmniFlix/omniflixhub/v2/x/tokenfactory/types" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/testhelpers" + "github.com/OmniFlix/omniflixhub/v3/x/tokenfactory/types" ) // Test authz serialize and de-serializes for tokenfactory msg.