Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
4 changes: 2 additions & 2 deletions ethtx/providers/semantic_providers/repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
from ethtx.providers.web3_provider import NodeDataProvider
from ethtx.semantics.protocols_router import amend_contract_semantics
from ethtx.semantics.solidity.precompiles import precompiles
from ethtx.semantics.standards.erc20 import ERC20_FUNCTIONS, ERC20_EVENTS
from ethtx.semantics.standards.erc20 import ERC20_FUNCTIONS, ERC20_EVENTS, ERC20_MODIFIED_EVENTS
from ethtx.semantics.standards.erc721 import ERC721_FUNCTIONS, ERC721_EVENTS


Expand Down Expand Up @@ -211,7 +211,7 @@ def _decode_standard_semantics(
if not address:
return standard, standard_semantics

if all(erc20_event in events for erc20_event in ERC20_EVENTS) and all(
if (all(erc20_event in events for erc20_event in ERC20_EVENTS) or all(erc20_event in events for erc20_event in ERC20_MODIFIED_EVENTS)) and all(
erc20_function in functions for erc20_function in ERC20_FUNCTIONS
):
standard = "ERC20"
Expand Down
25 changes: 25 additions & 0 deletions ethtx/semantics/standards/erc20.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,26 @@
],
)

erc20_modified_transfer_event = EventSemantics(
signature="0xe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16",
anonymous=False,
name="Transfer",
parameters=[
ParameterSemantics(
parameter_name="src", parameter_type="address", indexed=True
),
ParameterSemantics(
parameter_name="dst", parameter_type="address", indexed=True
),
ParameterSemantics(
parameter_name="value", parameter_type="uint256", indexed=False
),
ParameterSemantics(
parameter_name="data", parameter_type="bytes", indexed=False,dynamic=True
),
],
)

erc20_transfer_event_transformation = {
"__input2__": TransformationSemantics(
transformation="__input2__ / 10**token_decimals(__contract__)"
Expand Down Expand Up @@ -147,6 +167,11 @@
erc20_approval_event.signature: erc20_approval_event,
}

ERC20_MODIFIED_EVENTS = {
erc20_modified_transfer_event.signature: erc20_modified_transfer_event,
erc20_approval_event.signature: erc20_approval_event,
}

ERC20_FUNCTIONS = {
erc20_transfer_function.signature: erc20_transfer_function,
erc20_transferFrom_function.signature: erc20_transferFrom_function,
Expand Down