The components attribute may not be present in all subtypes of ABIElement.
ABIElement subtypes, such as ABIEvent or ABIFunction may not require a components attribute for all inputs. The components attribute must be optional to accommodate TypedDicts of the form:
What was wrong?
Types for ABIs should match the spec.
The
components
attribute may not be present in all subtypes ofABIElement
.ABIElement
subtypes, such asABIEvent
orABIFunction
may not require acomponents
attribute for all inputs. Thecomponents
attribute must be optional to accommodate TypedDicts of the form:Related to Issue https://github.com/ethereum/web3.py/issues/3036
How was it fixed?
total=False
on theABIComponent
type makes all attributes optional, so instead usingNotRequired
to denote specific attributes as optional.components
can now be omitted when usingABIComponent
.Todo:
[x] Clean up commit history
[x] Add or update documentation related to these changes
[x] Add entry to the release notes
Cute Animal Picture