forked from cerc-io/laconicd
This change fixes an insidious bug that unfortunately tried to split values in multiples of 32, but unfortunately due to the loop conditions, if the length of trace.Memory was less than 32, nothing would be added; if the value wasn't a multiple of 32, the ends wouldn't be added in. Fixes #837
32 KiB
32 KiB
Changelog
Unreleased
State Machine Breaking
- (evm) tharsis#840 Store empty topics as empty array rather than nil.
- (feemarket) tharsis#822 Update EIP1559 base fee in
BeginBlock. - (evm) tharsis#817 Use
effectiveGasPricein ante handler, addeffectiveGasPriceto tx receipt.
Improvements
- (evm) tharsis#826 Improve allocation of bytes of
tx.Toaddress. - (evm) tharsis#827 Speed up creation of event logs by using the slice insertion idiom with indices.
Bug Fixes
- (rpc) tharsis#831 Fix BaseFee value when height is specified.
- (evm) tharsis#838 Fix splitting of trace.Memory into 32 chunks.
[v0.9.0] - 2021-12-01
State Machine Breaking
- (evm) tharsis#802 Clear access list for each transaction
Improvements
- (app) tharsis#794 Setup in-place store migrators.
- (ci) tharsis#784 Enable automatic backport of PRs.
- (rpc) tharsis#786 Improve error message of
SendTransaction/SendRawTransactionJSON-RPC APIs.
Bug Fixes
- (license) tharsis#800 Re-license project to LGPLv3 to comply with go-ethereum.
- (evm) tharsis#794 Register EVM gRPC
Msgserver. - (rpc) tharsis#781 Fix get block invalid transactions filter.
- (rpc) tharsis#782 Fix wrong block gas limit returned by JSON-RPC.
- (evm) tharsis#798 Fix the semantic of
ForEachStoragecallback's return value
[v0.8.1] - 2021-11-23
Bug Fixes
- (feemarket) tharsis#770 Enable fee market (EIP1559) by default.
- (rpc) tharsis#769 Fix default Ethereum signer for JSON-RPC.
[v0.8.0] - 2021-11-17
State Machine Breaking
- (evm, ante) tharsis#620 Add fee market field to EVM
KeeperandAnteHandler. - (all) tharsis#231 Bump go-ethereum version to
v1.10.9 - (ante) tharsis#703 Fix some fields in transaction are not authenticated by signature.
- (evm) tharsis#751 don't revert gas refund logic when transaction reverted
Features
- (rpc, evm) tharsis#673 Use tendermint events to store fee market basefee.
- (rpc) tharsis#624 Implement new JSON-RPC endpoints from latest geth version
- (evm) tharsis#662 Disable basefee for non london blocks
- (cmd) tharsis#712 add tx cli to build evm transaction
- (rpc) tharsis#733 add JSON_RPC endpoint
personal_unpair - (rpc) tharsis#734 add JSON_RPC endpoint
eth_feeHistory - (rpc) tharsis#740 add JSON_RPC endpoint
personal_initializeWallet - (rpc) tharsis#743 add JSON_RPC endpoint
debug_traceBlockByHash - (rpc) tharsis#748 add JSON_RPC endpoint
personal_listWallets - (rpc) tharsis#754 add JSON_RPC endpoint
debug_intermediateRoots
Bug Fixes
- (evm) tharsis#746 Set EVM debugging based on tracer configuration.
- (app,cli) tharsis#725 Fix cli-config for
keyscommand. - (rpc) tharsis#727 Decode raw transaction using RLP.
- (rpc) tharsis#661 Fix OOM bug when creating too many filters using JSON-RPC.
- (evm) tharsis#660 Fix
nilpointer panic inApplyNativeMessage. - (evm, test) tharsis#649 Test DynamicFeeTx.
- (evm) tharsis#702 Fix panic in web3 RPC handlers
- (rpc) tharsis#720 Fix
debug_traceTransactionfailure - (rpc) tharsis#741 Fix
eth_getBlockByNumberAndHashreturn with non eth txs - (rpc) tharsis#743 Fix debug JSON RPC handler crash on non-existing block
Improvements
- (tests) tharsis#704 Introduce E2E testing framework for clients
- (deps) tharsis#737 Bump ibc-go to
v2.0.0 - (rpc) tharsis#671 Don't pass base fee externally for
EthCall/EthEstimateGasapis. - (evm) tharsis#674 Refactor
ApplyMessage, removeApplyNativeMessage. - (rpc) tharsis#714 remove
MsgEthereumTxsupport inTxConfig
[v0.7.2] - 2021-10-24
Improvements
- (deps) tharsis#692 Bump Cosmos SDK version to
v0.44.3. - (rpc) tharsis#679 Fix file close handle.
- (deps) tharsis#668 Bump Tendermint version to
v0.34.14.
Bug Fixes
- (rpc) tharsis#667 Fix
ExpandHomerestrictions bypass
[v0.7.1] - 2021-10-08
Bug Fixes
- (evm) tharsis#650 Fix panic when flattening the cache context in case transaction is reverted.
- (rpc, test) tharsis#608 Fix rpc test.
[v0.7.0] - 2021-10-07
API Breaking
- (rpc) tharsis#400 Restructure JSON-RPC directory and rename server config
Improvements
- (deps) tharsis#621 Bump IBC-go to
v1.2.1 - (evm) tharsis#613 Refactor
traceTx - (deps) tharsis#610 Bump Cosmos SDK to v0.44.1.
Bug Fixes
- (rpc) tharsis#642 Fix
eth_getLogswhen string is specified in filter's from or to fields - (evm) tharsis#616 Fix halt on deeply nested stack of cache context. Stack is now flattened before iterating over the tx logs.
- (rpc, evm) tharsis#614 Use JSON for (un)marshaling tx
Logs from events. - (rpc) tharsis#611 Fix panic on JSON-RPC when querying for an invalid block height.
- (cmd) tharsis#483 Use config values on genesis accounts.
[v0.6.0] - 2021-09-29
State Machine Breaking
- (app) tharsis#476 Update Bech32 HRP to
ethm. - (evm) tharsis#556 Remove tx logs and block bloom from chain state
- (evm) tharsis#590 Contract storage key is not hashed anymore
API Breaking
- (evm) tharsis#469 Deprecate
YoloV3BlockandEWASMBlockfromChainConfig
Features
- (evm) tharsis#469 Support EIP-1559
- (evm) tharsis#417 Add
EvmHooksfor tx post-processing - (rpc) tharsis#506 Support for
debug_traceTransactionRPC endpoint - (rpc) tharsis#555 Support for
debug_traceBlockByNumberRPC endpoint
Bug Fixes
- (rpc, server) tharsis#600 Add TLS configuration for websocket API
- (rpc) tharsis#598 Check truncation when creating a
BlockNumberfrombig.Int - (evm) tharsis#597 Check for
uint64->int64block height overflow onGetHashFn - (evm) tharsis#579 Update
DeriveChainIDfunction to handlevsignature values< 35. - (encoding) tharsis#478 Register
Evidenceto amino codec. - (rpc) tharsis#478 Getting the node configuration when calling the
minerrpc methods. - (cli) tharsis#561
ExportandStartcommands now use the same home directory.
Improvements
- (evm) tharsis#461 Increase performance of
StateDBtransaction log storage (r/w). - (evm) tharsis#566 Introduce
stateErrstore inStateDBto avoid meaningless operations if any error happened before - (rpc, evm) tharsis#587 Apply bloom filter when query ethlogs with range of blocks
- (evm) tharsis#586 Benchmark evm keeper
[v0.5.0] - 2021-08-20
State Machine Breaking
- (app, rpc) tharsis#447 Chain ID format has been changed from
<identifier>-<epoch>to<identifier>_<EIP155_number>-<epoch>in order to clearly distinguish permanent vs impermanent components. - (app, evm) tharsis#434 EVM
Keeperstruct andNewEVMfunction now have a newtracefield to define the Tracer type used to collect execution traces from the EVM transaction execution. - (evm) tharsis#175 The msg
TxDatafield is now represented as a*proto.Any. - (evm) tharsis#84 Remove
journal,CommitStateDBandstateObjects. - (rpc, evm) tharsis#81 Remove tx
Receiptfrom store and replace it with fields obtained from the Tendermint RPC client. - (evm) tharsis#72 Update
AccessListto useTransientStoreinstead of map. - (evm) tharsis#68 Replace block hash storage map to use staking
HistoricalInfo. - (evm) tharsis#276 Vm errors don't result in cosmos tx failure, just different tx state and events.
- (evm) tharsis#342 Don't clear balance when resetting the account.
- (evm) tharsis#334 Log index changed to the index in block rather than tx.
- (evm) tharsis#399 Exception in sub-message call reverts the call if it's not propagated.
API Breaking
- (proto) tharsis#448 Bump version for all Ethermint messages to
v1 - (server) tharsis#434
evm-rpcflags and app config have been renamed tojson-rpc. - (proto, evm) tharsis#207 Replace
big.Intin favor ofsdk.IntforTxDatafields - (proto, evm) tharsis#81 gRPC Query and Tx service changes:
- The
TxReceipt,TxReceiptsByBlockHeightendpoints have been removed from the Query service. - The
ContractAddress,Bloomhave been removed from theMsgEthereumTxResponseand the response now contains the ethereum-formattedHashin hex format.
- The
- (eth) #845 The
ethnamespace must be included in the list of API's as default to run the rpc server without error. - (evm) #202 Web3 api
SendTransaction/SendRawTransactionreturns ethereum compatible transaction hash, and query apiGetTransaction*also accept that. - (rpc) tharsis#258 Return empty
BloomFilterinstead of throwing an error when it cannot be found (nilor empty). - (rpc) tharsis#277 Fix
BloomFilterresponse.
Improvements
- (client) tharsis#450 Add EIP55 hex address support on
debug addrcommand. - (server) tharsis#343 Define a wrap tendermint logger
Handlergo-ethereum'srootlogger. - (rpc) tharsis#457 Configure RPC gas cap through app config.
- (evm) tharsis#434 Support different
Tracertypes for the EVM. - (deps) tharsis#427 Bump ibc-go to
v1.0.0 - (gRPC) tharsis#239 Query
ChainConfigvia gRPC. - (rpc) tharsis#181 Use evm denomination for params on tx fee.
- (deps) tharsis#423 Bump Cosmos SDK and Tendermint versions to v0.43.0 and v0.34.11, respectively.
- (evm) tharsis#66 Support legacy transaction types for signing.
- (evm) tharsis#24 Implement metrics for
MsgEthereumTx, state transitions,BeginBlockandEndBlock. - (rpc) #124 Implement
txpool_content,txpool_inspectandtxpool_statusRPC methods - (rpc) tharsis#112 Fix
eth_coinbaseto return the ethereum address of the validator - (rpc) tharsis#176 Support fetching pending nonce
- (rpc) tharsis#272 do binary search to estimate gas accurately
- (rpc) #313 Implement internal debug namespace (Not including logger functions nor traces).
- (rpc) #349 Implement configurable JSON-RPC APIs to manage enabled namespaces.
- (rpc) #377 Implement
miner_namespace.miner_setEtherbaseandminer_setGasPriceare working as intended. All the other calls are not applicable and returnunsupported. - (eth) tharsis#460 Add support for EIP-1898.
Bug Fixes
- (keys) tharsis#346 Fix
keys addcommand with--ledgerflag for thesecp256k1signing algorithm. - (evm) tharsis#291 Use block proposer address (validator operator) for
COINBASEopcode. - (rpc) tharsis#81 Fix transaction hashing and decoding on
eth_sendTransaction. - (rpc) tharsis#45 Use
EmptyUncleHashandEmptyRootHashfor empty ethereumHeaderfields.
[v0.4.1] - 2021-03-01
API Breaking
- (faucet) #678 Faucet module has been removed in favor of client libraries such as
@cosmjs/faucet. - (evm) #670 Migrate types to the ones defined by the protobuf messages, which are required for the stargate release.
Bug Fixes
- (evm) #799 Fix wrong precision in calculation of gas fee.
- (evm) #760 Fix Failed to call function EstimateGas.
- (evm) #767 Fix error of timeout when using Truffle to deploy contract.
- (evm) #751 Fix misused method to calculate block hash in evm related function.
- (evm) #721 Fix mismatch block hash in rpc response when use eht.getBlock.
- (evm) #730 Fix 'EIP2028' not open when Istanbul version has been enabled.
- (evm) #749 Fix panic in
AnteHandlerwhen gas price larger than 100000 - (evm) #747 Fix format errors in String() of QueryETHLogs
- (evm) #742 Add parameter check for evm query func.
- (evm) #687 Fix nonce check to explicitly check for the correct nonce, rather than a simple 'greater than' comparison.
- (api) #687 Returns error for a transaction with an incorrect nonce.
- (evm) #674 Reset all cache after account data has been committed in
EndBlockto make sure every node state consistent. - (evm) #672 Fix panic of
wrong Block.Header.AppHashwhen restart a node with snapshot. - (evm) #775 MisUse of headHash as blockHash when create EVM context.
Features
- (api) #821 Individually enable the api modules. Will be implemented in the latest version of ethermint with the upcoming stargate upgrade.
Features
- (api) #825 Individually enable the api modules. Will be implemented in the latest version of ethermint with the upcoming stargate upgrade.
[v0.4.0] - 2020-12-15
API Breaking
- (evm) #661
Balancefield has been removed from the evm module'sGenesisState.
Features
- (rpc) #571 Add pending queries to JSON-RPC calls. This allows for the querying of pending transactions and other relevant information that pertains to the pending state:
eth_getBalanceeth_getTransactionCounteth_getBlockTransactionCountByNumbereth_getBlockByNumbereth_getTransactionByHasheth_getTransactionByBlockNumberAndIndexeth_sendTransaction- the nonce will automatically update to its pending nonce (when none is explicitly provided)
Improvements
- (evm) #661 Add invariant check for account balance and account nonce.
- (deps) #654 Bump go-ethereum version to v1.9.25
- (evm) #627 Add extra EIPs parameter to apply custom EVM jump tables.
Bug Fixes
- (evm) #661 Set nonce to the EVM account on genesis initialization.
- (rpc) #648 Fix block cumulative gas used value.
- (evm) #621 EVM
GenesisAccountfields now share the same format as the auth moduleAccount. - (evm) #618 Add missing EVM
ContextGetHashfield that retrieves a the header hash from a given block height. - (app) #617 Fix genesis export functionality.
- (rpc) #574 Fix outdated version from
eth_protocolVersion.
[v0.3.1] - 2020-11-24
Improvements
- (deps) #615 Bump Cosmos SDK version to v0.39.2
- (deps) #610 Update Go dependency to 1.15+.
- (evm) #603 Add state transition params that enable or disable the EVM
CallandCreateoperations. - (deps) #602 Bump tendermint version to v0.33.9
Bug Fixes
- (rpc) #613 Fix potential deadlock caused if the keyring
Listreturned an error.
[v0.3.0] - 2020-11-16
API Breaking
- (crypto) #559 Refactored crypto package in preparation for the SDK's Stargate release:
crypto.PubKeySecp256k1andcrypto.PrivKeySecp256k1are nowethsecp256k1.PubKeyandethsecp256k1.PrivKey, respectively- Moved SDK
SigningAlgoimplementation for Ethermint's Secp256k1 key tocrypto/hdpackage.
- (rpc) #588 The
rpcpackage has been refactored to account for the separation of each corresponding Ethereum API namespace:rpc/namespaces/eth:ethnamespace. Exposes thePublicEthereumAPIand thePublicFilterAPI.rpc/namespaces/personal:personalnamespace. Exposes thePrivateAccountAPI.rpc/namespaces/net:netnamespace. Exposes thePublicNetAPI.rpc/namespaces/web3:web3namespace. Exposes thePublicWeb3API.
- (evm) #588 The EVM transaction CLI has been removed in favor of the JSON-RPC.
Improvements
Bug Fixes
- (ante) #597 Fix incorrect fee check on
AnteHandler. - (evm) #583 Fixes incorrect resetting of tx count and block bloom during
BeginBlock, as well as gas consumption. - (crypto) #577 Fix
BIP44HDPaththat did not prependm/to the path. This now uses theDefaultBaseDerivationPathvariable from go-ethereum to ensure addresses are consistent.
[v0.2.1] - 2020-09-30
Features
- (rpc) #552 Implement Eth Personal namespace
personal_importRawKey.
Bug fixes
- (keys) #554 Fix private key derivation.
- (app/ante) #550 Update ante handler nonce verification to accept any nonce greater than or equal to the expected nonce to allow to successive transactions.
[v0.2.0] - 2020-09-24
State Machine Breaking
- (app) #540 Chain identifier's format has been changed to match the Cosmos
chainIDstandard, which is required for IBC. The epoch number of the ID is used as the EVMchainID.
API Breaking
- (types) #503 The
types.DenomDefaultconstant for"aphoton"has been renamed totypes.AttoPhoton.
Improvements
- (types) #504 Unmarshal a JSON
EthAccountusing an Ethereum hex address in addition to Bech32. - (types) #503 Add
--coin-denomflag to testnet command that sets the given coin denomination to SDK and Ethermint parameters. - (types) #502
EthAccountnow also exposes the Ethereum hex address instringformat to clients. - (types) #494 Update
EthAccountpublic key JSON type tostring. - (app) #471 Add
x/upgrademodule for managing software updates. - (
x/evm) #458 Define parameter for token denomination used for the EVM module. - (
x/evm) #443 Support custom EthereumChainConfigparams. - (types) #434 Update default denomination to Atto Photon (
aphoton). - (types) #515 Update minimum gas price to be 1.
Bug Fixes
- (ante) #525 Add message validation decorator to
AnteHandlerforMsgEthereumTx. - (types) #507 Fix hardcoded
aphotononEthAccountbalance getter and setter. - (types) #501 Fix bech32 encoding error by using the compressed ethereum secp256k1 public key.
- (
x/evm) #496 Fix bugs onjournal.revertandCommitStateDB.Copy. - (types) #480 Update BIP44 coin type to
60to satisfy EIP84. - (types) #513 Fix simulated transaction bug that was causing a consensus error by unintentionally affecting the state.
[v0.1.0] - 2020-08-23
Improvements
- (sdk) #386 Bump Cosmos SDK version to v0.39.1
- (
x/evm) #181 Updated EVM module to the recommended module structure. - (app) #188 Misc cleanup:
- (
x/evm) RenameEthereumTxMsg-->MsgEthereumTxandEmintMsg-->MsgEthermintfor consistency with SDK standards - Updated integration and unit tests to use
EthermintAppas testing suite - Use expected
Keeperinterface forAccountKeeper - Replaced
counttype in keeper withint - Add SDK events for transactions
- (
- #236 Changes from upgrade:
- (
app/ante) MovedAnteHandlerimplementation toapp/ante - (keys) Marked
ExportEthKeyCommandas UNSAFE - (
x/evm) MovedBeginBlockandEndBlocktox/evm/abci.go
- (
- (
x/evm) #255 Add missingGenesisStatefields and supportExportGenesisfunctionality. - #272 Add
Loggerfor evm module. - #317
GenesisAccountvalidation. - (
x/evm) #319 Various evm improvements:- Add transaction
[]*ethtypes.Logsto evm'sGenesisStateto persist logs after an upgrade. - Remove evm
CodeKeyandBlockKeyin favor of a prefixStore. - Set
BlockBloomduringEndBlockinstead ofBeginBlock. Commitstate object andFinalizestorage afterInitGenesissetup.
- Add transaction
- (rpc) #325
eth_coinbaseJSON-RPC query now returns the node's validator address.
Features
- (build) #378 Create multi-node, local, automated testnet setup with
make localnet-start. - (rpc) #330 Implement
PublicFilterAPI'sEventSystemwhich subscribes to Tendermint events uponFiltercreation. - (rpc) #231 Implement
NewBlockFilterin rpc/filters.go which instantiates a polling block filter- Polls for new blocks via
BlockNumberrpc call; if block number changes, it requests the new block viaGetBlockByNumberrpc call and adds it to its internal list of blocks - Update
uninstallFilterandgetFilterChangesaccordingly uninstallFilterstops the polling goroutinegetFilterChangesreturns the filter's internal list of block hashes and resets it
- Polls for new blocks via
- (rpc) #54, #55
Implement
eth_getFilterLogsandeth_getLogs:- For a given filter, look through each block for transactions. If there are transactions in the block, get the logs from it, and filter using the filterLogs method
eth_getLogsandeth_getFilterChangesfor log filters use the same underlying method aseth_getFilterLogs- update
HandleMsgEthereumTxto store logs using the ethereum hash
- (app) #187 Add support for simulations.
Bug Fixes
- (evm) #767 Fix error of timeout when using Truffle to deploy contract.
- (evm) #751 Fix misused method to calculate block hash in evm related function.
- (evm) #721 Fix mismatch block hash in rpc response when use eth.getBlock.
- (evm) #730 Fix 'EIP2028' not open when Istanbul version has been enabled.
- (app) #749 Fix panic in
AnteHandlerwhen gas price larger than 100000 - (rpc) #305 Update
eth_getTransactionCountto check for account existence before getting sequence and return 0 as the nonce if it doesn't exist. - (
x/evm) #319 FixSetBlockHashthat was setting the incorrect height duringBeginBlock. - (
x/evm) #176 Updated Web3 transaction hash from using RLP hash. Now all transaction hashes exposed are amino hashes:- Removes
Hash()(RLP) function fromMsgEthereumTxto avoid confusion or misuse in future.
- Removes