Skip to content

Commit

Permalink
Fix bunch of errors
Browse files Browse the repository at this point in the history
  • Loading branch information
Satchitananda committed Dec 12, 2023
1 parent 18d796e commit b731c12
Show file tree
Hide file tree
Showing 27 changed files with 780 additions and 783 deletions.
4 changes: 2 additions & 2 deletions cmd/faucet/context.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package main

import (
sdkerrors "cosmossdk.io/errors"
"github.com/cosmos/cosmos-sdk/crypto/keyring"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)

// Context defines the structure of faucet context.
Expand All @@ -14,7 +14,7 @@ type Context struct {
gasPrices sdk.DecCoins
coins sdk.Coins
maxPerPeriodWithdrawal sdk.Coins
keys chan keyring.Info
keys chan keyring.Record
}

// initCtx parses config string literals.
Expand Down
29 changes: 22 additions & 7 deletions cmd/faucet/keys.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ import (
"github.com/cosmos/go-bip39"
"github.com/spf13/cobra"

sdkerrors "cosmossdk.io/errors"
"github.com/cosmos/cosmos-sdk/client/input"
"github.com/cosmos/cosmos-sdk/crypto/hd"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"

band "github.com/ODIN-PROTOCOL/odin-core/app"
odin "github.com/ODIN-PROTOCOL/odin-core/app"
)

