mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-26 00:05:18 +00:00
update to latest master
This commit is contained in:
parent
b71ce1802b
commit
3871e5a84b
@ -18,7 +18,6 @@ import (
|
|||||||
"github.com/cosmos/cosmos-sdk/x/bank"
|
"github.com/cosmos/cosmos-sdk/x/bank"
|
||||||
"github.com/cosmos/cosmos-sdk/x/crisis"
|
"github.com/cosmos/cosmos-sdk/x/crisis"
|
||||||
distr "github.com/cosmos/cosmos-sdk/x/distribution"
|
distr "github.com/cosmos/cosmos-sdk/x/distribution"
|
||||||
"github.com/cosmos/cosmos-sdk/x/genaccounts"
|
|
||||||
"github.com/cosmos/cosmos-sdk/x/genutil"
|
"github.com/cosmos/cosmos-sdk/x/genutil"
|
||||||
"github.com/cosmos/cosmos-sdk/x/gov"
|
"github.com/cosmos/cosmos-sdk/x/gov"
|
||||||
"github.com/cosmos/cosmos-sdk/x/mint"
|
"github.com/cosmos/cosmos-sdk/x/mint"
|
||||||
@ -41,7 +40,6 @@ var (
|
|||||||
|
|
||||||
// ModuleBasics manages simple versions of full app modules. It's used for things such as codec registration and genesis file verification.
|
// ModuleBasics manages simple versions of full app modules. It's used for things such as codec registration and genesis file verification.
|
||||||
ModuleBasics = module.NewBasicManager(
|
ModuleBasics = module.NewBasicManager(
|
||||||
genaccounts.AppModuleBasic{},
|
|
||||||
genutil.AppModuleBasic{},
|
genutil.AppModuleBasic{},
|
||||||
auth.AppModuleBasic{},
|
auth.AppModuleBasic{},
|
||||||
bank.AppModuleBasic{},
|
bank.AppModuleBasic{},
|
||||||
@ -206,7 +204,6 @@ func NewApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool,
|
|||||||
// create the module manager (Note: Any module instantiated in the module manager that is later modified
|
// create the module manager (Note: Any module instantiated in the module manager that is later modified
|
||||||
// must be passed by reference here.)
|
// must be passed by reference here.)
|
||||||
app.mm = module.NewManager(
|
app.mm = module.NewManager(
|
||||||
genaccounts.NewAppModule(app.accountKeeper),
|
|
||||||
genutil.NewAppModule(app.accountKeeper, app.stakingKeeper, app.BaseApp.DeliverTx),
|
genutil.NewAppModule(app.accountKeeper, app.stakingKeeper, app.BaseApp.DeliverTx),
|
||||||
auth.NewAppModule(app.accountKeeper),
|
auth.NewAppModule(app.accountKeeper),
|
||||||
bank.NewAppModule(app.bankKeeper, app.accountKeeper),
|
bank.NewAppModule(app.bankKeeper, app.accountKeeper),
|
||||||
@ -228,7 +225,7 @@ func NewApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool,
|
|||||||
|
|
||||||
// genutils must occur after staking so that pools are properly
|
// genutils must occur after staking so that pools are properly
|
||||||
// initialized with tokens from genesis accounts.
|
// initialized with tokens from genesis accounts.
|
||||||
app.mm.SetOrderInitGenesis(genaccounts.ModuleName, distr.ModuleName,
|
app.mm.SetOrderInitGenesis(auth.ModuleName, distr.ModuleName,
|
||||||
staking.ModuleName, auth.ModuleName, bank.ModuleName, slashing.ModuleName,
|
staking.ModuleName, auth.ModuleName, bank.ModuleName, slashing.ModuleName,
|
||||||
gov.ModuleName, mint.ModuleName, supply.ModuleName, crisis.ModuleName, genutil.ModuleName)
|
gov.ModuleName, mint.ModuleName, supply.ModuleName, crisis.ModuleName, genutil.ModuleName)
|
||||||
|
|
||||||
@ -240,7 +237,6 @@ func NewApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool,
|
|||||||
// NOTE: This is not required for apps that don't use the simulator for fuzz testing
|
// NOTE: This is not required for apps that don't use the simulator for fuzz testing
|
||||||
// transactions.
|
// transactions.
|
||||||
app.sm = module.NewSimulationManager(
|
app.sm = module.NewSimulationManager(
|
||||||
genaccounts.NewAppModule(app.accountKeeper),
|
|
||||||
auth.NewAppModule(app.accountKeeper),
|
auth.NewAppModule(app.accountKeeper),
|
||||||
bank.NewAppModule(app.bankKeeper, app.accountKeeper),
|
bank.NewAppModule(app.bankKeeper, app.accountKeeper),
|
||||||
supply.NewAppModule(app.supplyKeeper, app.accountKeeper),
|
supply.NewAppModule(app.supplyKeeper, app.accountKeeper),
|
||||||
|
@ -2,6 +2,9 @@ package app
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"github.com/cosmos/cosmos-sdk/codec"
|
||||||
|
"github.com/cosmos/cosmos-sdk/x/auth"
|
||||||
|
"github.com/cosmos/cosmos-sdk/x/auth/exported"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GenesisState represents the genesis state of the blockchain. It is a map from module names to module genesis states.
|
// GenesisState represents the genesis state of the blockchain. It is a map from module names to module genesis states.
|
||||||
@ -11,3 +14,22 @@ type GenesisState map[string]json.RawMessage
|
|||||||
func NewDefaultGenesisState() GenesisState {
|
func NewDefaultGenesisState() GenesisState {
|
||||||
return ModuleBasics.DefaultGenesis()
|
return ModuleBasics.DefaultGenesis()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO remove iterator once merged into sdk master
|
||||||
|
type GenesisAccountIterator struct{}
|
||||||
|
// IterateGenesisAccounts iterates over all the genesis accounts found in
|
||||||
|
// appGenesis and invokes a callback on each genesis account. If any call
|
||||||
|
// returns true, iteration stops.
|
||||||
|
func (GenesisAccountIterator) IterateGenesisAccounts(
|
||||||
|
cdc *codec.Codec, appGenesis map[string]json.RawMessage, cb func(exported.Account) (stop bool),
|
||||||
|
) {
|
||||||
|
|
||||||
|
var authGenState auth.GenesisState
|
||||||
|
cdc.MustUnmarshalJSON(appGenesis[auth.ModuleName], &authGenState)
|
||||||
|
|
||||||
|
for _, genAcc := range authGenState.Accounts {
|
||||||
|
if cb(genAcc) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -23,7 +23,6 @@ import (
|
|||||||
"github.com/cosmos/cosmos-sdk/tests"
|
"github.com/cosmos/cosmos-sdk/tests"
|
||||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
"github.com/cosmos/cosmos-sdk/x/auth"
|
"github.com/cosmos/cosmos-sdk/x/auth"
|
||||||
"github.com/cosmos/cosmos-sdk/x/genaccounts"
|
|
||||||
"github.com/cosmos/cosmos-sdk/x/gov"
|
"github.com/cosmos/cosmos-sdk/x/gov"
|
||||||
"github.com/cosmos/cosmos-sdk/x/mint"
|
"github.com/cosmos/cosmos-sdk/x/mint"
|
||||||
|
|
||||||
@ -1307,12 +1306,16 @@ func TestGaiadAddGenesisAccount(t *testing.T) {
|
|||||||
genesisState := f.GenesisState()
|
genesisState := f.GenesisState()
|
||||||
|
|
||||||
cdc := app.MakeCodec()
|
cdc := app.MakeCodec()
|
||||||
accounts := genaccounts.GetGenesisStateFromAppState(cdc, genesisState)
|
|
||||||
|
|
||||||
require.Equal(t, accounts[0].Address, f.KeyAddress(keyFoo))
|
// TODO maybe replace once sdk updated
|
||||||
require.Equal(t, accounts[1].Address, f.KeyAddress(keyBar))
|
var authGenState auth.GenesisState
|
||||||
require.True(t, accounts[0].Coins.IsEqual(startCoins))
|
cdc.MustUnmarshalJSON(genesisState[auth.ModuleName], &authGenState)
|
||||||
require.True(t, accounts[1].Coins.IsEqual(bazCoins))
|
accounts := authGenState.Accounts
|
||||||
|
|
||||||
|
require.Equal(t, accounts[0].GetAddress(), f.KeyAddress(keyFoo))
|
||||||
|
require.Equal(t, accounts[1].GetAddress(), f.KeyAddress(keyBar))
|
||||||
|
require.True(t, accounts[0].GetCoins().IsEqual(startCoins))
|
||||||
|
require.True(t, accounts[1].GetCoins().IsEqual(bazCoins))
|
||||||
|
|
||||||
// Cleanup testing directories
|
// Cleanup testing directories
|
||||||
f.Cleanup()
|
f.Cleanup()
|
||||||
|
150
cmd/kvd/add_account.go
Normal file
150
cmd/kvd/add_account.go
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
"github.com/spf13/viper"
|
||||||
|
|
||||||
|
"github.com/tendermint/tendermint/libs/cli"
|
||||||
|
|
||||||
|
"github.com/cosmos/cosmos-sdk/client/keys"
|
||||||
|
"github.com/cosmos/cosmos-sdk/codec"
|
||||||
|
"github.com/cosmos/cosmos-sdk/server"
|
||||||
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
|
"github.com/cosmos/cosmos-sdk/x/auth"
|
||||||
|
authexported "github.com/cosmos/cosmos-sdk/x/auth/exported"
|
||||||
|
"github.com/cosmos/cosmos-sdk/x/genutil"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
flagClientHome = "home-client"
|
||||||
|
flagVestingStart = "vesting-start-time"
|
||||||
|
flagVestingEnd = "vesting-end-time"
|
||||||
|
flagVestingAmt = "vesting-amount"
|
||||||
|
)
|
||||||
|
|
||||||
|
// AddGenesisAccountCmd returns an add-genesis-account cobra Command.
|
||||||
|
func AddGenesisAccountCmd(
|
||||||
|
ctx *server.Context, cdc *codec.Codec, defaultNodeHome, defaultClientHome string,
|
||||||
|
) *cobra.Command {
|
||||||
|
|
||||||
|
cmd := &cobra.Command{
|
||||||
|
Use: "add-genesis-account [address_or_key_name] [coin][,[coin]]",
|
||||||
|
Short: "Add a genesis account to genesis.json",
|
||||||
|
Long: `Add a genesis account to genesis.json. The provided account must specify
|
||||||
|
the account address or key name and a list of initial coins. If a key name is given,
|
||||||
|
the address will be looked up in the local Keybase. The list of initial tokens must
|
||||||
|
contain valid denominations. Accounts may optionally be supplied with vesting parameters.
|
||||||
|
`,
|
||||||
|
Args: cobra.ExactArgs(2),
|
||||||
|
RunE: func(_ *cobra.Command, args []string) error {
|
||||||
|
config := ctx.Config
|
||||||
|
config.SetRoot(viper.GetString(cli.HomeFlag))
|
||||||
|
|
||||||
|
addr, err := sdk.AccAddressFromBech32(args[0])
|
||||||
|
if err != nil {
|
||||||
|
// attempt to lookup address from Keybase if no address was provided
|
||||||
|
kb, err := keys.NewKeyBaseFromDir(viper.GetString(flagClientHome))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
info, err := kb.Get(args[0])
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to get address from Keybase: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
addr = info.GetAddress()
|
||||||
|
}
|
||||||
|
|
||||||
|
coins, err := sdk.ParseCoins(args[1])
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to parse coins: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
vestingStart := viper.GetInt64(flagVestingStart)
|
||||||
|
vestingEnd := viper.GetInt64(flagVestingEnd)
|
||||||
|
vestingAmt, err := sdk.ParseCoins(viper.GetString(flagVestingAmt))
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to parse vesting amount: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// create concrete account type based on input parameters
|
||||||
|
var genAccount authexported.GenesisAccount
|
||||||
|
|
||||||
|
baseAccount := auth.NewBaseAccount(addr, coins.Sort(), nil, 0, 0)
|
||||||
|
if !vestingAmt.IsZero() {
|
||||||
|
baseVestingAccount := auth.NewBaseVestingAccount(
|
||||||
|
baseAccount, vestingAmt.Sort(), sdk.Coins{}, sdk.Coins{}, vestingEnd,
|
||||||
|
)
|
||||||
|
|
||||||
|
switch {
|
||||||
|
case vestingStart != 0 && vestingEnd != 0:
|
||||||
|
genAccount = auth.NewContinuousVestingAccountRaw(baseVestingAccount, vestingStart)
|
||||||
|
|
||||||
|
case vestingEnd != 0:
|
||||||
|
genAccount = auth.NewDelayedVestingAccountRaw(baseVestingAccount)
|
||||||
|
|
||||||
|
default:
|
||||||
|
return errors.New("invalid vesting parameters; must supply start and end time or end time")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
genAccount = baseAccount
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := genAccount.Validate(); err != nil {
|
||||||
|
return fmt.Errorf("failed to validate new genesis account: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
genFile := config.GenesisFile()
|
||||||
|
appState, genDoc, err := genutil.GenesisStateFromGenFile(cdc, genFile)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to unmarshal genesis state: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// authGenState := auth.GetGenesisStateFromAppState(cdc, appState)
|
||||||
|
// TODO replace 2 following lines with above once sdk updated
|
||||||
|
var authGenState auth.GenesisState
|
||||||
|
cdc.MustUnmarshalJSON(appState[auth.ModuleName], &authGenState)
|
||||||
|
|
||||||
|
// if authGenState.Accounts.Contains(addr) {
|
||||||
|
// TODO replace loop below with above once sdk is updated
|
||||||
|
for _, acc := range authGenState.Accounts {
|
||||||
|
if acc.GetAddress().Equals(addr) {
|
||||||
|
return fmt.Errorf("cannot add account at existing address %s", addr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the new account to the set of genesis accounts and sanitize the
|
||||||
|
// accounts afterwards.
|
||||||
|
authGenState.Accounts = append(authGenState.Accounts, genAccount)
|
||||||
|
// TODO uncomment following line once merged into master
|
||||||
|
// authGenState.Accounts = auth.SanitizeGenesisAccounts(authGenState.Accounts)
|
||||||
|
|
||||||
|
authGenStateBz, err := cdc.MarshalJSON(authGenState)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to marshal auth genesis state: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
appState[auth.ModuleName] = authGenStateBz
|
||||||
|
|
||||||
|
appStateJSON, err := cdc.MarshalJSON(appState)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to marshal application genesis state: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
genDoc.AppState = appStateJSON
|
||||||
|
return genutil.ExportGenesisFile(genDoc, genFile)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd.Flags().String(cli.HomeFlag, defaultNodeHome, "node's home directory")
|
||||||
|
cmd.Flags().String(flagClientHome, defaultClientHome, "client's home directory")
|
||||||
|
cmd.Flags().String(flagVestingAmt, "", "amount of coins for vesting accounts")
|
||||||
|
cmd.Flags().Uint64(flagVestingStart, 0, "schedule start time (unix epoch) for vesting accounts")
|
||||||
|
cmd.Flags().Uint64(flagVestingEnd, 0, "schedule end time (unix epoch) for vesting accounts")
|
||||||
|
|
||||||
|
return cmd
|
||||||
|
}
|
@ -18,8 +18,6 @@ import (
|
|||||||
"github.com/cosmos/cosmos-sdk/server"
|
"github.com/cosmos/cosmos-sdk/server"
|
||||||
"github.com/cosmos/cosmos-sdk/store"
|
"github.com/cosmos/cosmos-sdk/store"
|
||||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
"github.com/cosmos/cosmos-sdk/x/genaccounts"
|
|
||||||
genaccscli "github.com/cosmos/cosmos-sdk/x/genaccounts/client/cli"
|
|
||||||
genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli"
|
genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli"
|
||||||
"github.com/cosmos/cosmos-sdk/x/staking"
|
"github.com/cosmos/cosmos-sdk/x/staking"
|
||||||
|
|
||||||
@ -47,18 +45,18 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
rootCmd.AddCommand(genutilcli.InitCmd(ctx, cdc, app.ModuleBasics, app.DefaultNodeHome))
|
rootCmd.AddCommand(genutilcli.InitCmd(ctx, cdc, app.ModuleBasics, app.DefaultNodeHome))
|
||||||
rootCmd.AddCommand(genutilcli.CollectGenTxsCmd(ctx, cdc, genaccounts.AppModuleBasic{}, app.DefaultNodeHome))
|
rootCmd.AddCommand(genutilcli.CollectGenTxsCmd(ctx, cdc, app.GenesisAccountIterator{}, app.DefaultNodeHome))
|
||||||
rootCmd.AddCommand(genutilcli.MigrateGenesisCmd(ctx, cdc))
|
rootCmd.AddCommand(genutilcli.MigrateGenesisCmd(ctx, cdc))
|
||||||
rootCmd.AddCommand(genutilcli.GenTxCmd(
|
rootCmd.AddCommand(genutilcli.GenTxCmd(
|
||||||
ctx,
|
ctx,
|
||||||
cdc,
|
cdc,
|
||||||
app.ModuleBasics,
|
app.ModuleBasics,
|
||||||
staking.AppModuleBasic{},
|
staking.AppModuleBasic{},
|
||||||
genaccounts.AppModuleBasic{},
|
app.GenesisAccountIterator{},
|
||||||
app.DefaultNodeHome,
|
app.DefaultNodeHome,
|
||||||
app.DefaultCLIHome))
|
app.DefaultCLIHome))
|
||||||
rootCmd.AddCommand(genutilcli.ValidateGenesisCmd(ctx, cdc, app.ModuleBasics))
|
rootCmd.AddCommand(genutilcli.ValidateGenesisCmd(ctx, cdc, app.ModuleBasics))
|
||||||
rootCmd.AddCommand(genaccscli.AddGenesisAccountCmd(ctx, cdc, app.DefaultNodeHome, app.DefaultCLIHome))
|
rootCmd.AddCommand(AddGenesisAccountCmd(ctx, cdc, app.DefaultNodeHome, app.DefaultCLIHome))
|
||||||
rootCmd.AddCommand(client.NewCompletionCmd(rootCmd, true))
|
rootCmd.AddCommand(client.NewCompletionCmd(rootCmd, true))
|
||||||
|
|
||||||
server.AddCommands(ctx, cdc, rootCmd, newApp, exportAppStateAndTMValidators)
|
server.AddCommands(ctx, cdc, rootCmd, newApp, exportAppStateAndTMValidators)
|
||||||
|
2
go.mod
2
go.mod
@ -3,7 +3,7 @@ module github.com/kava-labs/kava
|
|||||||
go 1.13
|
go 1.13
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/cosmos/cosmos-sdk v0.34.4-0.20190910181238-84627faf79eb
|
github.com/cosmos/cosmos-sdk v0.34.4-0.20190912192225-ed6366679c38
|
||||||
github.com/spf13/cobra v0.0.5
|
github.com/spf13/cobra v0.0.5
|
||||||
github.com/spf13/viper v1.4.0
|
github.com/spf13/viper v1.4.0
|
||||||
github.com/stretchr/testify v1.4.0
|
github.com/stretchr/testify v1.4.0
|
||||||
|
3
go.sum
3
go.sum
@ -41,9 +41,12 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfc
|
|||||||
github.com/cosmos/cosmos-sdk v0.34.4-0.20190910181238-84627faf79eb h1:VKEfR1unkvgquOUgGcuXq6gPXDd7L125MSuCSEmthNM=
|
github.com/cosmos/cosmos-sdk v0.34.4-0.20190910181238-84627faf79eb h1:VKEfR1unkvgquOUgGcuXq6gPXDd7L125MSuCSEmthNM=
|
||||||
github.com/cosmos/cosmos-sdk v0.34.4-0.20190910181238-84627faf79eb/go.mod h1:De67lt7tcfjIhSv58L/96UEdMvR3GZhOtvHntfEglDA=
|
github.com/cosmos/cosmos-sdk v0.34.4-0.20190910181238-84627faf79eb/go.mod h1:De67lt7tcfjIhSv58L/96UEdMvR3GZhOtvHntfEglDA=
|
||||||
github.com/cosmos/cosmos-sdk v0.34.4-0.20190911185636-5bcab79e8aef/go.mod h1:WFgmzqlpCWWhon5UF59Nu3olrxCUB3+S/GzTeUyfs1U=
|
github.com/cosmos/cosmos-sdk v0.34.4-0.20190911185636-5bcab79e8aef/go.mod h1:WFgmzqlpCWWhon5UF59Nu3olrxCUB3+S/GzTeUyfs1U=
|
||||||
|
github.com/cosmos/cosmos-sdk v0.34.4-0.20190912192225-ed6366679c38 h1:c9YDbAZ92KeCxGQQ54GsCcrqNbnNLHrVgJoWDI81qxs=
|
||||||
|
github.com/cosmos/cosmos-sdk v0.34.4-0.20190912192225-ed6366679c38/go.mod h1:WFgmzqlpCWWhon5UF59Nu3olrxCUB3+S/GzTeUyfs1U=
|
||||||
github.com/cosmos/cosmos-sdk v0.36.0 h1:nDHhZDeucmv/PoThz89Q8cj9S8OH2EUutgertz2pZ90=
|
github.com/cosmos/cosmos-sdk v0.36.0 h1:nDHhZDeucmv/PoThz89Q8cj9S8OH2EUutgertz2pZ90=
|
||||||
github.com/cosmos/cosmos-sdk v0.36.0/go.mod h1:3b/k/Zd+YDuttSmEJdNkxga1H5EIiDUhSYeErAHQN7A=
|
github.com/cosmos/cosmos-sdk v0.36.0/go.mod h1:3b/k/Zd+YDuttSmEJdNkxga1H5EIiDUhSYeErAHQN7A=
|
||||||
github.com/cosmos/cosmos-sdk v0.37.0 h1:S2I3NDGN2wqfGlY5KqkAHTpfezjhgeqDxrCxhlhd528=
|
github.com/cosmos/cosmos-sdk v0.37.0 h1:S2I3NDGN2wqfGlY5KqkAHTpfezjhgeqDxrCxhlhd528=
|
||||||
|
github.com/cosmos/cosmos-sdk v0.37.0/go.mod h1:3b/k/Zd+YDuttSmEJdNkxga1H5EIiDUhSYeErAHQN7A=
|
||||||
github.com/cosmos/gaia v1.0.0 h1:Wu4nH0t5hpKiU5WeIPDnun7kHcO8ijMXvMjF+yb9wS4=
|
github.com/cosmos/gaia v1.0.0 h1:Wu4nH0t5hpKiU5WeIPDnun7kHcO8ijMXvMjF+yb9wS4=
|
||||||
github.com/cosmos/gaia v1.0.0/go.mod h1:hqavT29EEm4CBBe1ONUggGWecpPTcolOlkqv93C6yAQ=
|
github.com/cosmos/gaia v1.0.0/go.mod h1:hqavT29EEm4CBBe1ONUggGWecpPTcolOlkqv93C6yAQ=
|
||||||
github.com/cosmos/go-bip39 v0.0.0-20180618194314-52158e4697b8 h1:Iwin12wRQtyZhH6FV3ykFcdGNlYEzoeR0jN8Vn+JWsI=
|
github.com/cosmos/go-bip39 v0.0.0-20180618194314-52158e4697b8 h1:Iwin12wRQtyZhH6FV3ykFcdGNlYEzoeR0jN8Vn+JWsI=
|
||||||
|
Loading…
Reference in New Issue
Block a user