All notable changes to this project will be documented in this file.
- Bumped
web3
to ~6 and adapted code to breaking changes #191 - Simplified stringification process of
Decimal
objects #192
- Deleted invalid cache wrapper on get_erc20_token in web3provider #187
- Bumped
web3
to 5.28.0 and removed no longer necessaryeth
dependecies #178 - Set field
DecodedEvent.value
andDecodedTransfer.value
as Decimal #179 - Removed
requests-cache
dependencies and replaced with standardrequests
#180
- Fixed missing
decoded_value
inparameters
of decoded events #171 - Fixed
Web3ENSProviderENSProvider
resolution #178 - Fixed major issue regarding loss of decimal precision for
value
field in decoded modelsArgument
,DecodedCall
andDecodedTransfer
#179
- Fix output decoding for reverted calls#172
- Fix missing decoded_value in parameters decoding for events #173
- Fixed amount calculation for NFT transfers #169
- Fix decode_static_argument doubling 0x prefix in bytes type #168
- Refactored/split
utils
code #156 - Refactored
SignatureProvider
#156 - Removed
@cache
from signature Cursor object #156 - Updated logging #156
- Updated
requests-cache
version. Pipenv could not handle the bad dependencies in this package #157 - Fixed guessing function (problem with writing to and reading from the base) #156
- Removed support for optional parameters in mongo, due to different tiers of atlas #152
- Removed the formatting of
transfer.value
, so the value remains unchanged #152 - Renamed a variable in
README.md
#152 black
formatting #152
- Break dynamic array decoding if there are no more available parameter
- Fixed
DecodedTransfer.value
type (str -> float) #144 - Fixed
README
mongo string #140
- Make more flexible deps -
ethtx
is easier to install in other apps #140 - No timeout for mongo cursor - some collections may sometimes require more time to search #140
- Cache
4bytes
response, if some transactions have a lot of guessed functions/events, it definitely speeds upethtx
! #140 - Added an option to recreate semantics used for transaction decoding #148
- Caught exception for ens where there is no code associated with the specified address #137
- Fixed wrong transaction metadata types #136
- Added optional fields
from_address
andto_address
to DecodedTransactionMetadata model #136
- Gracefully handle errors for evaluating value of transfers #133
- Add placeholder names for not decoded parameters #131
- Fix decoding of strings with special characters #127
- Fix incorrect usage of Web3.toChecksumAddress #128
- Fix decoding of Transfers that use invalid ERC20/ERC721 events #129
- Added
CACHE_SIZE
environment variable used to set the size of the cache #121 - Overwritten
lru_cache
decorator with customcache
decorator, which usesCACHE_SIZE
environment variable to set the size of the cache #121 - Make pydantic
BaseModel
hashable.
- Do not update semantics every time from
ENS
#117
- Fixed some documentation errors in
README.md
file #121
- Add some static types and LRU caches for proxy guessing and web3 #112
- Updated old Features section in
README.md
#114 - Removed requirements.txt file. Builds will use Pipfile from now on #114
to_address
field in Call/DecodedCall is optional now #111- Fixed
web3
dependencies #114 - Delete bunch of invalid if conditions when checking for semantic #113
- Added option to disable refreshing of addresses in ENS for existing semantics #106
- Increased and added more lru_caches in different providers #105
- Python version bumped to 3.9 #103
- Deleted ethereum price field from decoded transaction model, will be moved to ethtx_ce #104
- Fixed decoding of anonymous events without known contract's abi #107
- Update build dev requirements #88
- Update build requirements #86
- Delete unused dependency on
ethereum
package, organized others #84 - Make object models work with reverted events #83
- Set field
W3CallTree.to_address
as optional #77
- Return lowercase address if
ENS
provider can not resolve it to name #75
- Changed exception
Web3ConnectionException
toNodeConnectionException
#68 - Changed
tests
directory structure #68 - All models now use
pydantic
#72 - Removed
jsonpickle
#72 - Changed the order of methods in
DecoderService
#72 - Update requirements (requirements.txt & Pipfile) #72
- Update README #72
strip()
every single node URL inNodeConnectionPool
#72- Refactored ENS provider, each time a new ens object is taken #71
- Added node switcher - if one is unavailable, it uses the others available to connect with node #68
- Extended function end event models #72
- Model tests added #72
- Catch more exceptions from
4byte.directory
(looks like the service is not always working properly) #71 - Added more logging #71
- Added more exceptions #71
- Fix tuple components processing #66
- Fixed bug where mongo was using database called 'db', instead of one specified in connection string #62
- Removed indexes -incompatibility with macOS #63
- ENS name fix. The contract name was decoded incorrectly, because
None
(unresolved) address value was overwriting the correct one #63
- Fixed unknown args for empty guessed functions (empty arguments have been removed) #59
- Fixed
ENS.fromWeb3
with poa. ENS did not copy middleware from injected Web3, therefore the transaction could not be decoded correctly for chains:Goerli
andRinkeby
#56 - Fix bug where
get_proxies
was using only default chain, instead of provided one #57
- Refactored Etherscan provider #50
- Removed useless logs #50
- Ethtx now fails completely when any part of decoding fails
- Updated usages and project description in readme
- Fixed decoding of multidimensional arrays
- Changed transaction model from TransactionMetadata to DecodedTransactionMetadata
- Fixed recording of semantics used during decoding
- Fixed small PyLint issues #50
- Added missing chain_id parameter to EthTxDecoders.get_proxies method #54
- Standard Proxy contracts (e.g. EIP1969) are now properly decoded
- All known signatures (from contracts or external sources) are stored into the database #50
- Guessing missing signatures using other contracts and 4byte.directory #50
- Resolving ENS domains #50
- New providers: ENS, Signature #50
- Added missing functions for NodeProvider interface
- Added more types #50
- Fixed multidimensional arrays processing
- Fixed unnecessary semantics saving
- Increased log level for exceptions in every decoding part and exposing more information
- Increased timeout for 'debug_traceTransaction' call
- Fixed Web3 requests for testnets
- Proper decoding of guessed ERC20 ABI and transformations
- ERC20 and ERC721 events processing fixes
- Reading stored semantics fix
- ERC721 proxies processing fix
- Added support for Goerli nodes
- Fixed return values and dynamic arrays processing
- Proper handling of block ExtraBytes for PoA chains
- EthTxConfig object format
- Added missing files, fixed broken build
- fixed badges for transfers and balances
- fixed events parameters decoding
- changed decoded models
- changed delegations processing for proxy detection
- added precompiled contracts calls processing
- Delegate calls pruning fix
- Fixed anonymous events processing
- Fixed semantic decoding for contract creation txs
- Changelog refactor.
- Token proxies handling fixes.
- ABI and semantic decoding fixes.
- Semantics repository reading fixes.
- Caching optimization.
- README content fix.
- Initial release.