Merge pull request #299 from CosmWasm/upgrade_starport_rc2

Upgrade to Stargate RC2
This commit is contained in:
Alexander Peters
2020-11-05 10:04:02 +01:00
committed by GitHub
24 changed files with 569 additions and 511 deletions

View File

@@ -9,6 +9,7 @@ import (
"github.com/gorilla/mux"
"github.com/rakyll/statik/fs"
"github.com/spf13/cast"
"github.com/spf13/viper"
abci "github.com/tendermint/tendermint/abci/types"
tmjson "github.com/tendermint/tendermint/libs/json"
@@ -26,6 +27,7 @@ import (
"github.com/cosmos/cosmos-sdk/codec/types"
"github.com/cosmos/cosmos-sdk/server/api"
"github.com/cosmos/cosmos-sdk/server/config"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
"github.com/cosmos/cosmos-sdk/simapp"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
@@ -35,6 +37,7 @@ import (
authrest "github.com/cosmos/cosmos-sdk/x/auth/client/rest"
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation"
authtx "github.com/cosmos/cosmos-sdk/x/auth/tx"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
"github.com/cosmos/cosmos-sdk/x/auth/vesting"
"github.com/cosmos/cosmos-sdk/x/bank"
@@ -190,7 +193,10 @@ var (
)
// Verify app interface at compile time
var _ simapp.App = (*WasmApp)(nil)
var (
_ simapp.App = (*WasmApp)(nil)
_ servertypes.Application = (*WasmApp)(nil)
)
// WasmApp extended ABCI application
type WasmApp struct {
@@ -243,7 +249,7 @@ type WasmWrapper struct {
// NewWasmApp returns a reference to an initialized WasmApp.
func NewWasmApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool,
skipUpgradeHeights map[int64]bool, homePath string, invCheckPeriod uint, enabledProposals []wasm.ProposalType,
baseAppOptions ...func(*baseapp.BaseApp)) *WasmApp {
appOpts servertypes.AppOptions, baseAppOptions ...func(*baseapp.BaseApp)) *WasmApp {
encodingConfig := MakeEncodingConfig()
appCodec, legacyAmino := encodingConfig.Marshaler, encodingConfig.Amino
@@ -253,7 +259,6 @@ func NewWasmApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest b
bApp.SetCommitMultiStoreTracer(traceStore)
bApp.SetAppVersion(version.Version)
bApp.SetInterfaceRegistry(interfaceRegistry)
bApp.GRPCQueryRouter().RegisterSimulateService(bApp.Simulate, interfaceRegistry)
keys := sdk.NewKVStoreKeys(
authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey,
@@ -342,7 +347,6 @@ func NewWasmApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest b
// Create static IBC router, add transfer route, then set and seal it
ibcRouter := porttypes.NewRouter()
ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferModule)
app.ibcKeeper.SetRouter(ibcRouter)
// create evidence keeper with router
evidenceKeeper := evidencekeeper.NewKeeper(
@@ -384,6 +388,7 @@ func NewWasmApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest b
if len(enabledProposals) != 0 {
govRouter.AddRoute(wasm.RouterKey, wasm.NewWasmProposalHandler(app.wasmKeeper, enabledProposals))
}
app.ibcKeeper.SetRouter(ibcRouter)
app.govKeeper = govkeeper.NewKeeper(
appCodec,
@@ -394,6 +399,11 @@ func NewWasmApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest b
&stakingKeeper,
govRouter,
)
/**** Module Options ****/
// NOTE: we may consider parsing `appOpts` inside module constructors. For the moment
// we prefer to be more strict in what arguments the modules expect.
var skipGenesisInvariants = cast.ToBool(appOpts.Get(crisis.FlagSkipGenesisInvariants))
// NOTE: Any module instantiated in the module manager that is later modified
// must be passed by reference here.
@@ -405,7 +415,7 @@ func NewWasmApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest b
vesting.NewAppModule(app.accountKeeper, app.bankKeeper),
bank.NewAppModule(appCodec, app.bankKeeper, app.accountKeeper),
capability.NewAppModule(appCodec, *app.capabilityKeeper),
crisis.NewAppModule(&app.crisisKeeper),
crisis.NewAppModule(&app.crisisKeeper, skipGenesisInvariants),
gov.NewAppModule(appCodec, app.govKeeper, app.accountKeeper, app.bankKeeper),
mint.NewAppModule(appCodec, app.mintKeeper, app.accountKeeper),
slashing.NewAppModule(appCodec, app.slashingKeeper, app.accountKeeper, app.bankKeeper, app.stakingKeeper),
@@ -435,11 +445,12 @@ func NewWasmApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest b
// so that other modules that want to create or claim capabilities afterwards in InitChain
// can do so safely.
app.mm.SetOrderInitGenesis(
capabilitytypes.ModuleName, authtypes.ModuleName, distrtypes.ModuleName, stakingtypes.ModuleName, banktypes.ModuleName,
capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, distrtypes.ModuleName, stakingtypes.ModuleName,
slashingtypes.ModuleName, govtypes.ModuleName, minttypes.ModuleName, crisistypes.ModuleName,
ibchost.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, ibctransfertypes.ModuleName,
wasm.ModuleName,
)
app.mm.RegisterInvariants(&app.crisisKeeper)
app.mm.RegisterRoutes(app.Router(), app.QueryRouter(), encodingConfig.Amino)
app.mm.RegisterServices(module.NewConfigurator(app.MsgServiceRouter(), app.GRPCQueryRouter()))
@@ -494,15 +505,15 @@ func NewWasmApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest b
// are loaded in-memory and prevent any further modules from creating scoped
// sub-keepers.
// This must be done during creation of baseapp rather than in InitChain so
// that in-memory capabilities get regenerated on app restart
// that in-memory capabilities get regenerated on app restart.
// Note that since this reads from the store, we can only perform it when
// `loadLatest` is set to true.
ctx := app.BaseApp.NewUncachedContext(true, tmproto.Header{})
app.capabilityKeeper.InitializeAndSeal(ctx)
}
app.ScopedIBCKeeper = scopedIBCKeeper
app.ScopedTransferKeeper = scopedTransferKeeper
app.ScopedIBCKeeper = scopedIBCKeeper
return app
}
@@ -578,9 +589,11 @@ func (app *WasmApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APICo
clientCtx := apiSvr.ClientCtx
rpc.RegisterRoutes(clientCtx, apiSvr.Router)
authrest.RegisterTxRoutes(clientCtx, apiSvr.Router)
// Register new tx routes from grpc-gateway.
authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCRouter)
ModuleBasics.RegisterRESTRoutes(clientCtx, apiSvr.Router)
ModuleBasics.RegisterGRPCRoutes(apiSvr.ClientCtx, apiSvr.GRPCRouter)
ModuleBasics.RegisterGRPCGatewayRoutes(apiSvr.ClientCtx, apiSvr.GRPCRouter)
// register swagger API from root so that other applications can override easily
if apiConfig.Swagger {
@@ -588,6 +601,11 @@ func (app *WasmApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APICo
}
}
// RegisterTxService implements the Application.RegisterTxService method.
func (app *WasmApp) RegisterTxService(clientCtx client.Context) {
authtx.RegisterTxService(app.BaseApp.GRPCQueryRouter(), clientCtx, app.BaseApp.Simulate, app.interfaceRegistry)
}
// RegisterSwaggerAPI registers swagger route with API Server
func RegisterSwaggerAPI(_ client.Context, rtr *mux.Router) {
statikFS, err := fs.New()

View File

@@ -16,12 +16,12 @@ import (
func TestWasmdExport(t *testing.T) {
db := db.NewMemDB()
gapp := NewWasmApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, "", 0, wasm.EnableAllProposals)
gapp := NewWasmApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, "", 0, wasm.EnableAllProposals, EmptyAppOptions{})
err := setGenesis(gapp)
require.NoError(t, err)
// Making a new app object with the db, so that initchain hasn't been called
newGapp := NewWasmApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, "", 0, wasm.EnableAllProposals)
newGapp := NewWasmApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, "", 0, wasm.EnableAllProposals, EmptyAppOptions{})
_, err = newGapp.ExportAppStateAndValidators(false, []string{})
require.NoError(t, err, "ExportAppStateAndValidators should not have an error")
}
@@ -29,7 +29,7 @@ func TestWasmdExport(t *testing.T) {
// ensure that black listed addresses are properly set in bank keeper
func TestBlackListedAddrs(t *testing.T) {
db := db.NewMemDB()
gapp := NewWasmApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, "", 0, wasm.EnableAllProposals)
gapp := NewWasmApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, "", 0, wasm.EnableAllProposals, EmptyAppOptions{})
for acc := range maccPerms {
require.Equal(t, !allowedReceivingModAcc[acc], gapp.bankKeeper.BlockedAddr(gapp.accountKeeper.GetModuleAddress(acc)))

View File

@@ -35,13 +35,13 @@ func (app *WasmApp) ExportAppStateAndValidators(
return servertypes.ExportedApp{}, err
}
validators := staking.WriteValidators(ctx, app.stakingKeeper)
validators, err := staking.WriteValidators(ctx, app.stakingKeeper)
return servertypes.ExportedApp{
AppState: appState,
Validators: validators,
Height: height,
ConsensusParams: app.BaseApp.GetConsensusParams(ctx),
}, nil
}, err
}
// prepare for fresh start at zero height
@@ -174,7 +174,10 @@ func (app *WasmApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs [
iter.Close()
_ = app.stakingKeeper.ApplyAndReturnValidatorSetUpdates(ctx)
_, err := app.stakingKeeper.ApplyAndReturnValidatorSetUpdates(ctx)
if err != nil {
log.Fatal(err)
}
/* Handle slashing state. */

View File

@@ -4,7 +4,13 @@ import (
"encoding/json"
)
// GenesisState defines a type alias for the Gaia genesis application state.
// The genesis state of the blockchain is represented here as a map of raw json
// messages key'd by a identifier string.
// The identifier is used to determine which module genesis information belongs
// to so it may be appropriately routed during init chain.
// Within this application default genesis information is retrieved from
// the ModuleBasicManager which populates json from each BasicModule
// object provided to it during init.
type GenesisState map[string]json.RawMessage
// NewDefaultGenesisState generates the default state for the application.

View File

@@ -1,188 +0,0 @@
package integration
/**
This file is full of test helper functions, taken from simapp
**/
import (
"fmt"
"math/rand"
"os"
"testing"
"time"
wasmd "github.com/CosmWasm/wasmd/app"
"github.com/CosmWasm/wasmd/x/wasm"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/simulation"
"github.com/cosmos/cosmos-sdk/types/tx/signing"
authsign "github.com/cosmos/cosmos-sdk/x/auth/signing"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
"github.com/stretchr/testify/require"
abci "github.com/tendermint/tendermint/abci/types"
"github.com/tendermint/tendermint/crypto"
"github.com/tendermint/tendermint/libs/log"
tmtypes "github.com/tendermint/tendermint/proto/tendermint/types"
dbm "github.com/tendermint/tm-db"
)
// SimAppChainID hardcoded chainID for simulation
const (
DefaultGenTxGas = 1000000
SimAppChainID = "wasmd-app"
)
// Setup initializes a new wasmd.WasmApp. A Nop logger is set in WasmApp.
func Setup(isCheckTx bool) *wasmd.WasmApp {
db := dbm.NewMemDB()
app := wasmd.NewWasmApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, "", 0, wasm.EnableAllProposals)
// app := wasmd.NewWasmApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, 0)
if !isCheckTx {
// init chain must be called to stop deliverState from being nil
genesisState := wasmd.NewDefaultGenesisState()
stateBytes, err := codec.MarshalJSONIndent(app.LegacyAmino(), genesisState)
if err != nil {
panic(err)
}
// Initialize the chain
app.InitChain(
abci.RequestInitChain{
Validators: []abci.ValidatorUpdate{},
AppStateBytes: stateBytes,
},
)
}
return app
}
// SetupWithGenesisAccounts initializes a new wasmd.WasmApp with the passed in
// genesis accounts.
func SetupWithGenesisAccounts(genAccs []authtypes.GenesisAccount) *wasmd.WasmApp {
db := dbm.NewMemDB()
app := wasmd.NewWasmApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, "", 0, wasm.EnableAllProposals)
// initialize the chain with the passed in genesis accounts
genesisState := wasmd.NewDefaultGenesisState()
authGenesis := authtypes.NewGenesisState(authtypes.DefaultParams(), genAccs)
genesisStateBz := app.LegacyAmino().MustMarshalJSON(authGenesis)
genesisState[authtypes.ModuleName] = genesisStateBz
stateBytes, err := codec.MarshalJSONIndent(app.LegacyAmino(), genesisState)
if err != nil {
panic(err)
}
fmt.Println(string(stateBytes))
// Initialize the chain
app.InitChain(
abci.RequestInitChain{
Validators: []abci.ValidatorUpdate{},
AppStateBytes: stateBytes,
},
)
app.Commit()
app.BeginBlock(abci.RequestBeginBlock{Header: tmtypes.Header{Height: app.LastBlockHeight() + 1, ChainID: SimAppChainID}})
return app
}
// SignAndDeliver checks a generated signed transaction and simulates a
// block commitment with the given transaction. A test assertion is made using
// the parameter 'expPass' against the result. A corresponding result is
// returned.
func SignAndDeliver(
t *testing.T, txCfg client.TxConfig, app *wasmd.WasmApp, msgs []sdk.Msg,
accNums, seq []uint64, expPass bool, priv ...crypto.PrivKey,
) (sdk.GasInfo, *sdk.Result, error) {
t.Helper()
tx, err := GenTx(
wasmd.MakeEncodingConfig().TxConfig,
msgs,
sdk.Coins{sdk.NewInt64Coin(sdk.DefaultBondDenom, 0)},
DefaultGenTxGas,
SimAppChainID,
accNums,
seq,
priv...,
)
require.NoError(t, err)
// Simulate a sending a transaction and committing a block
app.BeginBlock(abci.RequestBeginBlock{Header: tmtypes.Header{Height: app.LastBlockHeight() + 1, ChainID: SimAppChainID}})
gasInfo, res, err := app.Deliver(txCfg.TxEncoder(), tx)
if expPass {
require.NoError(t, err)
require.NotNil(t, res)
} else {
require.Error(t, err)
require.Nil(t, res)
}
app.EndBlock(abci.RequestEndBlock{})
app.Commit()
return gasInfo, res, err
}
// GenTx generates a signed mock transaction.
func GenTx(gen client.TxConfig, msgs []sdk.Msg, feeAmt sdk.Coins, gas uint64, chainID string, accnums []uint64, seq []uint64, priv ...crypto.PrivKey) (sdk.Tx, error) {
sigs := make([]signing.SignatureV2, len(priv))
// create a random length memo
r := rand.New(rand.NewSource(time.Now().UnixNano()))
memo := simulation.RandStringOfLength(r, simulation.RandIntBetween(r, 0, 100))
signMode := gen.SignModeHandler().DefaultMode()
for i, p := range priv {
sigs[i] = signing.SignatureV2{
PubKey: p.PubKey(),
Data: &signing.SingleSignatureData{
SignMode: signMode,
},
}
}
tx := gen.NewTxBuilder()
err := tx.SetMsgs(msgs...)
if err != nil {
return nil, err
}
err = tx.SetSignatures(sigs...)
if err != nil {
return nil, err
}
tx.SetMemo(memo)
tx.SetFeeAmount(feeAmt)
tx.SetGasLimit(gas)
for i, p := range priv {
// use a empty chainID for ease of testing
signerData := authsign.SignerData{
ChainID: chainID,
AccountNumber: accnums[i],
Sequence: seq[i],
}
signBytes, err := gen.SignModeHandler().GetSignBytes(signMode, signerData, tx.GetTx())
if err != nil {
panic(err)
}
sig, err := p.Sign(signBytes)
if err != nil {
panic(err)
}
sigs[i].Data.(*signing.SingleSignatureData).Signature = sig
err = tx.SetSignatures(sigs...)
if err != nil {
panic(err)
}
}
return tx.GetTx(), nil
}

View File

@@ -1,99 +0,0 @@
package integration
import (
"encoding/binary"
"fmt"
"testing"
"github.com/CosmWasm/wasmd/app"
"github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1"
sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
"github.com/tendermint/tendermint/crypto"
)
// CreateTestApp will create a new wasmd application and provide money to every address
// listed there
func CreateTestApp(t *testing.T, accounts []*authtypes.BaseAccount) *app.WasmApp {
fmt.Printf("%#v\n", accounts[1])
genAccounts := make([]authtypes.GenesisAccount, len(accounts))
for i, acct := range accounts {
genAccounts[i] = acct
}
wasmd := SetupWithGenesisAccounts(genAccounts)
return wasmd
}
func TestSendWithApp(t *testing.T) {
// TODO: figure out how to get valid sigs
t.Skip("Disabled until I get valid sigs")
// TODO: how to change default coin?
coin := sdk.NewCoins(sdk.NewInt64Coin("stake", 123456))
accts, keys := genAccountsWithKey(t, coin, 2)
wasm := CreateTestApp(t, accts)
// TODO: check account balance first
msg := banktypes.MsgSend{
FromAddress: accts[0].Address,
ToAddress: accts[1].Address,
Amount: sdk.NewCoins(sdk.NewInt64Coin("stake", 20)),
}
_ = sign(t, wasm, &msg, &keys[0], true)
}
func sign(t *testing.T, wasm *app.WasmApp, msg sdk.Msg, signer *signer, expectPass bool) *sdk.Result {
txGen := app.MakeEncodingConfig().TxConfig
_, res, _ := SignAndDeliver(t, txGen, wasm, []sdk.Msg{msg}, []uint64{signer.acctNum}, []uint64{signer.seq}, expectPass, signer.priv)
if expectPass {
signer.seq++
}
return res
}
type signer struct {
priv crypto.PrivKey
seq uint64
acctNum uint64
}
func genAccountsWithKey(t *testing.T, coins sdk.Coins, n int) ([]*authtypes.BaseAccount, []signer) {
//accts := make([]*authtypes.BaseAccount, n)
//keys := make([]signer, n)
//
//for i := range accts {
// priv, pub, addr := maskKeyPubAddr()
// baseAcct := authtypes.NewBaseAccountWithAddress(addr)
// err := baseAcct.SetCoins(coins)
// require.NoError(t, err)
// baseAcct.SetPubKey(pub)
// baseAcct.SetAccountNumber(uint64(i + 1))
// baseAcct.SetSequence(1)
// accts[i] = &baseAcct
// keys[i] = signer{
// priv: priv,
// acctNum: baseAcct.GetAccountNumber(),
// seq: baseAcct.GetSequence(),
// }
//}
//
//return accts, keys
t.Fatal("not implemented")
return nil, nil
}
var maskKeyCounter uint64 = 0
// we need to make this deterministic (same every test run), as encoded address size and thus gas cost,
// depends on the actual bytes (due to ugly CanonicalAddress encoding)
func maskKeyPubAddr() (crypto.PrivKey, crypto.PubKey, sdk.AccAddress) {
maskKeyCounter++
seed := make([]byte, 8)
binary.BigEndian.PutUint64(seed, maskKeyCounter)
key := secp256k1.GenPrivKeyFromSecret(seed)
pub := key.PubKey()
addr := sdk.AccAddress(pub.Address())
return key, pub, addr
}

View File

@@ -0,0 +1,210 @@
package integration
/**
This file is full of test helper functions, taken from simapp
**/
import (
"encoding/json"
"testing"
"time"
wasmd "github.com/CosmWasm/wasmd/app"
"github.com/CosmWasm/wasmd/x/wasm"
bam "github.com/cosmos/cosmos-sdk/baseapp"
"github.com/cosmos/cosmos-sdk/client"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
"github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"
"github.com/cosmos/cosmos-sdk/simapp/helpers"
sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
"github.com/stretchr/testify/require"
abci "github.com/tendermint/tendermint/abci/types"
"github.com/tendermint/tendermint/crypto"
"github.com/tendermint/tendermint/libs/log"
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
tmtypes "github.com/tendermint/tendermint/types"
dbm "github.com/tendermint/tm-db"
)
// Setup initializes a new wasmd.WasmApp. A Nop logger is set in WasmApp.
func Setup(isCheckTx bool, homeDir string) *wasmd.WasmApp {
db := dbm.NewMemDB()
app := wasmd.NewWasmApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, homeDir, 5, wasm.EnableAllProposals, wasmd.EmptyAppOptions{})
// app := wasmd.NewWasmApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, 0)
if !isCheckTx {
// init chain must be called to stop deliverState from being nil
genesisState := wasmd.NewDefaultGenesisState()
stateBytes, err := json.Marshal(genesisState)
if err != nil {
panic(err)
}
// Initialize the chain
app.InitChain(
abci.RequestInitChain{
Validators: []abci.ValidatorUpdate{},
AppStateBytes: stateBytes,
},
)
}
return app
}
type GenesisState map[string]json.RawMessage
// NewDefaultGenesisState generates the default state for the application.
func NewDefaultGenesisState() GenesisState {
encCfg := wasmd.MakeEncodingConfig()
return wasmd.ModuleBasics.DefaultGenesis(encCfg.Marshaler)
}
func SetupWithGenesisValSet(t *testing.T, homeDir string, valSet *tmtypes.ValidatorSet, genAccs []authtypes.GenesisAccount, balances ...banktypes.Balance) *wasmd.WasmApp {
db := dbm.NewMemDB()
app := wasmd.NewWasmApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, homeDir, 5, wasm.EnableAllProposals, wasmd.EmptyAppOptions{})
genesisState := NewDefaultGenesisState()
// set genesis accounts
authGenesis := authtypes.NewGenesisState(authtypes.DefaultParams(), genAccs)
appCodec := wasmd.NewTestSupport(t, app).AppCodec()
genesisState[authtypes.ModuleName] = appCodec.MustMarshalJSON(authGenesis)
validators := make([]stakingtypes.Validator, 0, len(valSet.Validators))
delegations := make([]stakingtypes.Delegation, 0, len(valSet.Validators))
bondAmt := sdk.NewInt(1000000)
for _, val := range valSet.Validators {
// Currently validator requires tmcrypto.ed25519 keys, which don't support
// our Marshaling interfaces, so we need to pack them into our version of ed25519.
// There is ongoing work to add secp256k1 keys (https://github.com/cosmos/cosmos-sdk/pull/7604).
pk, err := ed25519.FromTmEd25519(val.PubKey)
require.NoError(t, err)
pkAny, err := codectypes.PackAny(pk)
require.NoError(t, err)
validator := stakingtypes.Validator{
OperatorAddress: sdk.ValAddress(val.Address).String(),
ConsensusPubkey: pkAny,
Jailed: false,
Status: stakingtypes.Bonded,
Tokens: bondAmt,
DelegatorShares: sdk.OneDec(),
Description: stakingtypes.Description{},
UnbondingHeight: int64(0),
UnbondingTime: time.Unix(0, 0).UTC(),
Commission: stakingtypes.NewCommission(sdk.ZeroDec(), sdk.ZeroDec(), sdk.ZeroDec()),
MinSelfDelegation: sdk.ZeroInt(),
}
validators = append(validators, validator)
delegations = append(delegations, stakingtypes.NewDelegation(genAccs[0].GetAddress(), val.Address.Bytes(), sdk.OneDec()))
}
// set validators and delegations
stakingGenesis := stakingtypes.NewGenesisState(stakingtypes.DefaultParams(), validators, delegations)
genesisState[stakingtypes.ModuleName] = appCodec.MustMarshalJSON(stakingGenesis)
totalSupply := sdk.NewCoins()
for _, b := range balances {
// add genesis acc tokens and delegated tokens to total supply
totalSupply = totalSupply.Add(b.Coins.Add(sdk.NewCoin(sdk.DefaultBondDenom, bondAmt))...)
}
// update total supply
bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{})
genesisState[banktypes.ModuleName] = appCodec.MustMarshalJSON(bankGenesis)
stateBytes, err := json.MarshalIndent(genesisState, "", " ")
require.NoError(t, err)
// init chain will set the validator set and initialize the genesis accounts
app.InitChain(
abci.RequestInitChain{
Validators: []abci.ValidatorUpdate{},
ConsensusParams: DefaultConsensusParams,
AppStateBytes: stateBytes,
},
)
// commit genesis changes
app.Commit()
app.BeginBlock(abci.RequestBeginBlock{Header: tmproto.Header{
Height: app.LastBlockHeight() + 1,
AppHash: app.LastCommitID().Hash,
ValidatorsHash: valSet.Hash(),
NextValidatorsHash: valSet.Hash(),
}})
return app
}
var DefaultConsensusParams = &abci.ConsensusParams{
Block: &abci.BlockParams{
MaxBytes: 200000,
MaxGas: 2000000,
},
Evidence: &tmproto.EvidenceParams{
MaxAgeNumBlocks: 302400,
MaxAgeDuration: 1814400,
},
Validator: &tmproto.ValidatorParams{
PubKeyTypes: []string{
tmtypes.ABCIPubKeyTypeEd25519,
},
},
}
// SignCheckDeliver checks a generated signed transaction and simulates a
// block commitment with the given transaction. A test assertion is made using
// the parameter 'expPass' against the result. A corresponding result is
// returned.
func SignCheckDeliver(
t *testing.T, txCfg client.TxConfig, app *bam.BaseApp, header tmproto.Header, msgs []sdk.Msg,
chainID string, accNums, accSeqs []uint64, expSimPass, expPass bool, priv ...crypto.PrivKey,
) (sdk.GasInfo, *sdk.Result, error) {
tx, err := helpers.GenTx(
txCfg,
msgs,
sdk.Coins{sdk.NewInt64Coin(sdk.DefaultBondDenom, 0)},
helpers.DefaultGenTxGas,
chainID,
accNums,
accSeqs,
priv...,
)
require.NoError(t, err)
txBytes, err := txCfg.TxEncoder()(tx)
require.Nil(t, err)
// Must simulate now as CheckTx doesn't run Msgs anymore
_, res, err := app.Simulate(txBytes)
if expSimPass {
require.NoError(t, err)
require.NotNil(t, res)
} else {
require.Error(t, err)
require.Nil(t, res)
}
// Simulate a sending a transaction and committing a block
app.BeginBlock(abci.RequestBeginBlock{Header: header})
gInfo, res, err := app.Deliver(txCfg.TxEncoder(), tx)
if expPass {
require.NoError(t, err)
require.NotNil(t, res)
} else {
require.Error(t, err)
require.Nil(t, res)
}
app.EndBlock(abci.RequestEndBlock{})
app.Commit()
return gInfo, res, err
}

