feat[lang]: auto-export events in ABI#3808
Conversation
Codecov ReportAttention: Patch coverage is
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## master #3808 +/- ##
==========================================
- Coverage 85.08% 84.87% -0.21%
==========================================
Files 92 92
Lines 13875 13907 +32
Branches 3113 3116 +3
==========================================
- Hits 11805 11804 -1
- Misses 1576 1607 +31
- Partials 494 496 +2 ☔ View full report in Codecov by Sentry. |
- improve call graph analysis - called_functions and reachable_internal_functions start out as None - move analyze_call_graph into standalone function instead of method - tinker with _add_exposed_function to ensure we have all exposed functions by the time we get to ImplementsDecl
rely on analysis, not declared events
change the event member names in the builtin interfaces
rename a test file
This reverts commit 0747a5c.
b2ba9e6 to
dde7d81
Compare
cyberthirst
left a comment
There was a problem hiding this comment.
Name collisions with imported events are performed based on used_events, thus NamespaceCollision isn't thrown in the cases like the following one:
# ITest
event Foo:
a: uint256import ITest
implements: ITest
event Foo:
a: address
@external
def foo(u: uint256):
log Foo(empty(address))
#log ITest.Foo(u)Testing with an attribute access to i throws IndexError: list index out of range:
import ITest
implements: ITest
event Foo:
a: address
@external
def foo(u: uint256):
log Foo(empty(address))
log i.Foo(empty(address)
this is intended, it's an attempt to reduce namespace pollution (instead of just exporting all events found in all imports) the other option is just to export all events in all imports, but that leads to some weird interactions with the namespace, e.g. you
weird, will investigate |
|
after investigating the parser issue i think it's an unrelated, latent error. it should be fixed, but reviewed in a separate PR |
What I did
depends #3786
after this, the standard token demo looks like this:
How I did it
How to verify it
Commit message
Description for the changelog
Cute Animal Picture