Skip to content
This repository has been archived by the owner on Apr 4, 2024. It is now read-only.

fix: Update the JSON-RPC to correct the return information. #1006

Merged
merged 6 commits into from
Mar 21, 2022
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ Ref: https://keepachangelog.com/en/1.0.0/

* (rpc) [tharsis#990](https://github.com/tharsis/ethermint/pull/990) Calculate reward values from all `MsgEthereumTx` from a block in `eth_feeHistory`.
* (ante) [tharsis#991](https://github.com/tharsis/ethermint/pull/991) Set an upper bound to gasWanted to prevent DoS attack.
* (rpc) [tharsis#1006](https://github.com/tharsis/ethermint/pull/1006) Use `string` as the parameters type to correct ambiguous results.
* (ante) [tharsis#1004](https://github.com/tharsis/ethermint/pull/1004) make MaxTxGasWanted configurable.

## [v0.11.0] - 2022-03-06
Expand Down
4 changes: 2 additions & 2 deletions rpc/ethereum/namespaces/web3/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ func (a *PublicAPI) ClientVersion() string {
}

// Sha3 returns the keccak-256 hash of the passed-in input.
func (a *PublicAPI) Sha3(input hexutil.Bytes) hexutil.Bytes {
return crypto.Keccak256(input)
func (a *PublicAPI) Sha3(input string) hexutil.Bytes {
return crypto.Keccak256(hexutil.Bytes(input))
}
36 changes: 36 additions & 0 deletions tests/e2e/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ type IntegrationTestSuite struct {

gethClient *gethclient.Client
ethSigner ethtypes.Signer
rpcClient *rpc.Client
}

func (s *IntegrationTestSuite) SetupSuite() {
Expand Down Expand Up @@ -74,6 +75,7 @@ func (s *IntegrationTestSuite) SetupSuite() {

rpcClient, err := rpc.DialContext(s.ctx, address)
s.Require().NoError(err)
s.rpcClient = rpcClient
s.gethClient = gethclient.New(rpcClient)
s.Require().NotNil(s.gethClient)
chainId, err := ethermint.ParseChainID(s.cfg.ChainID)
Expand Down Expand Up @@ -685,3 +687,37 @@ func (s *IntegrationTestSuite) waitForTransaction() {
func TestIntegrationTestSuite(t *testing.T) {
suite.Run(t, new(IntegrationTestSuite))
}

func (s *IntegrationTestSuite) TestWeb3Sha3() {
fedekunze marked this conversation as resolved.
Show resolved Hide resolved
testCases := []struct {
name string
arg string
expected string
}{
{
"normal input",
"0xabcd1234567890",
"0x23e7488ec9097f0126b0338926bfaeb5264b01cb162a0fd4a6d76e1081c2b24a",
},
{
"0x case",
"0x",
"0x39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
},
{
"empty string case",
"",
"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
},
}

for _, tc := range testCases {
s.Run(tc.name, func() {
var result string

err := s.rpcClient.Call(&result, "web3_sha3", tc.arg)
s.Require().NoError(err)
s.Require().Equal(tc.expected, result)
})
}
}