View File

@@ -29,7 +29,7 @@ func BenchmarkFullAppSimulation(b *testing.B) {
}
}()
app := NewWasmApp(logger, db, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, interBlockCacheOpt())
app := NewWasmApp(logger, db, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, EmptyAppOptions{}, interBlockCacheOpt())
// run randomized simulation
_, simParams, simErr := simulation.SimulateFromSeed(
@@ -41,6 +41,7 @@ func BenchmarkFullAppSimulation(b *testing.B) {
simapp.SimulationOperations(app, app.appCodec, config),
app.ModuleAccountAddrs(),
config,
app.appCodec,
)
// export state and simParams before the simulation error is checked
@@ -73,7 +74,7 @@ func BenchmarkInvariants(b *testing.B) {
}
}()
app := NewWasmApp(logger, db, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, interBlockCacheOpt())
app := NewWasmApp(logger, db, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, EmptyAppOptions{}, interBlockCacheOpt())
// run randomized simulation
_, simParams, simErr := simulation.SimulateFromSeed(
@@ -85,6 +86,7 @@ func BenchmarkInvariants(b *testing.B) {
simapp.SimulationOperations(app, app.appCodec, config),
app.ModuleAccountAddrs(),
config,
app.appCodec,
)
// export state and simParams before the simulation error is checked

View File

@@ -70,7 +70,7 @@ func TestFullAppSimulation(t *testing.T) {
require.NoError(t, os.RemoveAll(dir))
}()
app := NewWasmApp(logger, db, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, fauxMerkleModeOpt)
app := NewWasmApp(logger, db, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, EmptyAppOptions{}, fauxMerkleModeOpt)
require.Equal(t, appName, app.Name())
// run randomized simulation
@@ -83,6 +83,7 @@ func TestFullAppSimulation(t *testing.T) {
simapp.SimulationOperations(app, app.appCodec, config),
app.ModuleAccountAddrs(),
config,
app.appCodec,
)
// export state and simParams before the simulation error is checked
@@ -107,7 +108,7 @@ func TestAppImportExport(t *testing.T) {
require.NoError(t, os.RemoveAll(dir))
}()
app := NewWasmApp(logger, db, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, fauxMerkleModeOpt)
app := NewWasmApp(logger, db, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, EmptyAppOptions{}, fauxMerkleModeOpt)
require.Equal(t, appName, app.Name())
// Run randomized simulation
@@ -120,6 +121,7 @@ func TestAppImportExport(t *testing.T) {
simapp.SimulationOperations(app, app.appCodec, config),
app.ModuleAccountAddrs(),
config,
app.appCodec,
)
// export state and simParams before the simulation error is checked
@@ -146,7 +148,7 @@ func TestAppImportExport(t *testing.T) {
require.NoError(t, os.RemoveAll(newDir))
}()
newApp := NewWasmApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, fauxMerkleModeOpt)
newApp := NewWasmApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, EmptyAppOptions{}, fauxMerkleModeOpt)
require.Equal(t, appName, newApp.Name())
var genesisState GenesisState
@@ -203,7 +205,7 @@ func TestAppSimulationAfterImport(t *testing.T) {
require.NoError(t, os.RemoveAll(dir))
}()
app := NewWasmApp(logger, db, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, fauxMerkleModeOpt)
app := NewWasmApp(logger, db, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, EmptyAppOptions{}, fauxMerkleModeOpt)
require.Equal(t, appName, app.Name())
// Run randomized simulation
@@ -216,6 +218,7 @@ func TestAppSimulationAfterImport(t *testing.T) {
simapp.SimulationOperations(app, app.appCodec, config),
app.ModuleAccountAddrs(),
config,
app.appCodec,
)
// export state and simParams before the simulation error is checked
@@ -247,7 +250,7 @@ func TestAppSimulationAfterImport(t *testing.T) {
require.NoError(t, os.RemoveAll(newDir))
}()
newApp := NewWasmApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, fauxMerkleModeOpt)
newApp := NewWasmApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, EmptyAppOptions{}, fauxMerkleModeOpt)
require.Equal(t, appName, newApp.Name())
newApp.InitChain(abci.RequestInitChain{
@@ -263,6 +266,7 @@ func TestAppSimulationAfterImport(t *testing.T) {
simapp.SimulationOperations(newApp, newApp.appCodec, config),
newApp.ModuleAccountAddrs(),
config,
app.appCodec,
)
require.NoError(t, err)
}
@@ -296,7 +300,7 @@ func TestAppStateDeterminism(t *testing.T) {
db := dbm.NewMemDB()
app := NewWasmApp(logger, db, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, interBlockCacheOpt())
app := NewWasmApp(logger, db, nil, true, map[int64]bool{}, "", simapp.FlagPeriodValue, wasm.EnableAllProposals, EmptyAppOptions{}, interBlockCacheOpt())
fmt.Printf(
"running non-determinism simulation; seed %d: %d/%d, attempt: %d/%d\n",
@@ -312,6 +316,7 @@ func TestAppStateDeterminism(t *testing.T) {
simapp.SimulationOperations(app, app.appCodec, config),
app.ModuleAccountAddrs(),
config,
app.appCodec,
)
require.NoError(t, err)

53
app/test_helpers.go Normal file
View File

@@ -0,0 +1,53 @@
package app
import (
"testing"
"github.com/CosmWasm/wasmd/x/wasm"
"github.com/cosmos/cosmos-sdk/codec"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
ibctransferkeeper "github.com/cosmos/cosmos-sdk/x/ibc/applications/transfer/keeper"
ibckeeper "github.com/cosmos/cosmos-sdk/x/ibc/core/keeper"
stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
)
type TestSupport struct {
t *testing.T
app *WasmApp
}
func NewTestSupport(t *testing.T, app *WasmApp) *TestSupport {
return &TestSupport{t: t, app: app}
}
func (s TestSupport) IBCKeeper() ibckeeper.Keeper {
return *s.app.ibcKeeper
}
func (s TestSupport) WasmKeeper() wasm.Keeper {
return s.app.wasmKeeper
}
func (s TestSupport) AppCodec() codec.Marshaler {
return s.app.appCodec
}
func (s TestSupport) StakingKeeper() stakingkeeper.Keeper {
return s.app.stakingKeeper
}
func (s TestSupport) BankKeeper() bankkeeper.Keeper {
return s.app.bankKeeper
}
func (s TestSupport) TransferKeeper() ibctransferkeeper.Keeper {
return s.app.transferKeeper
}
// EmptyAppOptions is a stub implementing AppOptions
type EmptyAppOptions struct{}
// Get implements AppOptions
func (ao EmptyAppOptions) Get(o string) interface{} {
return nil
}

View File

@@ -6,16 +6,13 @@ import (
"os"
"path/filepath"
"github.com/CosmWasm/wasmd/app"
"github.com/cosmos/cosmos-sdk/snapshots"
"github.com/cosmos/cosmos-sdk/version"
"github.com/spf13/cast"
"github.com/spf13/cobra"
tmcli "github.com/tendermint/tendermint/libs/cli"
"github.com/tendermint/tendermint/libs/log"
dbm "github.com/tendermint/tm-db"
"github.com/CosmWasm/wasmd/app"
"github.com/cosmos/cosmos-sdk/baseapp"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/debug"
@@ -24,11 +21,14 @@ import (
"github.com/cosmos/cosmos-sdk/client/rpc"
"github.com/cosmos/cosmos-sdk/server"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
"github.com/cosmos/cosmos-sdk/snapshots"
"github.com/cosmos/cosmos-sdk/store"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/version"
authclient "github.com/cosmos/cosmos-sdk/x/auth/client"
"github.com/cosmos/cosmos-sdk/x/auth/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
"github.com/cosmos/cosmos-sdk/x/crisis"
genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli"
)
@@ -66,6 +66,7 @@ func NewRootCmd() (*cobra.Command, app.EncodingConfig) {
}
initRootCmd(rootCmd, encodingConfig)
return rootCmd, encodingConfig
}
@@ -100,7 +101,7 @@ func initRootCmd(rootCmd *cobra.Command, encodingConfig app.EncodingConfig) {
debug.Cmd(),
)
server.AddCommands(rootCmd, app.DefaultNodeHome, newApp, exportAppStateAndTMValidators)
server.AddCommands(rootCmd, app.DefaultNodeHome, newApp, createWasnAppAndExport, addModuleInitFlags)
// add keybase, auxiliary RPC, query, and tx child commands
rootCmd.AddCommand(
@@ -109,6 +110,10 @@ func initRootCmd(rootCmd *cobra.Command, encodingConfig app.EncodingConfig) {
)
}
func addModuleInitFlags(startCmd *cobra.Command) {
crisis.AddModuleInitFlags(startCmd)
}
func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts servertypes.AppOptions) servertypes.Application {
var cache sdk.MultiStorePersistentCache
@@ -120,10 +125,12 @@ func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts serverty
for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) {
skipUpgradeHeights[int64(h)] = true
}
pruningOpts, err := server.GetPruningOptionsFromFlags(appOpts)
if err != nil {
panic(err)
}
snapshotDir := filepath.Join(cast.ToString(appOpts.Get(flags.FlagHome)), "data", "snapshots")
snapshotDB, err := sdk.NewLevelDB("metadata", snapshotDir)
if err != nil {
@@ -138,6 +145,7 @@ func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts serverty
cast.ToString(appOpts.Get(flags.FlagHome)),
cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)),
app.GetEnabledProposals(),
appOpts,
baseapp.SetPruning(pruningOpts),
baseapp.SetMinGasPrices(cast.ToString(appOpts.Get(server.FlagMinGasPrices))),
baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(server.FlagHaltHeight))),
@@ -152,20 +160,20 @@ func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts serverty
)
}
func exportAppStateAndTMValidators(
logger log.Logger, db dbm.DB, traceStore io.Writer, height int64, forZeroHeight bool, jailWhiteList []string,
) (servertypes.ExportedApp, error) {
func createWasnAppAndExport(
logger log.Logger, db dbm.DB, traceStore io.Writer, height int64, forZeroHeight bool, jailAllowedAddrs []string,
appOpts servertypes.AppOptions) (servertypes.ExportedApp, error) {
var wasmApp *app.WasmApp
if height != -1 {
wasmApp = app.NewWasmApp(logger, db, traceStore, false, map[int64]bool{}, "", uint(1), app.GetEnabledProposals())
wasmApp = app.NewWasmApp(logger, db, traceStore, false, map[int64]bool{}, "", uint(1), app.GetEnabledProposals(), appOpts)
if err := wasmApp.LoadHeight(height); err != nil {
return servertypes.ExportedApp{}, err
}
} else {
wasmApp = app.NewWasmApp(logger, db, traceStore, true, map[int64]bool{}, "", uint(1), app.GetEnabledProposals())
wasmApp = app.NewWasmApp(logger, db, traceStore, true, map[int64]bool{}, "", uint(1), app.GetEnabledProposals(), appOpts)
}
return wasmApp.ExportAppStateAndValidators(forZeroHeight, jailWhiteList)
return wasmApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs)
}

