atto photon refactor (#503)

* atto photon refactor

* update testnet command

* fix test

* changelog
This commit is contained in:
Federico Kunze 2020-09-08 16:39:48 +02:00 committed by GitHub
parent b485542b0b
commit 1505ba89a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 87 additions and 34 deletions

View File

@ -37,8 +37,13 @@ Ref: https://keepachangelog.com/en/1.0.0/
## Unreleased ## Unreleased
### API Breaking
* (types) [\#503](https://github.com/ChainSafe/ethermint/pull/503) The `types.DenomDefault` constant for `"aphoton"` has been renamed to `types.AttoPhoton`.
### Improvements ### Improvements
* (types) [\#503](https://github.com/ChainSafe/ethermint/pull/503) Add `--coin-denom` flag to testnet command that sets the given coin denomination to SDK and Ethermint parameters.
* (types) [\#502](https://github.com/ChainSafe/ethermint/pull/502) `EthAccount` now also exposes the Ethereum hex address in `string` format to clients. * (types) [\#502](https://github.com/ChainSafe/ethermint/pull/502) `EthAccount` now also exposes the Ethereum hex address in `string` format to clients.
* (types) [\#494](https://github.com/ChainSafe/ethermint/pull/494) Update `EthAccount` public key JSON type to `string`. * (types) [\#494](https://github.com/ChainSafe/ethermint/pull/494) Update `EthAccount` public key JSON type to `string`.
* (app) [\#471](https://github.com/ChainSafe/ethermint/pull/471) Add `x/upgrade` module for managing software updates. * (app) [\#471](https://github.com/ChainSafe/ethermint/pull/471) Add `x/upgrade` module for managing software updates.

View File

@ -257,7 +257,7 @@ func (suite *AnteTestSuite) TestEthInvalidMempoolFees() {
suite.app.EvmKeeper.SetParams(suite.ctx, evmtypes.DefaultParams()) suite.app.EvmKeeper.SetParams(suite.ctx, evmtypes.DefaultParams())
suite.anteHandler = ante.NewAnteHandler(suite.app.AccountKeeper, suite.app.EvmKeeper, suite.app.SupplyKeeper) suite.anteHandler = ante.NewAnteHandler(suite.app.AccountKeeper, suite.app.EvmKeeper, suite.app.SupplyKeeper)
suite.ctx = suite.ctx.WithMinGasPrices(sdk.NewDecCoins(sdk.NewDecCoin(types.DenomDefault, sdk.NewInt(500000)))) suite.ctx = suite.ctx.WithMinGasPrices(sdk.NewDecCoins(types.NewPhotonDecCoin(sdk.NewInt(500000))))
addr1, priv1 := newTestAddrKey() addr1, priv1 := newTestAddrKey()
addr2, _ := newTestAddrKey() addr2, _ := newTestAddrKey()

View File

@ -14,7 +14,7 @@ import (
"github.com/cosmos/ethermint/app" "github.com/cosmos/ethermint/app"
ante "github.com/cosmos/ethermint/app/ante" ante "github.com/cosmos/ethermint/app/ante"
"github.com/cosmos/ethermint/crypto" "github.com/cosmos/ethermint/crypto"
emint "github.com/cosmos/ethermint/types" ethermint "github.com/cosmos/ethermint/types"
evmtypes "github.com/cosmos/ethermint/x/evm/types" evmtypes "github.com/cosmos/ethermint/x/evm/types"
ethcrypto "github.com/ethereum/go-ethereum/crypto" ethcrypto "github.com/ethereum/go-ethereum/crypto"
@ -52,11 +52,11 @@ func newTestMsg(addrs ...sdk.AccAddress) *sdk.TestMsg {
} }
func newTestCoins() sdk.Coins { func newTestCoins() sdk.Coins {
return sdk.NewCoins(sdk.NewInt64Coin(emint.DenomDefault, 500000000)) return sdk.NewCoins(ethermint.NewPhotonCoinInt64(500000000))
} }
func newTestStdFee() auth.StdFee { func newTestStdFee() auth.StdFee {
return auth.NewStdFee(220000, sdk.NewCoins(sdk.NewInt64Coin(emint.DenomDefault, 150))) return auth.NewStdFee(220000, sdk.NewCoins(ethermint.NewPhotonCoinInt64(150)))
} }
// GenerateAddress generates an Ethereum address. // GenerateAddress generates an Ethereum address.

View File

@ -38,6 +38,7 @@ import (
"github.com/cosmos/ethermint/crypto" "github.com/cosmos/ethermint/crypto"
"github.com/cosmos/ethermint/types" "github.com/cosmos/ethermint/types"
evmtypes "github.com/cosmos/ethermint/x/evm/types"
) )
var ( var (
@ -47,6 +48,7 @@ var (
flagNodeDaemonHome = "node-daemon-home" flagNodeDaemonHome = "node-daemon-home"
flagNodeCLIHome = "node-cli-home" flagNodeCLIHome = "node-cli-home"
flagStartingIPAddress = "starting-ip-address" flagStartingIPAddress = "starting-ip-address"
flagCoinDenom = "coin-denom"
flagKeyAlgo = "algo" flagKeyAlgo = "algo"
) )
@ -77,10 +79,11 @@ Note, strict routability for addresses is turned off in the config file.`,
nodeCLIHome, _ := cmd.Flags().GetString(flagNodeCLIHome) nodeCLIHome, _ := cmd.Flags().GetString(flagNodeCLIHome)
startingIPAddress, _ := cmd.Flags().GetString(flagStartingIPAddress) startingIPAddress, _ := cmd.Flags().GetString(flagStartingIPAddress)
numValidators, _ := cmd.Flags().GetInt(flagNumValidators) numValidators, _ := cmd.Flags().GetInt(flagNumValidators)
coinDenom, _ := cmd.Flags().GetString(flagCoinDenom)
algo, _ := cmd.Flags().GetString(flagKeyAlgo) algo, _ := cmd.Flags().GetString(flagKeyAlgo)
return InitTestnet( return InitTestnet(
cmd, config, cdc, mbm, genAccIterator, outputDir, chainID, minGasPrices, cmd, config, cdc, mbm, genAccIterator, outputDir, chainID, coinDenom, minGasPrices,
nodeDirPrefix, nodeDaemonHome, nodeCLIHome, startingIPAddress, keyringBackend, algo, numValidators, nodeDirPrefix, nodeDaemonHome, nodeCLIHome, startingIPAddress, keyringBackend, algo, numValidators,
) )
}, },
@ -93,7 +96,8 @@ Note, strict routability for addresses is turned off in the config file.`,
cmd.Flags().String(flagNodeCLIHome, "ethermintcli", "Home directory of the node's cli configuration") cmd.Flags().String(flagNodeCLIHome, "ethermintcli", "Home directory of the node's cli configuration")
cmd.Flags().String(flagStartingIPAddress, "192.168.0.1", "Starting IP address (192.168.0.1 results in persistent peers list ID0@192.168.0.1:46656, ID1@192.168.0.2:46656, ...)") cmd.Flags().String(flagStartingIPAddress, "192.168.0.1", "Starting IP address (192.168.0.1 results in persistent peers list ID0@192.168.0.1:46656, ID1@192.168.0.2:46656, ...)")
cmd.Flags().String(flags.FlagChainID, "", "genesis file chain-id, if left blank will be randomly created") cmd.Flags().String(flags.FlagChainID, "", "genesis file chain-id, if left blank will be randomly created")
cmd.Flags().String(server.FlagMinGasPrices, fmt.Sprintf("0.000006%s", types.DenomDefault), "Minimum gas prices to accept for transactions; All fees in a tx must meet this minimum (e.g. 0.01aphoton,0.001stake)") cmd.Flags().String(flagCoinDenom, types.AttoPhoton, "Coin denomination used for staking, governance, mint, crisis and evm parameters")
cmd.Flags().String(server.FlagMinGasPrices, fmt.Sprintf("0.000006%s", types.AttoPhoton), "Minimum gas prices to accept for transactions; All fees in a tx must meet this minimum (e.g. 0.01aphoton,0.001stake)")
cmd.Flags().String(flags.FlagKeyringBackend, flags.DefaultKeyringBackend, "Select keyring's backend (os|file|test)") cmd.Flags().String(flags.FlagKeyringBackend, flags.DefaultKeyringBackend, "Select keyring's backend (os|file|test)")
cmd.Flags().String(flagKeyAlgo, string(crypto.EthSecp256k1), "Key signing algorithm to generate keys for") cmd.Flags().String(flagKeyAlgo, string(crypto.EthSecp256k1), "Key signing algorithm to generate keys for")
return cmd return cmd
@ -108,6 +112,7 @@ func InitTestnet(
genAccIterator authtypes.GenesisAccountIterator, genAccIterator authtypes.GenesisAccountIterator,
outputDir, outputDir,
chainID, chainID,
coinDenom,
minGasPrices, minGasPrices,
nodeDirPrefix, nodeDirPrefix,
nodeDaemonHome, nodeDaemonHome,
@ -122,6 +127,10 @@ func InitTestnet(
chainID = fmt.Sprintf("%d", tmrand.Int63()) chainID = fmt.Sprintf("%d", tmrand.Int63())
} }
if err := sdk.ValidateDenom(coinDenom); err != nil {
return err
}
nodeIDs := make([]string, numValidators) nodeIDs := make([]string, numValidators)
valPubKeys := make([]tmcrypto.PubKey, numValidators) valPubKeys := make([]tmcrypto.PubKey, numValidators)
@ -205,11 +214,9 @@ func InitTestnet(
return err return err
} }
accTokens := sdk.TokensFromConsensusPower(1000)
accStakingTokens := sdk.TokensFromConsensusPower(5000) accStakingTokens := sdk.TokensFromConsensusPower(5000)
coins := sdk.NewCoins( coins := sdk.NewCoins(
sdk.NewCoin(sdk.DefaultBondDenom, accTokens), sdk.NewCoin(coinDenom, accStakingTokens),
sdk.NewCoin(types.DenomDefault, accStakingTokens),
) )
genAccounts = append(genAccounts, types.EthAccount{ genAccounts = append(genAccounts, types.EthAccount{
@ -221,7 +228,7 @@ func InitTestnet(
msg := stakingtypes.NewMsgCreateValidator( msg := stakingtypes.NewMsgCreateValidator(
sdk.ValAddress(addr), sdk.ValAddress(addr),
valPubKeys[i], valPubKeys[i],
sdk.NewCoin(types.DenomDefault, valTokens), sdk.NewCoin(coinDenom, valTokens),
stakingtypes.NewDescription(nodeDirName, "", "", "", ""), stakingtypes.NewDescription(nodeDirName, "", "", "", ""),
stakingtypes.NewCommissionRates(sdk.OneDec(), sdk.OneDec(), sdk.OneDec()), stakingtypes.NewCommissionRates(sdk.OneDec(), sdk.OneDec(), sdk.OneDec()),
sdk.OneInt(), sdk.OneInt(),
@ -251,7 +258,7 @@ func InitTestnet(
srvconfig.WriteConfigFile(filepath.Join(nodeDir, "config/app.toml"), simappConfig) srvconfig.WriteConfigFile(filepath.Join(nodeDir, "config/app.toml"), simappConfig)
} }
if err := initGenFiles(cdc, mbm, chainID, genAccounts, genFiles, numValidators); err != nil { if err := initGenFiles(cdc, mbm, chainID, coinDenom, genAccounts, genFiles, numValidators); err != nil {
return err return err
} }
@ -268,7 +275,8 @@ func InitTestnet(
} }
func initGenFiles( func initGenFiles(
cdc *codec.Codec, mbm module.BasicManager, chainID string, cdc *codec.Codec, mbm module.BasicManager,
chainID, coinDenom string,
genAccounts []authexported.GenesisAccount, genAccounts []authexported.GenesisAccount,
genFiles []string, numValidators int, genFiles []string, numValidators int,
) error { ) error {
@ -285,27 +293,33 @@ func initGenFiles(
var stakingGenState stakingtypes.GenesisState var stakingGenState stakingtypes.GenesisState
cdc.MustUnmarshalJSON(appGenState[stakingtypes.ModuleName], &stakingGenState) cdc.MustUnmarshalJSON(appGenState[stakingtypes.ModuleName], &stakingGenState)
stakingGenState.Params.BondDenom = types.DenomDefault stakingGenState.Params.BondDenom = coinDenom
appGenState[stakingtypes.ModuleName] = cdc.MustMarshalJSON(stakingGenState) appGenState[stakingtypes.ModuleName] = cdc.MustMarshalJSON(stakingGenState)
var govGenState govtypes.GenesisState var govGenState govtypes.GenesisState
cdc.MustUnmarshalJSON(appGenState[govtypes.ModuleName], &govGenState) cdc.MustUnmarshalJSON(appGenState[govtypes.ModuleName], &govGenState)
govGenState.DepositParams.MinDeposit[0].Denom = types.DenomDefault govGenState.DepositParams.MinDeposit[0].Denom = coinDenom
appGenState[govtypes.ModuleName] = cdc.MustMarshalJSON(govGenState) appGenState[govtypes.ModuleName] = cdc.MustMarshalJSON(govGenState)
var mintGenState mint.GenesisState var mintGenState mint.GenesisState
cdc.MustUnmarshalJSON(appGenState[mint.ModuleName], &mintGenState) cdc.MustUnmarshalJSON(appGenState[mint.ModuleName], &mintGenState)
mintGenState.Params.MintDenom = types.DenomDefault mintGenState.Params.MintDenom = coinDenom
appGenState[mint.ModuleName] = cdc.MustMarshalJSON(mintGenState) appGenState[mint.ModuleName] = cdc.MustMarshalJSON(mintGenState)
var crisisGenState crisis.GenesisState var crisisGenState crisis.GenesisState
cdc.MustUnmarshalJSON(appGenState[crisis.ModuleName], &crisisGenState) cdc.MustUnmarshalJSON(appGenState[crisis.ModuleName], &crisisGenState)
crisisGenState.ConstantFee.Denom = types.DenomDefault crisisGenState.ConstantFee.Denom = coinDenom
appGenState[crisis.ModuleName] = cdc.MustMarshalJSON(crisisGenState) appGenState[crisis.ModuleName] = cdc.MustMarshalJSON(crisisGenState)
var evmGenState evmtypes.GenesisState
cdc.MustUnmarshalJSON(appGenState[evmtypes.ModuleName], &evmGenState)
evmGenState.Params.EvmDenom = coinDenom
appGenState[evmtypes.ModuleName] = cdc.MustMarshalJSON(evmGenState)
appGenStateJSON, err := codec.MarshalJSONIndent(cdc, appGenState) appGenStateJSON, err := codec.MarshalJSONIndent(cdc, appGenState)
if err != nil { if err != nil {
return err return err

View File

@ -150,7 +150,7 @@ func createAndTestGenesis(t *testing.T, cms sdk.CommitMultiStore, ak auth.Accoun
genAcc := ak.GetAccount(ctx, sdk.AccAddress(genInvestor.Bytes())) genAcc := ak.GetAccount(ctx, sdk.AccAddress(genInvestor.Bytes()))
require.NotNil(t, genAcc) require.NotNil(t, genAcc)
balance := sdk.NewCoin(types.DenomDefault, genAcc.GetCoins().AmountOf(types.DenomDefault)) balance := types.NewPhotonCoin(genAcc.GetCoins().AmountOf(types.AttoPhoton))
require.Equal(t, sdk.NewIntFromBigInt(b), balance.Amount) require.Equal(t, sdk.NewIntFromBigInt(b), balance.Amount)
} }

View File

@ -51,20 +51,20 @@ func (acc EthAccount) EthAddress() ethcmn.Address {
// Balance returns the balance of an account. // Balance returns the balance of an account.
func (acc EthAccount) Balance() sdk.Int { func (acc EthAccount) Balance() sdk.Int {
return acc.GetCoins().AmountOf(DenomDefault) return acc.GetCoins().AmountOf(AttoPhoton)
} }
// SetBalance sets an account's balance of aphotons // SetBalance sets an account's balance of aphotons
func (acc *EthAccount) SetBalance(amt sdk.Int) { func (acc *EthAccount) SetBalance(amt sdk.Int) {
coins := acc.GetCoins() coins := acc.GetCoins()
diff := amt.Sub(coins.AmountOf(DenomDefault)) diff := amt.Sub(coins.AmountOf(AttoPhoton))
switch { switch {
case diff.IsPositive(): case diff.IsPositive():
// Increase coins to amount // Increase coins to amount
coins = coins.Add(sdk.NewCoin(DenomDefault, diff)) coins = coins.Add(NewPhotonCoin(diff))
case diff.IsNegative(): case diff.IsNegative():
// Decrease coins to amount // Decrease coins to amount
coins = coins.Sub(sdk.NewCoins(sdk.NewCoin(DenomDefault, diff.Neg()))) coins = coins.Sub(sdk.NewCoins(NewPhotonCoin(diff.Neg())))
default: default:
return return
} }

View File

@ -24,7 +24,7 @@ func init() {
func TestEthermintAccountJSON(t *testing.T) { func TestEthermintAccountJSON(t *testing.T) {
pubkey := secp256k1.GenPrivKey().PubKey() pubkey := secp256k1.GenPrivKey().PubKey()
addr := sdk.AccAddress(pubkey.Address()) addr := sdk.AccAddress(pubkey.Address())
balance := sdk.NewCoins(sdk.NewCoin(DenomDefault, sdk.OneInt())) balance := sdk.NewCoins(NewPhotonCoin(sdk.OneInt()))
baseAcc := auth.NewBaseAccount(addr, balance, pubkey, 10, 50) baseAcc := auth.NewBaseAccount(addr, balance, pubkey, 10, 50)
ethAcc := EthAccount{BaseAccount: baseAcc, CodeHash: []byte{1, 2}} ethAcc := EthAccount{BaseAccount: baseAcc, CodeHash: []byte{1, 2}}
@ -63,7 +63,7 @@ func TestSecpPubKeyJSON(t *testing.T) {
func TestEthermintAccount_String(t *testing.T) { func TestEthermintAccount_String(t *testing.T) {
pubkey := secp256k1.GenPrivKey().PubKey() pubkey := secp256k1.GenPrivKey().PubKey()
addr := sdk.AccAddress(pubkey.Address()) addr := sdk.AccAddress(pubkey.Address())
balance := sdk.NewCoins(sdk.NewCoin(DenomDefault, sdk.OneInt())) balance := sdk.NewCoins(NewPhotonCoin(sdk.OneInt()))
baseAcc := auth.NewBaseAccount(addr, balance, pubkey, 10, 50) baseAcc := auth.NewBaseAccount(addr, balance, pubkey, 10, 50)
ethAcc := EthAccount{BaseAccount: baseAcc, CodeHash: []byte{1, 2}} ethAcc := EthAccount{BaseAccount: baseAcc, CodeHash: []byte{1, 2}}
@ -100,7 +100,7 @@ func TestEthermintAccount_String(t *testing.T) {
func TestEthermintAccount_MarshalJSON(t *testing.T) { func TestEthermintAccount_MarshalJSON(t *testing.T) {
pubkey := secp256k1.GenPrivKey().PubKey() pubkey := secp256k1.GenPrivKey().PubKey()
addr := sdk.AccAddress(pubkey.Address()) addr := sdk.AccAddress(pubkey.Address())
balance := sdk.NewCoins(sdk.NewCoin(DenomDefault, sdk.OneInt())) balance := sdk.NewCoins(NewPhotonCoin(sdk.OneInt()))
baseAcc := auth.NewBaseAccount(addr, balance, pubkey, 10, 50) baseAcc := auth.NewBaseAccount(addr, balance, pubkey, 10, 50)
ethAcc := &EthAccount{BaseAccount: baseAcc, CodeHash: []byte{1, 2}} ethAcc := &EthAccount{BaseAccount: baseAcc, CodeHash: []byte{1, 2}}

38
types/coin.go Normal file
View File

@ -0,0 +1,38 @@
package types
import (
sdk "github.com/cosmos/cosmos-sdk/types"
)
const (
// AttoPhoton defines the default coin denomination used in Ethermint in:
//
// - Staking parameters: denomination used as stake in the dPoS chain
// - Mint parameters: denomination minted due to fee distribution rewards
// - Governance parameters: denomination used for spam prevention in proposal deposits
// - Crisis parameters: constant fee denomination used for spam prevention to check broken invariant
// - EVM parameters: denomination used for running EVM state transitions in Ethermint.
AttoPhoton string = "aphoton"
// BaseDenomUnit defines the base denomination unit for Photons.
// 1 photon = 1x10^{BaseDenomUnit} aphoton
BaseDenomUnit = 18
)
// NewPhotonCoin is a utility function that returns an "aphoton" coin with the given sdk.Int amount.
// The function will panic if the provided amount is negative.
func NewPhotonCoin(amount sdk.Int) sdk.Coin {
return sdk.NewCoin(AttoPhoton, amount)
}
// NewPhotonDecCoin is a utility function that returns an "aphoton" decimal coin with the given sdk.Int amount.
// The function will panic if the provided amount is negative.
func NewPhotonDecCoin(amount sdk.Int) sdk.DecCoin {
return sdk.NewDecCoin(AttoPhoton, amount)
}
// NewPhotonCoinInt64 is a utility function that returns an "aphoton" coin with the given int64 amount.
// The function will panic if the provided amount is negative.
func NewPhotonCoinInt64(amount int64) sdk.Coin {
return sdk.NewInt64Coin(AttoPhoton, amount)
}

View File

@ -5,8 +5,4 @@ const (
DefaultGasPrice = 20 DefaultGasPrice = 20
// DefaultRPCGasLimit is default gas limit for RPC call operations // DefaultRPCGasLimit is default gas limit for RPC call operations
DefaultRPCGasLimit = 10000000 DefaultRPCGasLimit = 10000000
// DenomDefault defines the single coin type/denomination supported in
// Ethermint.
DenomDefault = "aphoton"
) )

View File

@ -46,7 +46,7 @@ func (suite *KeeperTestSuite) SetupTest() {
suite.querier = keeper.NewQuerier(suite.app.EvmKeeper) suite.querier = keeper.NewQuerier(suite.app.EvmKeeper)
suite.address = ethcmn.HexToAddress(addrHex) suite.address = ethcmn.HexToAddress(addrHex)
balance := sdk.NewCoins(sdk.NewCoin(ethermint.DenomDefault, sdk.NewInt(0))) balance := sdk.NewCoins(ethermint.NewPhotonCoin(sdk.ZeroInt()))
acc := &ethermint.EthAccount{ acc := &ethermint.EthAccount{
BaseAccount: auth.NewBaseAccount(sdk.AccAddress(suite.address.Bytes()), balance, nil, 0, 0), BaseAccount: auth.NewBaseAccount(sdk.AccAddress(suite.address.Bytes()), balance, nil, 0, 0),
CodeHash: ethcrypto.Keccak256(nil), CodeHash: ethcrypto.Keccak256(nil),

View File

@ -57,7 +57,7 @@ func (suite *JournalTestSuite) SetupTest() {
suite.address = ethcmn.BytesToAddress(privkey.PubKey().Address().Bytes()) suite.address = ethcmn.BytesToAddress(privkey.PubKey().Address().Bytes())
suite.journal = newJournal() suite.journal = newJournal()
balance := sdk.NewCoins(sdk.NewCoin(ethermint.DenomDefault, sdk.NewInt(100))) balance := sdk.NewCoins(ethermint.NewPhotonCoin(sdk.NewInt(100)))
acc := &ethermint.EthAccount{ acc := &ethermint.EthAccount{
BaseAccount: auth.NewBaseAccount(sdk.AccAddress(suite.address.Bytes()), balance, nil, 0, 0), BaseAccount: auth.NewBaseAccount(sdk.AccAddress(suite.address.Bytes()), balance, nil, 0, 0),
CodeHash: ethcrypto.Keccak256(nil), CodeHash: ethcrypto.Keccak256(nil),

View File

@ -41,7 +41,7 @@ func NewParams(evmDenom string) Params {
// DefaultParams returns default evm parameters // DefaultParams returns default evm parameters
func DefaultParams() Params { func DefaultParams() Params {
return Params{ return Params{
EvmDenom: ethermint.DenomDefault, EvmDenom: ethermint.AttoPhoton,
} }
} }

View File

@ -17,7 +17,7 @@ func (suite *StateDBTestSuite) TestTransitionDb() {
suite.stateDB.SetNonce(suite.address, 123) suite.stateDB.SetNonce(suite.address, 123)
addr := sdk.AccAddress(suite.address.Bytes()) addr := sdk.AccAddress(suite.address.Bytes())
balance := sdk.NewCoin(ethermint.DenomDefault, sdk.NewInt(5000)) balance := ethermint.NewPhotonCoin(sdk.NewInt(5000))
acc := suite.app.AccountKeeper.GetAccount(suite.ctx, addr) acc := suite.app.AccountKeeper.GetAccount(suite.ctx, addr)
_ = acc.SetCoins(sdk.NewCoins(balance)) _ = acc.SetCoins(sdk.NewCoins(balance))
suite.app.AccountKeeper.SetAccount(suite.ctx, acc) suite.app.AccountKeeper.SetAccount(suite.ctx, acc)
@ -108,7 +108,7 @@ func (suite *StateDBTestSuite) TestTransitionDb() {
"nil gas price", "nil gas price",
func() { func() {
invalidGas := sdk.DecCoins{ invalidGas := sdk.DecCoins{
{Denom: ethermint.DenomDefault}, {Denom: ethermint.AttoPhoton},
} }
suite.ctx = suite.ctx.WithMinGasPrices(invalidGas) suite.ctx = suite.ctx.WithMinGasPrices(invalidGas)
}, },

View File

@ -48,7 +48,7 @@ func (suite *StateDBTestSuite) SetupTest() {
suite.address = ethcmn.BytesToAddress(privkey.PubKey().Address().Bytes()) suite.address = ethcmn.BytesToAddress(privkey.PubKey().Address().Bytes())
balance := sdk.NewCoins(sdk.NewCoin(ethermint.DenomDefault, sdk.NewInt(0))) balance := sdk.NewCoins(ethermint.NewPhotonCoin(sdk.ZeroInt()))
acc := &ethermint.EthAccount{ acc := &ethermint.EthAccount{
BaseAccount: auth.NewBaseAccount(sdk.AccAddress(suite.address.Bytes()), balance, nil, 0, 0), BaseAccount: auth.NewBaseAccount(sdk.AccAddress(suite.address.Bytes()), balance, nil, 0, 0),
CodeHash: ethcrypto.Keccak256(nil), CodeHash: ethcrypto.Keccak256(nil),