const (
Expand Down Expand Up @@ -78,12 +78,17 @@ func (f *Faucet) keysAddCmd() *cobra.Command {
fmt.Printf("Mnemonic: %s\n", mnemonic)
}

hdPath := hd.CreateHDPath(band.Bip44CoinType, account, index)
info, err := f.keybase.NewAccount(args[0], mnemonic, "", hdPath.String(), hd.Secp256k1)
hdPath := hd.CreateHDPath(odin.Bip44CoinType, account, index)
record, err := f.keybase.NewAccount(args[0], mnemonic, "", hdPath.String(), hd.Secp256k1)
if err != nil {
return sdkerrors.Wrap(err, "failed to create a new keybase account")
}
fmt.Printf("Address: %s\n", info.GetAddress().String())
address, info_error := record.GetAddress()
if info_error != nil {
return sdkerrors.Wrap(err, "failed to retrieve address from new keybase account")
}

fmt.Printf("Address: %s\n", address.String())
return nil
},
}
Expand Down Expand Up @@ -144,7 +149,13 @@ func (f *Faucet) keysListCmd() *cobra.Command {
return sdkerrors.Wrap(err, "failed to retrieve the keys list")
}
for _, key := range keys {
fmt.Printf("%s => %s\n", key.GetName(), key.GetAddress().String())
addr, error := key.GetAddress()
if error != nil {
fmt.Printf("failed to retrieve address from key: %s", key.Name)
continue
}

fmt.Printf("%s => %s\n", key.Name, addr.String())
}
return nil
},
Expand All @@ -165,7 +176,11 @@ func (f *Faucet) keysShowCmd() *cobra.Command {
if err != nil {
return sdkerrors.Wrap(err, "failed to get by the given key")
}
fmt.Println(key.GetAddress().String())
keyAddress, err := key.GetAddress()
if err != nil {
return sdkerrors.Wrap(err, "failed to get key address")
}
fmt.Println(keyAddress.String())
return nil
},
}
Expand Down
28 changes: 17 additions & 11 deletions cmd/faucet/limiter.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ import (
rpcclient "github.com/cometbft/cometbft/rpc/client"
httpclient "github.com/cometbft/cometbft/rpc/client/http"

sdkerrors "cosmossdk.io/errors"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/client/tx"
"github.com/cosmos/cosmos-sdk/crypto/keyring"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
errortypes "github.com/cosmos/cosmos-sdk/types/errors"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"

Expand All @@ -28,7 +29,7 @@ type Limiter struct {
store LimitStore
client rpcclient.Client
ticker *time.Ticker
keys chan keyring.Info
keys chan keyring.Record
}

// NewLimiter creates a new limiter.
Expand All @@ -43,11 +44,11 @@ func NewLimiter(ctx *Context) *Limiter {
panic(sdkerrors.Wrap(err, "failed to retrieve keys from keybase"))
}
if len(kb) == 0 {
panic(sdkerrors.Wrap(sdkerrors.ErrKeyNotFound, "there are no available keys"))
panic(sdkerrors.Wrap(errortypes.ErrKeyNotFound, "there are no available keys"))
}
keys := make(chan keyring.Info, len(kb))
keys := make(chan keyring.Record, len(kb))
for _, key := range kb {
keys <- key
keys <- *key
}

return &Limiter{
Expand Down Expand Up @@ -99,8 +100,13 @@ func (l *Limiter) updateLimitation(address, denom string, coins sdk.Coins) {
}

// transferCoinsToClaimer transfers coins from faucet accounts to the claimer.
func (l *Limiter) transferCoinsToClaimer(key keyring.Info, to sdk.AccAddress, amt sdk.Coins) (*sdk.TxResponse, error) {
msg := banktypes.NewMsgSend(key.GetAddress(), to, amt)
func (l *Limiter) transferCoinsToClaimer(key keyring.Record, to sdk.AccAddress, amt sdk.Coins) (*sdk.TxResponse, error) {
address, error := key.GetAddress()
if error != nil {
return nil, sdkerrors.Wrap(error, "Error when retrieving address")
}

msg := banktypes.NewMsgSend(address, to, amt)
if err := msg.ValidateBasic(); err != nil {
return nil, sdkerrors.Wrapf(err, "failed to validate a message: %s", msg.String())
}
Expand All @@ -112,7 +118,7 @@ func (l *Limiter) transferCoinsToClaimer(key keyring.Info, to sdk.AccAddress, am
InterfaceRegistry: odin.MakeEncodingConfig().InterfaceRegistry,
}
accountRetriever := authtypes.AccountRetriever{}
acc, err := accountRetriever.GetAccount(clientCtx, key.GetAddress())
acc, err := accountRetriever.GetAccount(clientCtx, address)
if err != nil {
return nil, sdkerrors.Wrapf(err, "failed to the account: %s", acc)
}
Expand All @@ -128,12 +134,12 @@ func (l *Limiter) transferCoinsToClaimer(key keyring.Info, to sdk.AccAddress, am
WithKeybase(faucet.keybase).
WithAccountRetriever(clientCtx.AccountRetriever)

txb, err := tx.BuildUnsignedTx(txf, msg)
txb, err := txf.BuildUnsignedTx(msg)
if err != nil {
return nil, sdkerrors.Wrap(err, "failed to build unsigned tx")
}

err = tx.Sign(txf, key.GetName(), txb, true)
err = tx.Sign(txf, key.Name, txb, true)
if err != nil {
return nil, sdkerrors.Wrap(err, "failed to sign tx")
}
Expand All @@ -144,6 +150,6 @@ func (l *Limiter) transferCoinsToClaimer(key keyring.Info, to sdk.AccAddress, am
}

// broadcast to a Tendermint node
res, err := clientCtx.BroadcastTxCommit(txBytes)
res, err := clientCtx.BroadcastTx(txBytes)
return res, sdkerrors.Wrap(err, "failed to broadcast tx commit")
}
9 changes: 7 additions & 2 deletions cmd/faucet/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ import (

"github.com/spf13/cobra"

sdkerrors "cosmossdk.io/errors"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/crypto/keyring"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"

odin "github.com/ODIN-PROTOCOL/odin-core/app"
)
Expand Down Expand Up @@ -41,6 +42,10 @@ func main() {
configCmd(),
KeysCmd(),
)

clientCtx := client.GetClientContextFromCmd(rootCmd)
cdc := clientCtx.Codec

rootCmd.PersistentPreRunE = func(_ *cobra.Command, _ []string) error {
home, err := rootCmd.PersistentFlags().GetString(flags.FlagHome)
if err != nil {
Expand All @@ -53,7 +58,7 @@ func main() {
if err := os.MkdirAll(home, os.ModePerm); err != nil {
return sdkerrors.Wrap(err, "failed to create a directory")
}
faucet.keybase, err = keyring.New(sdk.KeyringServiceName(), keyringBackend, home, nil)
faucet.keybase, err = keyring.New(sdk.KeyringServiceName(), keyringBackend, home, nil, cdc)
if err != nil {
return sdkerrors.Wrap(err, "failed to create a new keyring")
}
Expand Down
5 changes: 5 additions & 0 deletions cmd/odind/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,11 @@ func NewRootCmd() (*cobra.Command, params.EncodingConfig) {
func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig) {
rootCmd.AddCommand(
InitCmd(odin.NewDefaultGenesisState(), odin.DefaultNodeHome),
// genesisCommand(
// encodingConfig,
// AddGenesisDataSourceCmd(odin.DefaultNodeHome),
// AddGenesisOracleScriptCmd(odin.DefaultNodeHome),
// ),
genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, odin.DefaultNodeHome, nil),
genutilcli.GenTxCmd(odin.ModuleBasics, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, odin.DefaultNodeHome),
genutilcli.ValidateGenesisCmd(odin.ModuleBasics),
Expand Down
5 changes: 2 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/ODIN-PROTOCOL/odin-core

go 1.19
go 1.20

// sudo apt-get install -f

Expand Down Expand Up @@ -43,11 +43,11 @@ require (

require (
cosmossdk.io/errors v1.0.0
cosmossdk.io/math v1.2.0
github.com/cosmos/go-bip39 v1.0.0
github.com/cosmos/ibc-go/v7 v7.3.1
github.com/golang/protobuf v1.5.3
github.com/hashicorp/go-getter v1.7.1
github.com/tendermint/tendermint v0.33.6
google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97
)

Expand All @@ -58,7 +58,6 @@ require (
cloud.google.com/go/iam v1.1.2 // indirect
cloud.google.com/go/storage v1.30.1 // indirect
cosmossdk.io/log v1.2.1 // indirect
cosmossdk.io/math v1.2.0 // indirect
cosmossdk.io/tools/rosetta v0.2.1 // indirect
github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect
github.com/aws/aws-sdk-go v1.44.203 // indirect
Expand Down
1 change: 0 additions & 1 deletion go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -2048,7 +2048,6 @@ github.com/tendermint/go-amino v0.14.1/go.mod h1:i/UKE5Uocn+argJJBb12qTZsCDBcAYM
github.com/tendermint/go-amino v0.15.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME=
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.33.6 h1:W4UOsXY4ROJZ3TLLGVVv71VXD4WK2gJRb3gzeced+mg=
github.com/tendermint/tendermint v0.33.6/go.mod h1:0yUs9eIuuDq07nQql9BmI30FtYGcEC60Tu5JzB5IezM=
github.com/tendermint/tm-db v0.5.1/go.mod h1:g92zWjHpCYlEvQXvy9M168Su8V1IBEeawpXVVBaK4f4=
github.com/thepudds/fzgo v0.2.2/go.mod h1:ZgigL1toyKrar3rWdXz7Fuv7bUpKZ4BAYN49TpEFMCI=
Expand Down
Binary file added go1.20.12.linux-amd64.tar.gz
Binary file not shown.
1 change: 1 addition & 0 deletions init_response.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"app_message":{"auction":{"params":{"auction_start_threshold":[{"amount":"100000000000000","denom":"loki"}],"exchange_rates":[{"from":"loki","rate_multiplier":"1.000000000000000000","to":"minigeo"}]}},"auth":{"accounts":[],"params":{"max_memo_characters":"256","sig_verify_cost_ed25519":"590","sig_verify_cost_secp256k1":"1000","tx_sig_limit":"7","tx_size_cost_per_byte":"5"}},"authz":{"authorization":[]},"bank":{"balances":[],"denom_metadata":[],"params":{"default_send_enabled":true,"send_enabled":[]},"send_enabled":[],"supply":[]},"capability":{"index":"1","owners":[]},"coinswap":{"initial_rate":"0","params":{"exchange_rates":[{"from":"minigeo","rate_multiplier":"1.000000000000000000","to":"loki"}]}},"crisis":{"constant_fee":{"amount":"10000000000","denom":"loki"}},"distribution":{"delegator_starting_infos":[],"delegator_withdraw_infos":[],"fee_pool":{"community_pool":[]},"outstanding_rewards":[],"params":{"base_proposer_reward":"0.030000000000000000","bonus_proposer_reward":"0.120000000000000000","community_tax":"0.020000000000000000","withdraw_addr_enabled":true},"previous_proposer":"","validator_accumulated_commissions":[],"validator_current_rewards":[],"validator_historical_rewards":[],"validator_slash_events":[]},"evidence":{"evidence":[]},"genutil":{"gen_txs":[]},"gov":{"deposit_params":null,"deposits":[],"params":{"burn_proposal_deposit_prevote":false,"burn_vote_quorum":false,"burn_vote_veto":true,"max_deposit_period":"172800s","min_deposit":[{"amount":"1000000000","denom":"loki"}],"min_initial_deposit_ratio":"0.000000000000000000","quorum":"0.334000000000000000","threshold":"0.500000000000000000","veto_threshold":"0.334000000000000000","voting_period":"172800s"},"proposals":[],"starting_proposal_id":"1","tally_params":null,"votes":[],"voting_params":null},"ibc":{"channel_genesis":{"ack_sequences":[],"acknowledgements":[],"channels":[],"commitments":[],"next_channel_sequence":"0","receipts":[],"recv_sequences":[],"send_sequences":[]},"client_genesis":{"clients":[],"clients_consensus":[],"clients_metadata":[],"create_localhost":false,"next_client_sequence":"0","params":{"allowed_clients":["06-solomachine","07-tendermint","09-localhost"]}},"connection_genesis":{"client_connection_paths":[],"connections":[],"next_connection_sequence":"0","params":{"max_expected_time_per_block":"30000000000"}}},"interchainaccounts":{"controller_genesis_state":{"active_channels":[],"interchain_accounts":[],"params":{"controller_enabled":true},"ports":[]},"host_genesis_state":{"active_channels":[],"interchain_accounts":[],"params":{"allow_messages":["*"],"host_enabled":true},"port":"icahost"}},"mint":{"mint_pool":{"treasury_pool":[]},"minter":{"annual_provisions":"0.000000000000000000","current_mint_volume":[],"inflation":"0.130000000000000000"},"module_coins_account":"odin13jp4udqlxknzrpsk9jkr3hpmp6gy242xm0s2kq","params":{"allowed_mint_denoms":[{"token_denom":"odin","token_unit_denom":"loki"},{"token_denom":"geo","token_unit_denom":"minigeo"}],"allowed_minter":["odin1cgfdwtrqfdrzh4z8rkcyx8g4jv22v8wgs39amj"],"blocks_per_year":"10519200","eligible_accounts_pool":["odin1cgfdwtrqfdrzh4z8rkcyx8g4jv22v8wgs39amj"],"goal_bonded":"0.670000000000000000","inflation_max":"0.200000000000000000","inflation_min":"0.070000000000000000","inflation_rate_change":"0.130000000000000000","integration_addresses":{},"max_allowed_mint_volume":[{"amount":"100000000","denom":"minigeo"}],"max_withdrawal_per_time":[{"amount":"100","denom":"loki"}],"mint_air":true,"mint_denom":"loki"}},"oracle":{"data_sources":[],"module_coins_account":"odin1lqf6hm3nfunmhppmjhgrme9jp9d8vle90hjy5m","oracle_pool":{"data_providers_pool":[]},"oracle_scripts":[],"params":{"base_owasm_gas":"150000","data_provider_reward_per_byte":[{"amount":"1000000","denom":"loki"},{"amount":"1000000","denom":"minigeo"}],"data_provider_reward_threshold":{"amount":[{"amount":"200000000000","denom":"loki"},{"amount":"200000000000","denom":"minigeo"}],"blocks":"28820"},"data_requester_fee_denoms":["loki","minigeo"],"expiration_block_count":"100","inactive_penalty_duration":"600000000000","max_ask_count":"16","max_calldata_size":"1024","max_data_size":"1024","max_raw_request_count":"12","oracle_reward_percentage":"70","per_validator_request_gas":"30000","reward_decreasing_fraction":"0.050000000000000000","sampling_try_count":"3"}},"slashing":{"missed_blocks":[],"params":{"downtime_jail_duration":"600s","min_signed_per_window":"0.050000000000000000","signed_blocks_window":"30000","slash_fraction_double_sign":"0.050000000000000000","slash_fraction_downtime":"0.000100000000000000"},"signing_infos":[]},"staking":{"delegations":[],"exported":false,"last_total_power":"0","last_validator_powers":[],"params":{"bond_denom":"loki","historical_entries":1000,"max_entries":7,"max_validators":100,"min_commission_rate":"0.000000000000000000","unbonding_time":"1814400s"},"redelegations":[],"unbonding_delegations":[],"validators":[]},"transfer":{"denom_traces":[],"params":{"receive_enabled":true,"send_enabled":true},"port_id":"transfer","total_escrowed":[]},"upgrade":{},"wasm":{"codes":[],"contracts":[],"params":{"code_upload_access":{"addresses":[],"permission":"Everybody"},"instantiate_default_permission":"Everybody"},"sequences":[]}},"chain_id":"test-tyr","gentxs_dir":"","moniker":"test_validator","node_id":"7f7acad22b5125d83cc9477939a86c13d96d4d58"}
Empty file added mod.sum
Empty file.
1 change: 1 addition & 0 deletions validator1/config/node_key.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"priv_key":{"type":"tendermint/PrivKeyEd25519","value":"uG0QKTa2Kt9oCogCTWJStUTTLULpoMEfy2xggj0+nG57iJ9PBOvKLqJ52Q8iBadQ9rzZ7UUavdmMBUmbLQhJRg=="}}
11 changes: 11 additions & 0 deletions validator1/config/priv_validator_key.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"address": "47EA0E351A7B938D980F002D30B865202AF189F2",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "9NS1yeQoNIw+BBvB5XuuNa1sWzGFmV4a+UlQ2nQzdJM="
},
"priv_key": {
"type": "tendermint/PrivKeyEd25519",
"value": "9obNfsWefliT8RwHiyIj+U4Dl2mD8yc3QcP3r4mj6B301LXJ5Cg0jD4EG8Hle641rWxbMYWZXhr5SVDadDN0kw=="
}
}
9 changes: 0 additions & 9 deletions x/common/client/rest/keys.go

This file was deleted.

44 changes: 0 additions & 44 deletions x/common/client/rest/rest.go

This file was deleted.

4 changes: 2 additions & 2 deletions x/common/testapp/custom.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ func CreateAppCustomValidators(accountsCount int, powers ...int) (*odinapp.OdinA
// bank
bankBuilder := NewBankBuilder(accountsCount, fillBalances(builder.GetAuthBuilder().Accounts), initialSupply)
balances, totalSupply := bankBuilder.Build()
bankGenesis := banktypes.NewGenesisState(banktypes.DefaultParams(), balances, totalSupply, []banktypes.Metadata{})
bankGenesis := banktypes.NewGenesisState(banktypes.DefaultParams(), balances, totalSupply, []banktypes.Metadata{}, []banktypes.SendEnabled{})
builder.SetBankBuilder(bankBuilder)

builder.UpdateModules(map[string]json.RawMessage{
Expand All @@ -49,7 +49,7 @@ func CreateAppCustomBalances(balancesRate ...int) (*odinapp.OdinApp, sdk.Context

bankBuilder := NewBankBuilder(len(balancesRate), fillBalances(builder.GetAuthBuilder().Accounts, balancesToFill...), sdk.NewCoins())
balances, totalSupply := bankBuilder.Build()
bankGenesis := banktypes.NewGenesisState(banktypes.DefaultParams(), balances, totalSupply, []banktypes.Metadata{})
bankGenesis := banktypes.NewGenesisState(banktypes.DefaultParams(), balances, totalSupply, []banktypes.Metadata{}, []banktypes.SendEnabled{})
builder.SetBankBuilder(bankBuilder)

builder.UpdateModules(map[string]json.RawMessage{
Expand Down
2 changes: 1 addition & 1 deletion x/common/testapp/install.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ func CreateDefaultGenesisApp(accountsCount int) TestAppBuilder {
// bank
bankBuilder := NewBankBuilder(accountsCount, fillBalances(authBuilder.Accounts, Coins10000000000loki), initialSupply)
balances, totalSupply := bankBuilder.Build()
bankGenesis := banktypes.NewGenesisState(banktypes.DefaultParams(), balances, totalSupply, []banktypes.Metadata{})
bankGenesis := banktypes.NewGenesisState(banktypes.DefaultParams(), balances, totalSupply, []banktypes.Metadata{}, []banktypes.SendEnabled{})
builder.SetBankBuilder(bankBuilder)

// oracle
Expand Down
6 changes: 3 additions & 3 deletions x/common/testapp/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package testapp

import (
"encoding/json"
"io/ioutil"
"math/rand"
"os"
"time"

dbm "github.com/cometbft/cometbft-db"
Expand Down Expand Up @@ -84,7 +84,7 @@ func (ao EmptyAppOptions) Get(o string) interface{} {
// NewSimApp creates instance of our app using in test.
func NewSimApp(chainID string, logger log.Logger) *odinapp.OdinApp {
// Set HomeFlag to a temp folder for simulation run.
dir, err := ioutil.TempDir("", "odind")
dir, err := os.MkdirTemp("", "odind")
if err != nil {
panic(err)
}
Expand Down Expand Up @@ -209,7 +209,7 @@ func NewSimApp(chainID string, logger log.Logger) *odinapp.OdinApp {
Coins: sdk.Coins{sdk.NewCoin("loki", sdk.NewInt(int64(bamtSum)))},
})

bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{})
bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{}, []banktypes.SendEnabled{})
genesis[banktypes.ModuleName] = app.AppCodec().MustMarshalJSON(bankGenesis)

// Add genesis data sources and oracle scripts
Expand Down
Loading

0 comments on commit b731c12

Please sign in to comment.