forked from cerc-io/laconicd-deprecated
x/evm: unit tests and fixes (#223)
* evm: move Keeper and Querier to /keeper package * keeper: update keeper_test.go * fix format * evm: use aliased types * bump SDK version to v0.38.1 * app: updates from new version * errors: switch sdk.Error -> error * errors: switch sdk.Error -> error. Continuation * more fixes * update app/ * update keys and client pkgs * build * fix tests * lint * minor changes * changelog * address @austinbell comments * Fix keyring usage in rpc API and CLI * fix keyring * break line * Misc cleanup (#188) * evm: move Begin and EndBlock to abci.go * evm: use expected keeper interfaces * app: use EthermintApp for integration and unit test setup * evm: remove count type; update codec * go mod verify * evm: rename msgs for consistency * evm: events * minor cleanup * lint * ante: update tests * changelog * nolint * evm: update statedb to create ethermint Account instead of BaseAccount * fix importer test * address @austinabell comments * update README * changelog * evm: update codec * rename GasLimit->Gas and Price ->GasPrice * msg cleanup and tests * cleanup TxData * fix marshaling * revert rename * move types * evm/keeper: querier tests * switch MarshalLengthPrefixed -> BinaryBare; remove panics * fix event sender * fix panic * try fix txDecoder error * evm: handler tests * evm: handler MsgEthermint test * fix tests * store logs in keeper after transition (#210) * add some comments * begin log handler test * update TransitionCSDB to return ReturnData * use rlp for result data encode/decode * update tests * implement SetBlockLogs * implement GetBlockLogs * test log set/get * update keeper get/set logs to use hash as key * fix test * move logsKey to csdb * attempt to fix test * attempt to fix test * attempt to fix test * lint * lint * lint * save logs after handling msg * update k.Logs * cleanup * remove unused * fix issues * comment out handler test * address comments * lint * fix handler test * address comments * use amino * lint * address comments * merge * fix encoding bug * minor fix * rpc: error handling * rpc: simulate only returns gasConsumed * rpc: error ineffassign * evm: handler test * go: bump version to 1.14 and SDK version to latest master * rpc: fix simulation return value * breaking changes from SDK * sdk: breaking changes; build * tests: fixes * minor fix * proto: ethermint types attempt * proto: define EthAccount proto type and extend sdk std.Codec * evm: fix panic on handler test * evm: minor state object changes * cleanup * tests: update test-importer * fix evm test * fix pubkey registration * lint * cleanup * more test checks for importer * minor change * codec fixes * rm init func * fix importer test build * fixes * test fixes * fix bloom key * rm unnecesary func * remove comment Co-authored-by: austinabell <austinabell8@gmail.com> Co-authored-by: noot <36753753+noot@users.noreply.github.com>
This commit is contained in:
co-authored by
austinabell
noot
parent
4d609b2a22
commit
8ec7edf5bd
+16
-7
@@ -57,7 +57,8 @@ func (suite *AnteTestSuite) TestValidEthTx() {
|
||||
gas := big.NewInt(20)
|
||||
ethMsg := evmtypes.NewMsgEthereumTx(0, &to, amt, 34910, gas, []byte("test"))
|
||||
|
||||
tx := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
tx, err := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
suite.Require().NoError(err)
|
||||
requireValidTx(suite.T(), suite.anteHandler, suite.ctx, tx, false)
|
||||
}
|
||||
|
||||
@@ -183,7 +184,9 @@ func (suite *AnteTestSuite) TestEthInvalidSig() {
|
||||
gas := big.NewInt(20)
|
||||
ethMsg := evmtypes.NewMsgEthereumTx(0, &to, amt, 22000, gas, []byte("test"))
|
||||
|
||||
tx := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
tx, err := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
suite.Require().NoError(err)
|
||||
|
||||
ctx := suite.ctx.WithChainID("4")
|
||||
requireInvalidTx(suite.T(), suite.anteHandler, ctx, tx, false)
|
||||
}
|
||||
@@ -208,7 +211,8 @@ func (suite *AnteTestSuite) TestEthInvalidNonce() {
|
||||
gas := big.NewInt(20)
|
||||
ethMsg := evmtypes.NewMsgEthereumTx(0, &to, amt, 22000, gas, []byte("test"))
|
||||
|
||||
tx := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
tx, err := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
suite.Require().NoError(err)
|
||||
requireInvalidTx(suite.T(), suite.anteHandler, suite.ctx, tx, false)
|
||||
}
|
||||
|
||||
@@ -227,7 +231,8 @@ func (suite *AnteTestSuite) TestEthInsufficientBalance() {
|
||||
gas := big.NewInt(20)
|
||||
ethMsg := evmtypes.NewMsgEthereumTx(0, &to, amt, 22000, gas, []byte("test"))
|
||||
|
||||
tx := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
tx, err := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
suite.Require().NoError(err)
|
||||
requireInvalidTx(suite.T(), suite.anteHandler, suite.ctx, tx, false)
|
||||
}
|
||||
|
||||
@@ -249,7 +254,8 @@ func (suite *AnteTestSuite) TestEthInvalidIntrinsicGas() {
|
||||
gasLimit := uint64(1000)
|
||||
ethMsg := evmtypes.NewMsgEthereumTx(0, &to, amt, gasLimit, gas, []byte("test"))
|
||||
|
||||
tx := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
tx, err := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
suite.Require().NoError(err)
|
||||
requireInvalidTx(suite.T(), suite.anteHandler, suite.ctx, tx, false)
|
||||
}
|
||||
|
||||
@@ -274,7 +280,8 @@ func (suite *AnteTestSuite) TestEthInvalidMempoolFees() {
|
||||
gas := big.NewInt(20)
|
||||
ethMsg := evmtypes.NewMsgEthereumTx(0, &to, amt, 22000, gas, []byte("payload"))
|
||||
|
||||
tx := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
tx, err := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
suite.Require().NoError(err)
|
||||
requireInvalidTx(suite.T(), suite.anteHandler, suite.ctx, tx, false)
|
||||
}
|
||||
|
||||
@@ -295,7 +302,9 @@ func (suite *AnteTestSuite) TestEthInvalidChainID() {
|
||||
gas := big.NewInt(20)
|
||||
ethMsg := evmtypes.NewMsgEthereumTx(0, &to, amt, 22000, gas, []byte("test"))
|
||||
|
||||
tx := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
tx, err := newTestEthTx(suite.ctx, ethMsg, priv1)
|
||||
suite.Require().NoError(err)
|
||||
|
||||
ctx := suite.ctx.WithChainID("bad-chain-id")
|
||||
requireInvalidTx(suite.T(), suite.anteHandler, ctx, tx, false)
|
||||
}
|
||||
|
||||
@@ -88,17 +88,21 @@ func newTestSDKTx(
|
||||
return auth.NewStdTx(msgs, fee, sigs, "")
|
||||
}
|
||||
|
||||
func newTestEthTx(ctx sdk.Context, msg evmtypes.MsgEthereumTx, priv tmcrypto.PrivKey) sdk.Tx {
|
||||
func newTestEthTx(ctx sdk.Context, msg evmtypes.MsgEthereumTx, priv tmcrypto.PrivKey) (sdk.Tx, error) {
|
||||
chainID, ok := new(big.Int).SetString(ctx.ChainID(), 10)
|
||||
if !ok {
|
||||
panic(fmt.Sprintf("invalid chainID: %s", ctx.ChainID()))
|
||||
return nil, fmt.Errorf("invalid chainID: %s", ctx.ChainID())
|
||||
}
|
||||
|
||||
privkey, ok := priv.(crypto.PrivKeySecp256k1)
|
||||
if !ok {
|
||||
panic(fmt.Sprintf("invalid private key type: %T", priv))
|
||||
return nil, fmt.Errorf("invalid private key type: %T", priv)
|
||||
}
|
||||
|
||||
msg.Sign(chainID, privkey.ToECDSA())
|
||||
return msg
|
||||
err := msg.Sign(chainID, privkey.ToECDSA())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return msg, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user