View File

@@ -204,7 +204,7 @@ func InitTestnet(
genAccounts = append(genAccounts, authtypes.NewBaseAccount(addr, nil, 0, 0))
valTokens := sdk.TokensFromConsensusPower(100)
createValMsg := stakingtypes.NewMsgCreateValidator(
createValMsg, err := stakingtypes.NewMsgCreateValidator(
sdk.ValAddress(addr),
valPubKeys[i],
sdk.NewCoin(sdk.DefaultBondDenom, valTokens),
@@ -212,6 +212,9 @@ func InitTestnet(
stakingtypes.NewCommissionRates(sdk.OneDec(), sdk.OneDec(), sdk.OneDec()),
sdk.OneInt(),
)
if err != nil {
return err
}
txBuilder := clientCtx.TxConfig.NewTxBuilder()
if err := txBuilder.SetMsgs(createValMsg); err != nil {

4
go.mod
View File

@@ -4,7 +4,7 @@ go 1.15
require (
github.com/CosmWasm/go-cosmwasm v0.11.0
github.com/cosmos/cosmos-sdk v0.40.0-rc1
github.com/cosmos/cosmos-sdk v0.40.0-rc2
github.com/cosmos/iavl v0.15.0-rc4
github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b
github.com/gogo/protobuf v1.3.1
@@ -16,7 +16,7 @@ require (
github.com/rakyll/statik v0.1.7
github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa
github.com/spf13/cast v1.3.1
github.com/spf13/cobra v1.1.0
github.com/spf13/cobra v1.1.1
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.7.1
github.com/stretchr/testify v1.6.1

29
go.sum
View File

@@ -90,8 +90,6 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/confio/ics23/go v0.0.0-20200817220745-f173e6211efb h1:+7FsS1gZ1Km5LRjGV2hztpier/5i6ngNjvNpxbWP5I0=
github.com/confio/ics23/go v0.0.0-20200817220745-f173e6211efb/go.mod h1:E45NqnlpxGnpfTWL/xauN7MRwEE28T4Dd4uraToOaKg=
github.com/confio/ics23/go v0.6.3 h1:PuGK2V1NJWZ8sSkNDq91jgT/cahFEW9RGp4Y5jxulf0=
github.com/confio/ics23/go v0.6.3/go.mod h1:E45NqnlpxGnpfTWL/xauN7MRwEE28T4Dd4uraToOaKg=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
@@ -104,14 +102,10 @@ github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cosmos/cosmos-sdk v0.34.4-0.20201016130402-6e569e125571 h1:S8nqAPT01CVOC6jEnRYGHySkpezC8lu6Xt3dfnei95M=
github.com/cosmos/cosmos-sdk v0.34.4-0.20201016130402-6e569e125571/go.mod h1:4UED4atks+Y3NgLdCFkVqNHdjXTHDO2c+r3ydaFh0QE=
github.com/cosmos/cosmos-sdk v0.40.0-rc1 h1:DbM2vbmx9soER38YkdLB5g9d+YhaDlKAl2Pne5RLcEQ=
github.com/cosmos/cosmos-sdk v0.40.0-rc1/go.mod h1:4wGruNUDrenXKRl/F7ujW29lTv3C+6/TDWs3QfZZN2Y=
github.com/cosmos/cosmos-sdk v0.40.0-rc2 h1:6OkkAZ9Qo/db7WUppxRMPVCV1r9MrI0HOYQ9COt138s=
github.com/cosmos/cosmos-sdk v0.40.0-rc2/go.mod h1:KvZzKUEc7KrMiiIeU0zKPMMwuxxn+R0Leo8vBSDgOeQ=
github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d h1:49RLWk1j44Xu4fjHb6JFYmeUnDORVwHNkDxaQ0ctCVU=
github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y=
github.com/cosmos/iavl v0.15.0-rc3 h1:rSm60IFfDCD9qDfvXKEmaJhcv0rB5uCbVlBDKsynxqw=
github.com/cosmos/iavl v0.15.0-rc3/go.mod h1:rQ2zK/LuivThMjve3Yr6VkjvCqCXl+fgHCY7quiUA68=
github.com/cosmos/iavl v0.15.0-rc4 h1:P1wmET7BueqCzfxsn+BzVkDWDLY9ij2JNwkbIdM7RG8=
github.com/cosmos/iavl v0.15.0-rc4/go.mod h1:5CsecJdh44Uj4vZ6WSPeWq84hNW5BwRI36ZsAbfJvRw=
github.com/cosmos/ledger-cosmos-go v0.11.1 h1:9JIYsGnXP613pb2vPjFeMMjBI5lEDsEaF6oYorTy6J4=
@@ -129,11 +123,9 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
github.com/dgraph-io/badger/v2 v2.0.3/go.mod h1:3KY8+bsP8wI0OEnQJAKpd4wIJW/Mm32yw2j/9FUVnIM=
github.com/dgraph-io/badger/v2 v2.2007.1/go.mod h1:26P/7fbL4kUZVEVKLAKXkBXKOydDmM2p1e+NhhnBCAE=
github.com/dgraph-io/badger/v2 v2.2007.2 h1:EjjK0KqwaFMlPin1ajhP943VPENHJdEz1KLIegjaI3k=
github.com/dgraph-io/badger/v2 v2.2007.2/go.mod h1:26P/7fbL4kUZVEVKLAKXkBXKOydDmM2p1e+NhhnBCAE=
github.com/dgraph-io/ristretto v0.0.2-0.20200115201040-8f368f2f2ab3/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E=
github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E=
github.com/dgraph-io/ristretto v0.0.3 h1:jh22xisGBjrEVnRZ1DVTpBVQm0Xndu8sMl0CWDzSIBI=
github.com/dgraph-io/ristretto v0.0.3/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E=
@@ -259,13 +251,11 @@ github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0U
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-middleware v1.2.1/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI=
github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.14.7/go.mod h1:oYZKL012gGh6LMyg/xA7Q2yq6j8bu0wa+9w14EEthWU=
github.com/grpc-ecosystem/grpc-gateway v1.15.2 h1:HC+hWRWf+v5zTMPyoaYTKIJih+4sd4XRWmj0qlG87Co=
github.com/grpc-ecosystem/grpc-gateway v1.15.2/go.mod h1:vO11I9oWA+KsxmfFQPhLnnIb1VDE24M+pdxZFiuZcA8=
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU=
@@ -361,7 +351,6 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643 h1:hLDRPB66XQT/8+wG9WsDpiCvZf1yKO7sz7scAjSlBa0=
github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM=
github.com/minio/highwayhash v1.0.0/go.mod h1:xQboMTeM9nY9v/LlAOxFctujiv5+Aq2hR5dxBpaMbdc=
github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz/0=
github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
@@ -526,8 +515,8 @@ github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
github.com/spf13/cobra v1.1.0 h1:aq3wCKjTPmzcNWLVGnsFVN4rflK7Uzn10F8/aw8MhdQ=
github.com/spf13/cobra v1.1.0/go.mod h1:yk5b0mALVusDL5fMM6Rd1wgnoO5jUPhwsQ6LQAJTidQ=
github.com/spf13/cobra v1.1.1 h1:KfztREH0tPxJJ+geloSLaAkaPkr4ki2Er5quFV1TDo4=
github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
@@ -566,12 +555,10 @@ github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 h1:hqAk8riJvK4RM
github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15/go.mod h1:z4YtwM70uOnk8h0pjJYlj3zdYwi9l03By6iAIF5j/Pk=
github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E=
github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME=
github.com/tendermint/tendermint v0.34.0-rc3/go.mod h1:BoHcEpjfpBHc1Be7RQz3AHaXFNObcDG7SNHCev6Or4g=
github.com/tendermint/tendermint v0.34.0-rc4/go.mod h1:yotsojf2C1QBOw4dZrTcxbyxmPUrT4hNuOQWX9XUwB4=
github.com/tendermint/tendermint v0.34.0-rc5 h1:2bnQfWyOMfTCbol5pwB8CgM2nxi6/Kz6zqlS6Udm/Cg=
github.com/tendermint/tendermint v0.34.0-rc5/go.mod h1:yotsojf2C1QBOw4dZrTcxbyxmPUrT4hNuOQWX9XUwB4=
github.com/tendermint/tm-db v0.5.1/go.mod h1:g92zWjHpCYlEvQXvy9M168Su8V1IBEeawpXVVBaK4f4=
github.com/tendermint/tm-db v0.6.1/go.mod h1:m3x9kRP4UFd7JODJL0yBAZqE7wTw+S37uAE90cTx7OA=
github.com/tendermint/tm-db v0.6.2 h1:DOn8jwCdjJblrCFJbtonEIPD1IuJWpbRUUdR8GWE4RM=
github.com/tendermint/tm-db v0.6.2/go.mod h1:GYtQ67SUvATOcoY8/+x6ylk8Qo02BQyLrAs+yAcLvGI=
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
@@ -614,12 +601,9 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a h1:vclmkQCjlDX5OydZ9wv8rBCcS0QyQY66Mpf/7BZbInM=
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee h1:4yd7jl+vXjalO5ztz6Vc1VADv+S/80LGJmyl1ROJ2AI=
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -786,8 +770,6 @@ google.golang.org/genproto v0.0.0-20200324203455-a04cca1dde73/go.mod h1:55QSHmfG
google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987 h1:PDIOdWxZ8eRizhKa1AAvY53xsvLB1cWorMjslvY3VA8=
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201014134559-03b6142f0dc9 h1:fG84H9C3EXfuDlzkG+VEPDYHHExklP6scH1QZ5gQTqU=
google.golang.org/genproto v0.0.0-20201014134559-03b6142f0dc9/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
@@ -805,7 +787,6 @@ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.32.0 h1:zWTV+LMdc3kaiJMSTOFz2UgSBgx8RNQoTGiZu3fR9S0=
google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
@@ -826,8 +807,6 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLFVxaq6wH4YuVdsUOr75U=
gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=

View File

@@ -9,9 +9,9 @@ import (
"os"
"testing"
"github.com/CosmWasm/wasmd/x/wasm/internal/keeper"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/simapp"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
"github.com/gorilla/mux"
"github.com/stretchr/testify/require"
@@ -30,7 +30,7 @@ func TestGovRestHandlers(t *testing.T) {
"fees": []dict{{"denom": "ustake", "amount": "1000000"}},
}
)
encodingConfig := simapp.MakeEncodingConfig()
encodingConfig := keeper.MakeEncodingConfig()
clientCtx := client.Context{}.
WithJSONMarshaler(encodingConfig.Marshaler).
WithTxConfig(encodingConfig.TxConfig).

View File

@@ -55,6 +55,7 @@ func initRecurseContract(t *testing.T) (contract sdk.AccAddress, creator sdk.Acc
}
func TestGasCostOnQuery(t *testing.T) {
t.Skip("Alex: enable later when the model + gas costs become clear")
const (
GasNoWork uint64 = InstanceCost + 2_938
// Note: about 100 SDK gas (10k wasmer gas) for each round of sha256
@@ -213,6 +214,7 @@ func TestGasOnExternalQuery(t *testing.T) {
}
func TestLimitRecursiveQueryGas(t *testing.T) {
t.Skip("Alex: enable later when the model + gas costs become clear")
// The point of this test from https://github.com/CosmWasm/cosmwasm/issues/456
// Basically, if I burn 90% of gas in CPU loop, then query out (to my self)
// the sub-query will have all the original gas (minus the 40k instance charge)

View File

@@ -6,6 +6,8 @@ import (
"testing"
wasmTypes "github.com/CosmWasm/go-cosmwasm/types"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
"github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"
sdk "github.com/cosmos/cosmos-sdk/types"
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
@@ -614,6 +616,11 @@ func addValidator(t *testing.T, ctx sdk.Context, stakingKeeper stakingkeeper.Kee
owner := createFakeFundedAccount(t, ctx, accountKeeper, bankKeeper, sdk.Coins{value})
pk, err := ed25519.FromTmEd25519(pub)
require.NoError(t, err)
pkAny, err := codectypes.PackAny(pk)
require.NoError(t, err)
msg := stakingtypes.MsgCreateValidator{
Description: types.Description{
Moniker: "Validator power",
@@ -626,12 +633,12 @@ func addValidator(t *testing.T, ctx sdk.Context, stakingKeeper stakingkeeper.Kee
MinSelfDelegation: sdk.OneInt(),
DelegatorAddress: owner.String(),
ValidatorAddress: addr.String(),
Pubkey: sdk.MustBech32ifyPubKey(sdk.Bech32PubKeyTypeConsPub, pub),
Pubkey: pkAny,
Value: value,
}
h := staking.NewHandler(stakingKeeper)
_, err := h(ctx, &msg)
_, err = h(ctx, &msg)
require.NoError(t, err)
return addr
}

View File

@@ -152,8 +152,10 @@ func CreateTestInput(t *testing.T, isCheckTx bool, supportedFeatures string, enc
Height: 1234567,
Time: time.Date(2020, time.April, 22, 12, 0, 0, 0, time.UTC),
}, isCheckTx, log.NewNopLogger())
encodingConfig := MakeEncodingConfig
paramsKeeper := paramskeeper.NewKeeper(encodingConfig().Marshaler, encodingConfig().Amino, keyParams, tkeyParams)
encodingConfig := MakeEncodingConfig()
appCodec, legacyAmino := encodingConfig.Marshaler, encodingConfig.Amino
paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, keyParams, tkeyParams)
paramsKeeper.Subspace(authtypes.ModuleName)
paramsKeeper.Subspace(banktypes.ModuleName)
paramsKeeper.Subspace(stakingtypes.ModuleName)
@@ -173,7 +175,7 @@ func CreateTestInput(t *testing.T, isCheckTx bool, supportedFeatures string, enc
}
authSubsp, _ := paramsKeeper.GetSubspace(authtypes.ModuleName)
authKeeper := authkeeper.NewAccountKeeper(
encodingConfig().Marshaler,
appCodec,
keyAcc, // target store
authSubsp,
authtypes.ProtoBaseAccount, // prototype
@@ -187,7 +189,7 @@ func CreateTestInput(t *testing.T, isCheckTx bool, supportedFeatures string, enc
bankSubsp, _ := paramsKeeper.GetSubspace(banktypes.ModuleName)
bankKeeper := bankkeeper.NewBaseKeeper(
encodingConfig().Marshaler,
appCodec,
keyBank,
authKeeper,
bankSubsp,
@@ -198,11 +200,11 @@ func CreateTestInput(t *testing.T, isCheckTx bool, supportedFeatures string, enc
bankKeeper.SetParams(ctx, bankParams)
stakingSubsp, _ := paramsKeeper.GetSubspace(stakingtypes.ModuleName)
stakingKeeper := stakingkeeper.NewKeeper(encodingConfig().Marshaler, keyStaking, authKeeper, bankKeeper, stakingSubsp)
stakingKeeper := stakingkeeper.NewKeeper(appCodec, keyStaking, authKeeper, bankKeeper, stakingSubsp)
stakingKeeper.SetParams(ctx, TestingStakeParams)
distSubsp, _ := paramsKeeper.GetSubspace(distributiontypes.ModuleName)
distKeeper := distributionkeeper.NewKeeper(encodingConfig().Marshaler, keyDistro, distSubsp, authKeeper, bankKeeper, stakingKeeper, authtypes.FeeCollectorName, nil)
distKeeper := distributionkeeper.NewKeeper(appCodec, keyDistro, distSubsp, authKeeper, bankKeeper, stakingKeeper, authtypes.FeeCollectorName, nil)
distKeeper.SetParams(ctx, distributiontypes.DefaultParams())
stakingKeeper.SetHooks(distKeeper.Hooks())
@@ -230,7 +232,7 @@ func CreateTestInput(t *testing.T, isCheckTx bool, supportedFeatures string, enc
wasmConfig := wasmTypes.DefaultWasmConfig()
keeper := NewKeeper(
encodingConfig().Marshaler,
appCodec,
keyWasm,
paramsKeeper.Subspace(wasmtypes.DefaultParamspace),
authKeeper,
@@ -255,7 +257,7 @@ func CreateTestInput(t *testing.T, isCheckTx bool, supportedFeatures string, enc
AddRoute(wasmtypes.RouterKey, NewWasmProposalHandler(keeper, wasmtypes.EnableAllProposals))
govKeeper := govkeeper.NewKeeper(
encodingConfig().Marshaler, keyGov, paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govtypes.ParamKeyTable()), authKeeper, bankKeeper, stakingKeeper, govRouter,
appCodec, keyGov, paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govtypes.ParamKeyTable()), authKeeper, bankKeeper, stakingKeeper, govRouter,
)
govKeeper.SetProposalID(ctx, govtypes.DefaultStartingProposalID)
@@ -329,31 +331,23 @@ type HackatomExampleContract struct {
VerifierAddr sdk.AccAddress
Beneficiary crypto.PrivKey
BeneficiaryAddr sdk.AccAddress
CodeID uint64
}
// InstantiateHackatomExampleContract load and instantiate the "./testdata/hackatom.wasm" contract
func InstantiateHackatomExampleContract(t *testing.T, ctx sdk.Context, keepers TestKeepers) HackatomExampleContract {
anyAmount := sdk.NewCoins(sdk.NewInt64Coin("denom", 1000))
creator, _, creatorAddr := keyPubAddr()
fundAccounts(t, ctx, keepers.AccountKeeper, keepers.BankKeeper, creatorAddr, anyAmount)
anyAmount, creator, creatorAddr, codeID := StoreHackatomExampleContract(t, ctx, keepers)
verifier, _, verifierAddr := keyPubAddr()
fundAccounts(t, ctx, keepers.AccountKeeper, keepers.BankKeeper, verifierAddr, anyAmount)
wasmCode, err := ioutil.ReadFile("./testdata/hackatom.wasm")
require.NoError(t, err)
contractID, err := keepers.WasmKeeper.Create(ctx, creatorAddr, wasmCode, "", "", nil)
require.NoError(t, err)
beneficiary, _, beneficiaryAddr := keyPubAddr()
initMsg := HackatomExampleInitMsg{
initMsgBz := HackatomExampleInitMsg{
Verifier: verifierAddr,
Beneficiary: beneficiaryAddr,
}
initMsgBz, err := json.Marshal(initMsg)
require.NoError(t, err)
}.GetBytes(t)
initialAmount := sdk.NewCoins(sdk.NewInt64Coin("denom", 100))
contractAddr, err := keepers.WasmKeeper.Instantiate(ctx, contractID, creatorAddr, nil, initMsgBz, "demo contract to query", initialAmount)
contractAddr, err := keepers.WasmKeeper.Instantiate(ctx, codeID, creatorAddr, nil, initMsgBz, "demo contract to query", initialAmount)
require.NoError(t, err)
return HackatomExampleContract{
InitialAmount: initialAmount,
@@ -364,14 +358,34 @@ func InstantiateHackatomExampleContract(t *testing.T, ctx sdk.Context, keepers T
VerifierAddr: verifierAddr,
Beneficiary: beneficiary,
BeneficiaryAddr: beneficiaryAddr,
CodeID: codeID,
}
}
func StoreHackatomExampleContract(t *testing.T, ctx sdk.Context, keepers TestKeepers) (sdk.Coins, crypto.PrivKey, sdk.AccAddress, uint64) {
anyAmount := sdk.NewCoins(sdk.NewInt64Coin("denom", 1000))
creator, _, creatorAddr := keyPubAddr()
fundAccounts(t, ctx, keepers.AccountKeeper, keepers.BankKeeper, creatorAddr, anyAmount)
wasmCode, err := ioutil.ReadFile("./testdata/hackatom.wasm")
require.NoError(t, err)
codeID, err := keepers.WasmKeeper.Create(ctx, creatorAddr, wasmCode, "", "", nil)
require.NoError(t, err)
return anyAmount, creator, creatorAddr, codeID
}
type HackatomExampleInitMsg struct {
Verifier sdk.AccAddress `json:"verifier"`
Beneficiary sdk.AccAddress `json:"beneficiary"`
}
func (m HackatomExampleInitMsg) GetBytes(t *testing.T) []byte {
initMsgBz, err := json.Marshal(m)
require.NoError(t, err)
return initMsgBz
}
func createFakeFundedAccount(t *testing.T, ctx sdk.Context, am authkeeper.AccountKeeper, bank bankkeeper.Keeper, coins sdk.Coins) sdk.AccAddress {
_, _, addr := keyPubAddr()
fundAccounts(t, ctx, am, bank, addr, coins)

View File

@@ -62,11 +62,12 @@ func (msg MsgInstantiateContract) ValidateBasic() error {
}
if msg.CodeID == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "code_id is required")
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "code id is required")
}
if err := validateLabel(msg.Label); err != nil {
return err
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "label is required")
}
if !msg.InitFunds.IsValid() {
@@ -137,7 +138,7 @@ func (msg MsgMigrateContract) Type() string {
func (msg MsgMigrateContract) ValidateBasic() error {
if msg.CodeID == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "code_id is required")
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "code id is required")
}
if err := sdk.VerifyAddressFormat(msg.Sender); err != nil {
return sdkerrors.Wrap(err, "sender")

View File

@@ -283,49 +283,49 @@ func init() {
func init() { proto.RegisterFile("x/wasm/internal/types/msg.proto", fileDescriptor_22c4d58a052e9e95) }
var fileDescriptor_22c4d58a052e9e95 = []byte{
// 665 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x95, 0xbf, 0x6f, 0xd3, 0x40,
0x14, 0xc7, 0xe3, 0xfc, 0x6a, 0x7b, 0x0d, 0x15, 0xb2, 0xda, 0xca, 0x54, 0xc8, 0x0e, 0xed, 0x92,
0xa5, 0x76, 0x5b, 0x24, 0x90, 0x90, 0x18, 0x92, 0xf0, 0x43, 0x41, 0x32, 0x42, 0xae, 0x50, 0x05,
0x4b, 0x74, 0xb6, 0xaf, 0xc7, 0x95, 0xf8, 0xae, 0xf2, 0xbb, 0x90, 0x74, 0x63, 0x64, 0x44, 0x4c,
0x8c, 0x0c, 0x4c, 0x2c, 0xfc, 0x1b, 0x1d, 0x3b, 0x32, 0x05, 0x94, 0xfe, 0x17, 0x9d, 0xd0, 0xd9,
0xd7, 0x2a, 0x48, 0x1d, 0xa2, 0xb6, 0x19, 0x58, 0x72, 0x39, 0xbd, 0xef, 0xfb, 0xbe, 0xe7, 0xcf,
0xdd, 0xe9, 0x21, 0x67, 0xe8, 0x0d, 0x30, 0x24, 0x1e, 0xe3, 0x92, 0xa4, 0x1c, 0xf7, 0x3c, 0x79,
0x74, 0x48, 0xc0, 0x4b, 0x80, 0xba, 0x87, 0xa9, 0x90, 0xc2, 0x5c, 0x51, 0xe1, 0xd8, 0x1d, 0xba,
0xf9, 0xfa, 0x61, 0x3b, 0x24, 0x12, 0x6f, 0xaf, 0x2d, 0x53, 0x41, 0x45, 0xa6, 0xf0, 0xd4, 0xbf,
0x5c, 0xbc, 0x66, 0x47, 0x02, 0x12, 0x01, 0x5e, 0x88, 0x81, 0x78, 0x5a, 0xea, 0x45, 0x82, 0x71,
0x1d, 0xbf, 0x77, 0x79, 0xb5, 0xec, 0x37, 0x97, 0xac, 0x7f, 0x2f, 0xa2, 0x9a, 0x0f, 0x74, 0x57,
0x8a, 0x94, 0xb4, 0x45, 0x4c, 0xcc, 0x0e, 0xaa, 0x02, 0xe1, 0x31, 0x49, 0x2d, 0xa3, 0x6e, 0x34,
0x6a, 0xad, 0xed, 0xb3, 0x91, 0xb3, 0x49, 0x99, 0x7c, 0xd7, 0x0f, 0xdd, 0x48, 0x24, 0x9e, 0x2e,
0x99, 0x2f, 0x9b, 0x10, 0xbf, 0xd7, 0x76, 0xcd, 0x28, 0x6a, 0xc6, 0x71, 0x4a, 0x00, 0x02, 0x6d,
0x60, 0x3e, 0x40, 0x4b, 0xaa, 0x7c, 0x37, 0x3c, 0x92, 0xa4, 0x1b, 0x89, 0x98, 0x58, 0xc5, 0xcc,
0xf2, 0xf6, 0x78, 0xe4, 0xd4, 0xf6, 0x9a, 0xbb, 0x7e, 0xeb, 0x48, 0x66, 0x45, 0x83, 0x9a, 0xd2,
0x9d, 0xef, 0xcc, 0x55, 0x54, 0x05, 0xd1, 0x4f, 0x23, 0x62, 0x95, 0xea, 0x46, 0x63, 0x21, 0xd0,
0x3b, 0xd3, 0x42, 0x73, 0x61, 0x9f, 0xf5, 0x54, 0x6f, 0xe5, 0x2c, 0x70, 0xbe, 0x35, 0xdf, 0xa0,
0x95, 0x0e, 0x07, 0x89, 0xb9, 0x64, 0x58, 0x92, 0x57, 0x24, 0x4d, 0x18, 0x00, 0x13, 0xdc, 0xaa,
0xd4, 0x8d, 0xc6, 0xe2, 0xce, 0x86, 0x7b, 0x29, 0x55, 0xd5, 0x33, 0x01, 0x68, 0x0b, 0xbe, 0xcf,
0x68, 0x70, 0xb9, 0xc3, 0xa3, 0xf2, 0xa7, 0x6f, 0x4e, 0x61, 0xfd, 0x4b, 0x09, 0xad, 0xfa, 0x40,
0x27, 0x24, 0x6d, 0xc1, 0x65, 0x8a, 0x23, 0x79, 0x93, 0xc0, 0x9e, 0xa3, 0x0a, 0x8e, 0x13, 0xc6,
0x35, 0xa7, 0x2b, 0x38, 0xe5, 0xf9, 0xe6, 0x06, 0x9a, 0x53, 0xbc, 0xbb, 0x2c, 0xce, 0x10, 0x96,
0x5b, 0x68, 0x3c, 0x72, 0xaa, 0x0a, 0x6e, 0xe7, 0x49, 0x50, 0x55, 0xa1, 0x4e, 0x6c, 0x2e, 0xa3,
0x4a, 0x0f, 0x87, 0xa4, 0xa7, 0x61, 0xe6, 0x1b, 0xf3, 0x21, 0x9a, 0x67, 0x9c, 0xc9, 0x6e, 0x02,
0x34, 0xa3, 0x57, 0x6b, 0xdd, 0x3d, 0x1b, 0x39, 0x16, 0xe1, 0x91, 0x88, 0x19, 0xa7, 0xde, 0x01,
0x08, 0xee, 0x06, 0x78, 0xe0, 0x13, 0x00, 0x4c, 0x49, 0x30, 0xa7, 0xd4, 0x3e, 0x50, 0xf3, 0x00,
0xa1, 0x2c, 0x71, 0xbf, 0xcf, 0x63, 0xb0, 0xaa, 0xf5, 0x52, 0x63, 0x71, 0xe7, 0x8e, 0x9b, 0x37,
0xeb, 0xaa, 0x1b, 0x7a, 0x81, 0xbd, 0x2d, 0x18, 0x6f, 0x6d, 0x1d, 0x8f, 0x9c, 0xc2, 0x8f, 0xdf,
0x4e, 0x63, 0x8a, 0x0f, 0x54, 0x09, 0x10, 0x2c, 0x28, 0xfb, 0x67, 0xca, 0x5d, 0x1f, 0xca, 0x49,
0x11, 0x99, 0x3e, 0xd0, 0xa7, 0x43, 0x12, 0xf5, 0x67, 0x73, 0x20, 0x3e, 0x9a, 0x8f, 0xb4, 0xed,
0xd5, 0xcf, 0xe4, 0xc2, 0xc2, 0x74, 0x51, 0x49, 0x61, 0x2d, 0x4d, 0x81, 0x55, 0x09, 0x15, 0x52,
0x20, 0xfc, 0x1c, 0x69, 0x65, 0x06, 0x48, 0x95, 0xfd, 0x24, 0xd2, 0xaf, 0x39, 0x52, 0x9f, 0xd1,
0x14, 0xff, 0x17, 0x48, 0xa7, 0xba, 0xe9, 0x8f, 0xd1, 0x62, 0x92, 0x7f, 0x51, 0x76, 0xad, 0xcb,
0x53, 0xf0, 0x47, 0x3a, 0xc1, 0x07, 0xaa, 0xd1, 0x7c, 0x2c, 0xa2, 0x25, 0x1f, 0xe8, 0xeb, 0xc3,
0x18, 0x4b, 0xd2, 0xcc, 0x9e, 0xd9, 0x0d, 0x62, 0x79, 0x89, 0x16, 0x38, 0x19, 0x74, 0xaf, 0xf9,
0xfc, 0xe7, 0x39, 0x19, 0xe4, 0xad, 0x4d, 0x62, 0x2e, 0x5d, 0x1b, 0xb3, 0x46, 0xf0, 0xd3, 0x40,
0xb7, 0x7c, 0xa0, 0xed, 0x1e, 0xc1, 0xe9, 0x8d, 0x13, 0x98, 0x45, 0xc7, 0xad, 0x17, 0xc7, 0x63,
0xdb, 0x38, 0x19, 0xdb, 0xc6, 0x9f, 0xb1, 0x6d, 0x7c, 0x3e, 0xb5, 0x0b, 0x27, 0xa7, 0x76, 0xe1,
0xd7, 0xa9, 0x5d, 0x78, 0xbb, 0x35, 0x61, 0xdc, 0x16, 0x90, 0xec, 0xa9, 0x41, 0x99, 0x8d, 0x07,
0x6f, 0xa8, 0xd7, 0x7f, 0xc7, 0x66, 0x58, 0xcd, 0x26, 0xe6, 0xfd, 0xbf, 0x01, 0x00, 0x00, 0xff,
0xff, 0xe0, 0x80, 0xf0, 0x2b, 0xc4, 0x07, 0x00, 0x00,
// 657 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x95, 0xcf, 0x4e, 0xdb, 0x40,
0x10, 0xc6, 0x63, 0x42, 0x02, 0x2c, 0x29, 0xaa, 0x2c, 0x40, 0x2e, 0xaa, 0xec, 0x34, 0x5c, 0x72,
0xc1, 0x06, 0x2a, 0xb5, 0xa7, 0x1e, 0x12, 0xf7, 0x8f, 0x72, 0x30, 0xaa, 0x8c, 0x2a, 0xd4, 0x5e,
0xa2, 0xb5, 0x77, 0xd9, 0x2e, 0x8d, 0x77, 0x91, 0x67, 0xd3, 0x84, 0x77, 0xe8, 0xa1, 0xea, 0x03,
0xf4, 0xde, 0x3e, 0x09, 0xea, 0x89, 0x63, 0x4f, 0x69, 0x1b, 0xde, 0x82, 0x53, 0xb5, 0xb6, 0x41,
0x54, 0xca, 0x21, 0x82, 0x70, 0xe8, 0x25, 0x9b, 0xd1, 0x7c, 0xf3, 0xcd, 0xec, 0xcf, 0x6b, 0x2f,
0x72, 0x86, 0xde, 0x00, 0x43, 0xe2, 0x71, 0xa1, 0x68, 0x2a, 0x70, 0xcf, 0x53, 0x27, 0xc7, 0x14,
0xbc, 0x04, 0x98, 0x7b, 0x9c, 0x4a, 0x25, 0xcd, 0x35, 0x9d, 0x26, 0xee, 0xd0, 0xcd, 0xd7, 0x8f,
0x3b, 0x11, 0x55, 0x78, 0x67, 0x63, 0x95, 0x49, 0x26, 0x33, 0x85, 0xa7, 0xff, 0xe5, 0xe2, 0x0d,
0x3b, 0x96, 0x90, 0x48, 0xf0, 0x22, 0x0c, 0xd4, 0x2b, 0xa4, 0x5e, 0x2c, 0xb9, 0x28, 0xf2, 0x8f,
0x26, 0x77, 0xcb, 0x7e, 0x73, 0x49, 0xe3, 0xeb, 0x1c, 0xaa, 0x05, 0xc0, 0xf6, 0x95, 0x4c, 0xa9,
0x2f, 0x09, 0x35, 0x3b, 0xa8, 0x0a, 0x54, 0x10, 0x9a, 0x5a, 0x46, 0xdd, 0x68, 0xd6, 0xda, 0x3b,
0x17, 0x23, 0x67, 0x8b, 0x71, 0xf5, 0xbe, 0x1f, 0xb9, 0xb1, 0x4c, 0xbc, 0xa2, 0x65, 0xbe, 0x6c,
0x01, 0xf9, 0x50, 0xd8, 0xb5, 0xe2, 0xb8, 0x45, 0x48, 0x4a, 0x01, 0xc2, 0xc2, 0xc0, 0x7c, 0x82,
0x56, 0x74, 0xfb, 0x6e, 0x74, 0xa2, 0x68, 0x37, 0x96, 0x84, 0x5a, 0x73, 0x99, 0xe5, 0xfd, 0xf1,
0xc8, 0xa9, 0x1d, 0xb4, 0xf6, 0x83, 0xf6, 0x89, 0xca, 0x9a, 0x86, 0x35, 0xad, 0xbb, 0x8c, 0xcc,
0x75, 0x54, 0x05, 0xd9, 0x4f, 0x63, 0x6a, 0x95, 0xeb, 0x46, 0x73, 0x29, 0x2c, 0x22, 0xd3, 0x42,
0x0b, 0x51, 0x9f, 0xf7, 0xf4, 0x6c, 0xf3, 0x59, 0xe2, 0x32, 0x34, 0xdf, 0xa2, 0xb5, 0x8e, 0x00,
0x85, 0x85, 0xe2, 0x58, 0xd1, 0xd7, 0x34, 0x4d, 0x38, 0x00, 0x97, 0xc2, 0xaa, 0xd4, 0x8d, 0xe6,
0xf2, 0xee, 0xa6, 0x3b, 0x91, 0xaa, 0x9e, 0x99, 0x02, 0xf8, 0x52, 0x1c, 0x72, 0x16, 0x4e, 0x76,
0x68, 0x7c, 0x2a, 0xa3, 0xf5, 0x00, 0xd8, 0xb5, 0xa4, 0x2f, 0x85, 0x4a, 0x71, 0xac, 0x66, 0x89,
0xea, 0x15, 0xaa, 0x60, 0x92, 0x70, 0x51, 0x10, 0xba, 0x81, 0x53, 0x5e, 0x6f, 0x6e, 0xa2, 0x05,
0x4d, 0xba, 0xcb, 0x49, 0x06, 0x6f, 0xbe, 0x8d, 0xc6, 0x23, 0xa7, 0xaa, 0xb1, 0x76, 0x9e, 0x87,
0x55, 0x9d, 0xea, 0x10, 0x73, 0x15, 0x55, 0x7a, 0x38, 0xa2, 0xbd, 0x02, 0x63, 0x1e, 0x98, 0x4f,
0xd1, 0x22, 0x17, 0x5c, 0x75, 0x13, 0x60, 0x19, 0xb7, 0x5a, 0xfb, 0xe1, 0xc5, 0xc8, 0xb1, 0xa8,
0x88, 0x25, 0xe1, 0x82, 0x79, 0x47, 0x20, 0x85, 0x1b, 0xe2, 0x41, 0x40, 0x01, 0x30, 0xa3, 0xe1,
0x82, 0x56, 0x07, 0xc0, 0xcc, 0x23, 0x84, 0xb2, 0xc2, 0xc3, 0xbe, 0x20, 0x60, 0x55, 0xeb, 0xe5,
0xe6, 0xf2, 0xee, 0x03, 0x37, 0x1f, 0xd6, 0xd5, 0x67, 0xf3, 0x0a, 0xb8, 0x2f, 0xb9, 0x68, 0x6f,
0x9f, 0x8e, 0x9c, 0xd2, 0xf7, 0x5f, 0x4e, 0x73, 0x8a, 0x0d, 0xea, 0x02, 0x08, 0x97, 0xb4, 0xfd,
0x4b, 0xed, 0xde, 0xf8, 0x31, 0x87, 0xcc, 0x00, 0xd8, 0x8b, 0x21, 0x8d, 0xfb, 0x77, 0xf3, 0x28,
0x02, 0xb4, 0x18, 0x17, 0xb6, 0x37, 0x7f, 0x1a, 0x57, 0x16, 0xa6, 0x8b, 0xca, 0x1a, 0x68, 0x79,
0x0a, 0xa0, 0x5a, 0xa8, 0x61, 0x02, 0x15, 0x97, 0x30, 0x2b, 0x77, 0x00, 0x53, 0xdb, 0xe7, 0x30,
0xbf, 0xe4, 0x30, 0x03, 0xce, 0x52, 0xfc, 0x5f, 0xc0, 0x9c, 0xea, 0x74, 0x3f, 0x43, 0xcb, 0x49,
0xbe, 0xa3, 0xec, 0x28, 0xcf, 0x4f, 0x41, 0x1e, 0x15, 0x05, 0x01, 0xb0, 0xc6, 0x85, 0x81, 0x56,
0x02, 0x60, 0x6f, 0x8e, 0x09, 0x56, 0xb4, 0x95, 0xbd, 0x54, 0x33, 0x04, 0xb2, 0x87, 0x96, 0x04,
0x1d, 0x74, 0x6f, 0xf9, 0xb2, 0x2f, 0x0a, 0x3a, 0xc8, 0x47, 0xbb, 0x0e, 0xb8, 0x7c, 0x6b, 0xc0,
0x8d, 0x6f, 0x06, 0xba, 0x17, 0x00, 0xf3, 0x7b, 0x14, 0xa7, 0x33, 0xdf, 0xfb, 0x6c, 0x67, 0x6d,
0xef, 0x9d, 0xfe, 0xb1, 0x4b, 0xa7, 0x63, 0xdb, 0x38, 0x1b, 0xdb, 0xc6, 0xef, 0xb1, 0x6d, 0x7c,
0x3e, 0xb7, 0x4b, 0x67, 0xe7, 0x76, 0xe9, 0xe7, 0xb9, 0x5d, 0x7a, 0xb7, 0x7d, 0xcd, 0xd6, 0x97,
0x90, 0x1c, 0xe8, 0x8b, 0x30, 0xfb, 0xfc, 0x7b, 0xc3, 0x62, 0xfd, 0xf7, 0x5a, 0x8c, 0xaa, 0xd9,
0x8d, 0xf8, 0xf8, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6e, 0x01, 0x83, 0x2a, 0xa4, 0x07, 0x00,
0x00,
}
func (m *MsgStoreCode) Marshal() (dAtA []byte, err error) {

View File

@@ -1,17 +1,16 @@
syntax = "proto3";
package wasmd.x.wasmd.v1beta1;
option go_package = "github.com/CosmWasm/wasmd/x/wasmd/internal/types";
import "gogoproto/gogo.proto";
import "cosmos/base/v1beta1/coin.proto";
import "x/wasm/internal/types/types.proto";
option go_package = "github.com/CosmWasm/wasmd/x/wasmd/internal/types";
option (gogoproto.goproto_getters_all) = false;
message MsgStoreCode {
option (gogoproto.goproto_getters) = false;
bytes sender = 1 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
// WASMByteCode can be raw or gzip compressed
bytes wasm_byte_code = 2 [(gogoproto.customname) = "WASMByteCode"];
@@ -24,8 +23,6 @@ message MsgStoreCode {
}
message MsgInstantiateContract {
option (gogoproto.goproto_getters) = false;
bytes sender = 1 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
// Admin is an optional address that can execute migrations
bytes admin = 2 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
@@ -36,8 +33,6 @@ message MsgInstantiateContract {
}
message MsgExecuteContract {
option (gogoproto.goproto_getters) = false;
bytes sender = 1 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
bytes contract = 2 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
bytes msg = 3 [(gogoproto.casttype) = "encoding/json.RawMessage"];
@@ -45,8 +40,6 @@ message MsgExecuteContract {
}
message MsgMigrateContract {
option (gogoproto.goproto_getters) = false;
bytes sender = 1 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
bytes contract = 2 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
uint64 code_id = 3 [(gogoproto.customname) = "CodeID"];
@@ -54,16 +47,12 @@ message MsgMigrateContract {
}
message MsgUpdateAdmin {
option (gogoproto.goproto_getters) = false;
bytes sender = 1 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
bytes new_admin = 2 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
bytes contract = 3 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
}
message MsgClearAdmin {
option (gogoproto.goproto_getters) = false;
bytes sender = 1 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
bytes contract = 3 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
}

View File

@@ -248,7 +248,8 @@ type ContractInfo struct {
Label string `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"`
// never show this in query results, just use for sorting
// (Note: when using json tag "-" amino refused to serialize it...)
Created *AbsoluteTxPosition `protobuf:"bytes,5,opt,name=created,proto3" json:"created,omitempty"`
Created *AbsoluteTxPosition `protobuf:"bytes,5,opt,name=created,proto3" json:"created,omitempty"`
IBCPortID string `protobuf:"bytes,6,opt,name=ibc_port_id,json=ibcPortId,proto3" json:"ibc_port_id,omitempty"`
}
func (m *ContractInfo) Reset() { *m = ContractInfo{} }
@@ -461,74 +462,76 @@ func init() {
func init() { proto.RegisterFile("x/wasm/internal/types/types.proto", fileDescriptor_45de2b3fc8aff6aa) }
var fileDescriptor_45de2b3fc8aff6aa = []byte{
// 1061 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xcf, 0x6f, 0x1b, 0xc5,
0x17, 0xf7, 0xda, 0x8e, 0x9d, 0x4c, 0xfc, 0x6d, 0xdd, 0xf9, 0x26, 0xe0, 0xb8, 0xd5, 0xae, 0xb3,
0x15, 0x28, 0x29, 0xaa, 0x4d, 0x02, 0x12, 0xa8, 0xb7, 0xf8, 0x07, 0x8d, 0x29, 0xf9, 0xa1, 0x6d,
0x53, 0x1a, 0x24, 0x64, 0x8d, 0x77, 0x26, 0xf6, 0xd0, 0xf5, 0x8c, 0xb5, 0x33, 0x4e, 0x6d, 0x4e,
0x1c, 0x51, 0xb8, 0x20, 0x4e, 0x70, 0x88, 0x84, 0x44, 0x0f, 0xfd, 0x07, 0xf8, 0x0f, 0x38, 0xe4,
0x82, 0xd4, 0x23, 0x27, 0x0b, 0x92, 0xff, 0x20, 0xc7, 0x9c, 0xd0, 0xcc, 0xac, 0x6b, 0x43, 0x9b,
0x10, 0x2a, 0x2e, 0xde, 0x9d, 0x79, 0xef, 0xf3, 0x79, 0xf3, 0x3e, 0xef, 0xbd, 0xf5, 0x80, 0xc5,
0x7e, 0xe9, 0x09, 0x12, 0x9d, 0x12, 0x65, 0x92, 0x84, 0x0c, 0x05, 0x25, 0x39, 0xe8, 0x12, 0x61,
0x7e, 0x8b, 0xdd, 0x90, 0x4b, 0x0e, 0xe7, 0x95, 0x03, 0x2e, 0xf6, 0x8b, 0xe6, 0xb9, 0xbf, 0xd2,
0x24, 0x12, 0xad, 0xe4, 0xe7, 0x5a, 0xbc, 0xc5, 0xb5, 0x47, 0x49, 0xbd, 0x19, 0x67, 0xb7, 0x09,
0xae, 0xae, 0xf9, 0x3e, 0x11, 0xe2, 0xc1, 0xa0, 0x4b, 0xb6, 0x51, 0x88, 0x3a, 0xb0, 0x0e, 0xa6,
0xf6, 0x51, 0xd0, 0x23, 0x39, 0xab, 0x60, 0x2d, 0x5d, 0x59, 0x5d, 0x2c, 0xbe, 0x92, 0xaf, 0x38,
0x86, 0x95, 0xb3, 0xa7, 0x43, 0x27, 0x33, 0x40, 0x9d, 0xe0, 0x8e, 0xab, 0x91, 0xae, 0x67, 0x18,
0xee, 0x24, 0xbf, 0xff, 0xd1, 0xb1, 0xdc, 0x5f, 0x2d, 0x90, 0x31, 0xde, 0x15, 0xce, 0xf6, 0x68,
0x0b, 0x3e, 0x02, 0xa0, 0x4b, 0xc2, 0x0e, 0x15, 0x82, 0x72, 0x76, 0xf9, 0x30, 0xf3, 0xa7, 0x43,
0xe7, 0x9a, 0x09, 0x33, 0x86, 0xbb, 0xde, 0x04, 0x17, 0xfc, 0x1c, 0xa4, 0x11, 0xc6, 0x21, 0x11,
0x22, 0x17, 0x2f, 0x58, 0x4b, 0x99, 0x72, 0xe5, 0x74, 0xe8, 0x5c, 0x31, 0x98, 0xc8, 0xe0, 0x9e,
0x0d, 0x9d, 0xdb, 0x2d, 0x2a, 0xdb, 0xbd, 0x66, 0xd1, 0xe7, 0x9d, 0x92, 0xcf, 0x45, 0x87, 0x8b,
0xe8, 0x71, 0x5b, 0xe0, 0xc7, 0x91, 0x98, 0x6b, 0xbe, 0xbf, 0x66, 0x10, 0xde, 0x88, 0x33, 0xca,
0xe7, 0x87, 0x38, 0x48, 0x69, 0xa9, 0x04, 0x94, 0x00, 0xfa, 0x1c, 0x93, 0x46, 0xaf, 0x1b, 0x70,
0x84, 0x1b, 0x48, 0x1f, 0x56, 0x67, 0x34, 0xbb, 0x7a, 0xf3, 0xc2, 0x8c, 0x8c, 0x14, 0xe5, 0xc5,
0xa3, 0xa1, 0x13, 0x3b, 0x1d, 0x3a, 0x0b, 0xe6, 0x8c, 0x2f, 0x93, 0xb9, 0x5e, 0x56, 0x6d, 0xee,
0xe8, 0x3d, 0x03, 0x85, 0xdf, 0x59, 0xc0, 0xa6, 0x4c, 0x48, 0xc4, 0x24, 0x45, 0x92, 0x34, 0x30,
0xd9, 0x43, 0xbd, 0x40, 0x36, 0x26, 0x44, 0x8d, 0x5f, 0x56, 0xd4, 0xe5, 0xd3, 0xa1, 0xf3, 0x96,
0x09, 0x7e, 0x31, 0xa5, 0xeb, 0xdd, 0x98, 0x70, 0xa8, 0x1a, 0xfb, 0xf6, 0x0b, 0xb3, 0xd6, 0x26,
0xe6, 0x7e, 0x15, 0x07, 0xd3, 0x15, 0x8e, 0x49, 0x9d, 0xed, 0x71, 0x78, 0x1d, 0xcc, 0xe8, 0x84,
0xda, 0x48, 0xb4, 0xb5, 0x28, 0x19, 0x6f, 0x5a, 0x6d, 0xac, 0x23, 0xd1, 0x86, 0xf7, 0x40, 0xda,
0x0f, 0x09, 0x92, 0x3c, 0x8c, 0x4a, 0xb5, 0xf2, 0x1a, 0x85, 0x89, 0x18, 0xe0, 0x1b, 0x20, 0x25,
0x78, 0x2f, 0xf4, 0x49, 0x2e, 0x51, 0xb0, 0x96, 0x66, 0xbc, 0x68, 0x05, 0x73, 0x20, 0xdd, 0xec,
0xd1, 0x00, 0x93, 0x30, 0x97, 0xd4, 0x86, 0xd1, 0x12, 0x3e, 0x02, 0x70, 0x32, 0x5f, 0x5f, 0x97,
0x23, 0x37, 0x75, 0xf9, 0xca, 0x25, 0x55, 0xe5, 0xbc, 0x6b, 0x13, 0x24, 0xc6, 0xe0, 0x3e, 0x8d,
0x83, 0x4c, 0x85, 0x33, 0x19, 0x22, 0x5f, 0x6a, 0x19, 0x6e, 0x82, 0xb4, 0x96, 0x81, 0x62, 0x2d,
0x42, 0xb2, 0x0c, 0x8e, 0x87, 0x4e, 0x4a, 0xab, 0x54, 0xf5, 0x52, 0xca, 0x54, 0xc7, 0xff, 0xad,
0x1c, 0x77, 0xc1, 0x14, 0xc2, 0x1d, 0xca, 0xb4, 0x1a, 0xaf, 0x45, 0x65, 0xf0, 0x70, 0x0e, 0x4c,
0x05, 0xa8, 0x49, 0x82, 0x48, 0x3d, 0xb3, 0x80, 0x95, 0xe8, 0xac, 0x04, 0x47, 0x82, 0x2d, 0x9f,
0x27, 0x58, 0x53, 0xf0, 0xa0, 0x27, 0xc9, 0x83, 0xfe, 0x36, 0x17, 0x54, 0x52, 0xce, 0xbc, 0x11,
0xd2, 0xfd, 0x12, 0x5c, 0x1d, 0xa9, 0xb4, 0x4e, 0x85, 0xe4, 0xe1, 0x00, 0xb6, 0xc0, 0x9c, 0xe9,
0x17, 0xb3, 0x6e, 0x10, 0x26, 0x43, 0x4a, 0xd4, 0x3c, 0x25, 0x96, 0x66, 0x57, 0x4b, 0xe7, 0x04,
0x19, 0xb1, 0x28, 0x41, 0x23, 0xa6, 0x1a, 0x93, 0xe1, 0x20, 0xaa, 0x90, 0x1e, 0xd0, 0x89, 0x7d,
0x4a, 0x84, 0xfb, 0x4d, 0x1c, 0xe4, 0xce, 0x83, 0xc1, 0x1d, 0x30, 0xc3, 0xbb, 0x24, 0x44, 0x72,
0xfc, 0x71, 0xfa, 0xe0, 0xf2, 0xa1, 0xb7, 0x46, 0x50, 0x35, 0x5d, 0xde, 0x98, 0x69, 0xb2, 0x0b,
0xe2, 0xe7, 0x76, 0x41, 0x05, 0xa4, 0x7b, 0x5d, 0xac, 0x95, 0x4d, 0xfc, 0x6b, 0x65, 0x23, 0x24,
0x2c, 0x82, 0x44, 0x47, 0xb4, 0x74, 0xc9, 0x32, 0xe5, 0x1b, 0x67, 0x43, 0x27, 0x47, 0x98, 0xcf,
0x31, 0x65, 0xad, 0xd2, 0x17, 0x82, 0xb3, 0xa2, 0x87, 0x9e, 0x6c, 0x10, 0x21, 0x50, 0x8b, 0x78,
0xca, 0xd1, 0xf5, 0x00, 0x7c, 0x99, 0x0e, 0x2e, 0x82, 0x4c, 0x33, 0xe0, 0xfe, 0xe3, 0x46, 0x9b,
0xd0, 0x56, 0x5b, 0x6a, 0x25, 0x12, 0xde, 0xac, 0xde, 0x5b, 0xd7, 0x5b, 0x70, 0x01, 0x4c, 0xcb,
0x7e, 0x83, 0x32, 0x4c, 0xfa, 0x26, 0x27, 0x2f, 0x2d, 0xfb, 0x75, 0xb5, 0x74, 0x29, 0x98, 0xda,
0xe0, 0x98, 0x04, 0xf0, 0x63, 0x90, 0xb8, 0x47, 0x06, 0x66, 0xfa, 0xcb, 0x1f, 0x9e, 0x0d, 0x9d,
0xf7, 0x27, 0x1a, 0x51, 0x12, 0x86, 0xd5, 0x17, 0x84, 0xc9, 0xc9, 0xd7, 0x80, 0x36, 0x45, 0xa9,
0x39, 0x90, 0x44, 0x14, 0xd7, 0x49, 0xbf, 0xac, 0x5e, 0x3c, 0x45, 0xa2, 0xba, 0xf1, 0xa1, 0xfe,
0x67, 0xd2, 0x13, 0xe2, 0x99, 0xc5, 0xad, 0x9f, 0x2d, 0x00, 0xc6, 0x1f, 0x34, 0xf8, 0x36, 0x98,
0xd9, 0xd9, 0xac, 0xd6, 0x3e, 0xaa, 0x6f, 0xd6, 0xaa, 0xd9, 0x58, 0xfe, 0xcd, 0x83, 0xc3, 0xc2,
0xff, 0xc7, 0xe6, 0x1d, 0x86, 0xc9, 0x1e, 0x65, 0x04, 0xc3, 0x02, 0x48, 0x6d, 0x6e, 0x95, 0xb7,
0xaa, 0xbb, 0x59, 0x2b, 0x3f, 0x77, 0x70, 0x58, 0xc8, 0x8e, 0x9d, 0x36, 0x79, 0x93, 0xe3, 0x01,
0x7c, 0x07, 0x64, 0xb6, 0x36, 0x3f, 0xd9, 0x6d, 0xac, 0x55, 0xab, 0x5e, 0xed, 0xfe, 0xfd, 0x6c,
0x3c, 0xbf, 0x70, 0x70, 0x58, 0x98, 0x1f, 0xfb, 0x6d, 0xb1, 0x60, 0x10, 0x0d, 0x8c, 0x0a, 0x5b,
0x7b, 0x58, 0xf3, 0x76, 0x35, 0x63, 0xe2, 0xef, 0x61, 0x6b, 0xfb, 0x24, 0x1c, 0x28, 0xd2, 0xfc,
0xf4, 0xd7, 0x3f, 0xd9, 0xb1, 0x67, 0x4f, 0xed, 0xd8, 0xad, 0x5f, 0x2c, 0x50, 0xf8, 0xa7, 0x06,
0x82, 0xff, 0x03, 0x33, 0x2f, 0x8e, 0x9c, 0x8d, 0xc1, 0x65, 0x90, 0xac, 0x33, 0x2a, 0xb3, 0x56,
0xde, 0x39, 0x38, 0x2c, 0x5c, 0x7f, 0x05, 0x5c, 0xa1, 0x94, 0x0b, 0x2c, 0x81, 0xf4, 0x06, 0x6d,
0x85, 0x48, 0x92, 0x6c, 0x3c, 0xef, 0x1e, 0x1c, 0x16, 0xec, 0x73, 0xbc, 0x23, 0x2f, 0x05, 0xb8,
0x4b, 0x18, 0x11, 0x54, 0x64, 0x13, 0x17, 0x02, 0x22, 0xaf, 0x7c, 0x52, 0xa5, 0x52, 0xf6, 0x8e,
0xfe, 0xb0, 0x63, 0xcf, 0x8e, 0x6d, 0xeb, 0xe8, 0xd8, 0xb6, 0x9e, 0x1f, 0xdb, 0xd6, 0xef, 0xc7,
0xb6, 0xf5, 0xed, 0x89, 0x1d, 0x7b, 0x7e, 0x62, 0xc7, 0x7e, 0x3b, 0xb1, 0x63, 0x9f, 0xbd, 0x3b,
0x51, 0xf1, 0x0a, 0x17, 0x9d, 0x4f, 0xd5, 0x05, 0x46, 0xb7, 0x73, 0xa9, 0x1f, 0x3d, 0xff, 0x7a,
0x9d, 0x69, 0xa6, 0xf4, 0xe5, 0xe4, 0xbd, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xba, 0x1f, 0x0b,
0x8f, 0xee, 0x08, 0x00, 0x00,
// 1094 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4f, 0x6f, 0x1b, 0x45,
0x14, 0xf7, 0xda, 0x8e, 0x1d, 0x4f, 0xdc, 0xd6, 0x1d, 0x52, 0x70, 0xdd, 0x6a, 0xd7, 0xd9, 0x0a,
0x94, 0x14, 0xc5, 0x26, 0x01, 0x09, 0xd4, 0x5b, 0xfc, 0x87, 0xc6, 0x94, 0xfc, 0xd1, 0xb6, 0x29,
0x0d, 0x12, 0xb2, 0x66, 0x77, 0x26, 0xf6, 0xd0, 0xf5, 0x8c, 0xb5, 0x33, 0x4e, 0x6d, 0x4e, 0x1c,
0x51, 0xb8, 0x20, 0x4e, 0x70, 0x88, 0x84, 0x04, 0x87, 0x7e, 0x01, 0xbe, 0x01, 0x87, 0x5c, 0x90,
0x2a, 0x71, 0xe1, 0x64, 0x81, 0xf3, 0x0d, 0x72, 0xcc, 0x09, 0xcd, 0xec, 0xba, 0x36, 0xb4, 0x09,
0xa1, 0xe2, 0xe2, 0x9d, 0x99, 0xf7, 0x7e, 0xbf, 0x37, 0xef, 0xf7, 0xde, 0x8c, 0x07, 0x2c, 0xf4,
0xcb, 0x4f, 0x90, 0xe8, 0x94, 0x29, 0x93, 0x24, 0x60, 0xc8, 0x2f, 0xcb, 0x41, 0x97, 0x88, 0xf0,
0xb7, 0xd4, 0x0d, 0xb8, 0xe4, 0xf0, 0x9a, 0x72, 0xc0, 0xa5, 0x7e, 0x29, 0xfc, 0xee, 0xaf, 0xb8,
0x44, 0xa2, 0x95, 0xc2, 0x7c, 0x8b, 0xb7, 0xb8, 0xf6, 0x28, 0xab, 0x51, 0xe8, 0x6c, 0xbb, 0xe0,
0xca, 0x9a, 0xe7, 0x11, 0x21, 0x1e, 0x0c, 0xba, 0x64, 0x1b, 0x05, 0xa8, 0x03, 0x1b, 0x60, 0x66,
0x1f, 0xf9, 0x3d, 0x92, 0x37, 0x8a, 0xc6, 0xe2, 0xe5, 0xd5, 0x85, 0xd2, 0x4b, 0xf9, 0x4a, 0x13,
0x58, 0x25, 0x77, 0x32, 0xb4, 0xb2, 0x03, 0xd4, 0xf1, 0xef, 0xd8, 0x1a, 0x69, 0x3b, 0x21, 0xc3,
0x9d, 0xe4, 0x77, 0x3f, 0x58, 0x86, 0xfd, 0xab, 0x01, 0xb2, 0xa1, 0x77, 0x95, 0xb3, 0x3d, 0xda,
0x82, 0x8f, 0x00, 0xe8, 0x92, 0xa0, 0x43, 0x85, 0xa0, 0x9c, 0x5d, 0x3c, 0xcc, 0xb5, 0x93, 0xa1,
0x75, 0x35, 0x0c, 0x33, 0x81, 0xdb, 0xce, 0x14, 0x17, 0xfc, 0x0c, 0xa4, 0x11, 0xc6, 0x01, 0x11,
0x22, 0x1f, 0x2f, 0x1a, 0x8b, 0xd9, 0x4a, 0xf5, 0x64, 0x68, 0x5d, 0x0e, 0x31, 0x91, 0xc1, 0x3e,
0x1d, 0x5a, 0xcb, 0x2d, 0x2a, 0xdb, 0x3d, 0xb7, 0xe4, 0xf1, 0x4e, 0xd9, 0xe3, 0xa2, 0xc3, 0x45,
0xf4, 0x59, 0x16, 0xf8, 0x71, 0x24, 0xe6, 0x9a, 0xe7, 0xad, 0x85, 0x08, 0x67, 0xcc, 0x19, 0xe5,
0xf3, 0x7d, 0x1c, 0xa4, 0xb4, 0x54, 0x02, 0x4a, 0x00, 0x3d, 0x8e, 0x49, 0xb3, 0xd7, 0xf5, 0x39,
0xc2, 0x4d, 0xa4, 0x37, 0xab, 0x33, 0x9a, 0x5b, 0xbd, 0x75, 0x6e, 0x46, 0xa1, 0x14, 0x95, 0x85,
0xa3, 0xa1, 0x15, 0x3b, 0x19, 0x5a, 0xd7, 0xc3, 0x3d, 0xbe, 0x48, 0x66, 0x3b, 0x39, 0xb5, 0xb8,
0xa3, 0xd7, 0x42, 0x28, 0xfc, 0xd6, 0x00, 0x26, 0x65, 0x42, 0x22, 0x26, 0x29, 0x92, 0xa4, 0x89,
0xc9, 0x1e, 0xea, 0xf9, 0xb2, 0x39, 0x25, 0x6a, 0xfc, 0xa2, 0xa2, 0x2e, 0x9d, 0x0c, 0xad, 0x37,
0xc3, 0xe0, 0xe7, 0x53, 0xda, 0xce, 0xcd, 0x29, 0x87, 0x5a, 0x68, 0xdf, 0x7e, 0x6e, 0xd6, 0xda,
0xc4, 0xec, 0x2f, 0xe3, 0x60, 0xb6, 0xca, 0x31, 0x69, 0xb0, 0x3d, 0x0e, 0x6f, 0x80, 0x8c, 0x4e,
0xa8, 0x8d, 0x44, 0x5b, 0x8b, 0x92, 0x75, 0x66, 0xd5, 0xc2, 0x3a, 0x12, 0x6d, 0x78, 0x0f, 0xa4,
0xbd, 0x80, 0x20, 0xc9, 0x83, 0xa8, 0x54, 0x2b, 0xaf, 0x50, 0x98, 0x88, 0x01, 0xbe, 0x0e, 0x52,
0x82, 0xf7, 0x02, 0x8f, 0xe4, 0x13, 0x45, 0x63, 0x31, 0xe3, 0x44, 0x33, 0x98, 0x07, 0x69, 0xb7,
0x47, 0x7d, 0x4c, 0x82, 0x7c, 0x52, 0x1b, 0xc6, 0x53, 0xf8, 0x08, 0xc0, 0xe9, 0x7c, 0x3d, 0x5d,
0x8e, 0xfc, 0xcc, 0xc5, 0x2b, 0x97, 0x54, 0x95, 0x73, 0xae, 0x4e, 0x91, 0x84, 0x06, 0xfb, 0xb7,
0x38, 0xc8, 0x56, 0x39, 0x93, 0x01, 0xf2, 0xa4, 0x96, 0xe1, 0x16, 0x48, 0x6b, 0x19, 0x28, 0xd6,
0x22, 0x24, 0x2b, 0x60, 0x34, 0xb4, 0x52, 0x5a, 0xa5, 0x9a, 0x93, 0x52, 0xa6, 0x06, 0xfe, 0x7f,
0xe5, 0xb8, 0x0b, 0x66, 0x10, 0xee, 0x50, 0xa6, 0xd5, 0x78, 0x25, 0xaa, 0x10, 0x0f, 0xe7, 0xc1,
0x8c, 0x8f, 0x5c, 0xe2, 0x47, 0xea, 0x85, 0x13, 0x58, 0x8d, 0xf6, 0x4a, 0x70, 0x24, 0xd8, 0xd2,
0x59, 0x82, 0xb9, 0x82, 0xfb, 0x3d, 0x49, 0x1e, 0xf4, 0xb7, 0xb9, 0xa0, 0x92, 0x72, 0xe6, 0x8c,
0x91, 0x70, 0x19, 0xcc, 0x51, 0xd7, 0x6b, 0x76, 0x79, 0x20, 0x95, 0x32, 0x29, 0x15, 0xa0, 0x72,
0x69, 0x34, 0xb4, 0x32, 0x8d, 0x4a, 0x75, 0x9b, 0x07, 0xb2, 0x51, 0x73, 0x32, 0xd4, 0xf5, 0xf4,
0x10, 0xdb, 0x5f, 0x80, 0x2b, 0x63, 0x51, 0xd7, 0xa9, 0x90, 0x3c, 0x18, 0xc0, 0x16, 0x98, 0x0f,
0xdb, 0x2b, 0x9c, 0x37, 0x09, 0x93, 0x01, 0x25, 0xea, 0xf8, 0x25, 0x16, 0xe7, 0x56, 0xcb, 0x67,
0xec, 0x69, 0xcc, 0xa2, 0xf4, 0x8f, 0x98, 0xea, 0x4c, 0x06, 0x83, 0xa8, 0xa0, 0xfa, 0x3c, 0x4f,
0xad, 0x53, 0x22, 0xec, 0xaf, 0xe3, 0x20, 0x7f, 0x16, 0x0c, 0xee, 0x80, 0x0c, 0xef, 0x92, 0x00,
0xc9, 0xc9, 0x5d, 0xf6, 0xfe, 0xc5, 0x43, 0x6f, 0x8d, 0xa1, 0xea, 0x30, 0x3a, 0x13, 0xa6, 0xe9,
0xa6, 0x89, 0x9f, 0xd9, 0x34, 0x55, 0x90, 0xee, 0x75, 0xb1, 0x2e, 0x44, 0xe2, 0x3f, 0x17, 0x22,
0x42, 0xc2, 0x12, 0x48, 0x74, 0x44, 0x4b, 0x57, 0x38, 0x5b, 0xb9, 0x79, 0x3a, 0xb4, 0xf2, 0x84,
0x79, 0x1c, 0x53, 0xd6, 0x2a, 0x7f, 0x2e, 0x38, 0x2b, 0x39, 0xe8, 0xc9, 0x06, 0x11, 0x02, 0xb5,
0x88, 0xa3, 0x1c, 0x6d, 0x07, 0xc0, 0x17, 0xe9, 0xe0, 0x02, 0xc8, 0xba, 0x3e, 0xf7, 0x1e, 0x37,
0xdb, 0x84, 0xb6, 0xda, 0x52, 0x2b, 0x91, 0x70, 0xe6, 0xf4, 0xda, 0xba, 0x5e, 0x82, 0xd7, 0xc1,
0xac, 0xec, 0x37, 0x29, 0xc3, 0xa4, 0x1f, 0xe6, 0xe4, 0xa4, 0x65, 0xbf, 0xa1, 0xa6, 0x36, 0x05,
0x33, 0x1b, 0x1c, 0x13, 0x1f, 0x7e, 0x04, 0x12, 0xf7, 0xc8, 0x20, 0xbc, 0x2c, 0x2a, 0x1f, 0x9c,
0x0e, 0xad, 0xf7, 0xa6, 0xfa, 0x56, 0x12, 0x86, 0xd5, 0x85, 0xc3, 0xe4, 0xf4, 0xd0, 0xa7, 0xae,
0x28, 0xbb, 0x03, 0x49, 0x44, 0x69, 0x9d, 0xf4, 0x2b, 0x6a, 0xe0, 0x28, 0x12, 0xd5, 0xbc, 0x0f,
0xf5, 0x1f, 0x99, 0x3e, 0x50, 0x4e, 0x38, 0xb9, 0xfd, 0xb3, 0x01, 0xc0, 0xe4, 0xfe, 0x83, 0x6f,
0x81, 0xcc, 0xce, 0x66, 0xad, 0xfe, 0x61, 0x63, 0xb3, 0x5e, 0xcb, 0xc5, 0x0a, 0x6f, 0x1c, 0x1c,
0x16, 0x5f, 0x9b, 0x98, 0x77, 0x18, 0x26, 0x7b, 0x94, 0x11, 0x0c, 0x8b, 0x20, 0xb5, 0xb9, 0x55,
0xd9, 0xaa, 0xed, 0xe6, 0x8c, 0xc2, 0xfc, 0xc1, 0x61, 0x31, 0x37, 0x71, 0xda, 0xe4, 0x2e, 0xc7,
0x03, 0xf8, 0x36, 0xc8, 0x6e, 0x6d, 0x7e, 0xbc, 0xdb, 0x5c, 0xab, 0xd5, 0x9c, 0xfa, 0xfd, 0xfb,
0xb9, 0x78, 0xe1, 0xfa, 0xc1, 0x61, 0xf1, 0xda, 0xc4, 0x6f, 0x8b, 0xf9, 0x83, 0xe8, 0x7c, 0xa9,
0xb0, 0xf5, 0x87, 0x75, 0x67, 0x57, 0x33, 0x26, 0xfe, 0x19, 0xb6, 0xbe, 0x4f, 0x82, 0x81, 0x22,
0x2d, 0xcc, 0x7e, 0xf5, 0xa3, 0x19, 0x7b, 0xfa, 0x93, 0x19, 0xbb, 0xfd, 0x8b, 0x01, 0x8a, 0xff,
0xd6, 0x40, 0xf0, 0x12, 0xc8, 0x3c, 0xdf, 0x72, 0x2e, 0x06, 0x97, 0x40, 0xb2, 0xc1, 0xa8, 0xcc,
0x19, 0x05, 0xeb, 0xe0, 0xb0, 0x78, 0xe3, 0x25, 0x70, 0x85, 0x52, 0x2e, 0xb0, 0x0c, 0xd2, 0x1b,
0xb4, 0x15, 0x20, 0x49, 0x72, 0xf1, 0x82, 0x7d, 0x70, 0x58, 0x34, 0xcf, 0xf0, 0x8e, 0xbc, 0x14,
0xe0, 0x2e, 0x61, 0x44, 0x50, 0x91, 0x4b, 0x9c, 0x0b, 0x88, 0xbc, 0x0a, 0x49, 0x95, 0x4a, 0xc5,
0x39, 0xfa, 0xd3, 0x8c, 0x3d, 0x1d, 0x99, 0xc6, 0xd1, 0xc8, 0x34, 0x9e, 0x8d, 0x4c, 0xe3, 0x8f,
0x91, 0x69, 0x7c, 0x73, 0x6c, 0xc6, 0x9e, 0x1d, 0x9b, 0xb1, 0xdf, 0x8f, 0xcd, 0xd8, 0xa7, 0xef,
0x4c, 0x55, 0xbc, 0xca, 0x45, 0xe7, 0x13, 0xf5, 0xde, 0xd1, 0xed, 0x5c, 0xee, 0x47, 0xdf, 0xbf,
0xbf, 0x7e, 0xdc, 0x94, 0x7e, 0xcb, 0xbc, 0xfb, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8a, 0x2c,
0x44, 0x38, 0x1d, 0x09, 0x00, 0x00,
}
func (this *AccessTypeParam) Equal(that interface{}) bool {
@@ -679,6 +682,9 @@ func (this *ContractInfo) Equal(that interface{}) bool {
if !this.Created.Equal(that1.Created) {
return false
}
if this.IBCPortID != that1.IBCPortID {
return false
}
return true
}
func (this *ContractHistory) Equal(that interface{}) bool {
@@ -979,6 +985,13 @@ func (m *ContractInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if len(m.IBCPortID) > 0 {
i -= len(m.IBCPortID)
copy(dAtA[i:], m.IBCPortID)
i = encodeVarintTypes(dAtA, i, uint64(len(m.IBCPortID)))
i--
dAtA[i] = 0x32
}
if m.Created != nil {
{
size, err := m.Created.MarshalToSizedBuffer(dAtA[:i])
@@ -1284,6 +1297,10 @@ func (m *ContractInfo) Size() (n int) {
l = m.Created.Size()
n += 1 + l + sovTypes(uint64(l))
}
l = len(m.IBCPortID)
if l > 0 {
n += 1 + l + sovTypes(uint64(l))
}
return n
}
@@ -2048,6 +2065,38 @@ func (m *ContractInfo) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 6:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field IBCPortID", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTypes
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthTypes
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.IBCPortID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTypes(dAtA[iNdEx:])

View File

@@ -52,10 +52,6 @@ message ContractInfo {
// never show this in query results, just use for sorting
// (Note: when using json tag "-" amino refused to serialize it...)
AbsoluteTxPosition created = 5;
// bytes init_msg = 5 [(gogoproto.casttype) = "encoding/json.RawMessage"];
//
// AbsoluteTxPosition last_updated = 7;
// uint64 previous_code_id = 8 [(gogoproto.customname) = "PreviousCodeID"];
}
enum ContractCodeHistoryOperationType {

View File

@@ -33,7 +33,7 @@ func (b AppModuleBasic) RegisterLegacyAminoCodec(amino *codec.LegacyAmino) {
RegisterCodec(amino)
}
func (b AppModuleBasic) RegisterGRPCRoutes(clientCtx client.Context, serveMux *runtime.ServeMux) {
func (b AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, serveMux *runtime.ServeMux) {
types.RegisterQueryHandlerClient(context.Background(), serveMux, types.NewQueryClient(clientCtx))
}