forked from cerc-io/laconicd-deprecated
e04422b6ff
Co-authored-by: Muggle-Du <adudu@CNMAC0342.local>
46 lines
1.4 KiB
Go
46 lines
1.4 KiB
Go
package ante_test
|
|
|
|
import (
|
|
"math/big"
|
|
|
|
"github.com/tharsis/ethermint/tests"
|
|
evmtypes "github.com/tharsis/ethermint/x/evm/types"
|
|
)
|
|
|
|
func (suite AnteTestSuite) TestSignatures() {
|
|
suite.dynamicTxFee = false
|
|
suite.SetupTest() // reset
|
|
|
|
addr, privKey := tests.NewAddrKey()
|
|
to := tests.GenerateAddress()
|
|
|
|
acc := suite.app.AccountKeeper.NewAccountWithAddress(suite.ctx, addr.Bytes())
|
|
suite.Require().NoError(acc.SetSequence(1))
|
|
suite.app.AccountKeeper.SetAccount(suite.ctx, acc)
|
|
|
|
suite.app.EvmKeeper.AddBalance(addr, big.NewInt(10000000000))
|
|
msgEthereumTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 1, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil, nil, nil)
|
|
msgEthereumTx.From = addr.Hex()
|
|
|
|
// CreateTestTx will sign the msgEthereumTx but not sign the cosmos tx since we have signCosmosTx as false
|
|
tx := suite.CreateTestTx(msgEthereumTx, privKey, 1, false)
|
|
sigs, err := tx.GetSignaturesV2()
|
|
suite.Require().NoError(err)
|
|
|
|
// signatures of cosmos tx should be empty
|
|
suite.Require().Equal(len(sigs), 0)
|
|
|
|
txData, err := evmtypes.UnpackTxData(msgEthereumTx.Data)
|
|
suite.Require().NoError(err)
|
|
|
|
msgV, msgR, msgS := txData.GetRawSignatureValues()
|
|
|
|
ethTx := msgEthereumTx.AsTransaction()
|
|
ethV, ethR, ethS := ethTx.RawSignatureValues()
|
|
|
|
// The signatures of MsgehtereumTx should be the same with the corresponding eth tx
|
|
suite.Require().Equal(msgV, ethV)
|
|
suite.Require().Equal(msgR, ethR)
|
|
suite.Require().Equal(msgS, ethS)
|
|
}
|