* abi-gen: inline @0x/abi-gen-templates
And use those inlines by default, relieving caller of having to specify
--template and --partials all the time.
Simplify abi-gen usage in all package.json's, omitting --template and
--partials to defer to the defaults.
* abi-gen: Update CHANGELOG.json
* contract_wrappers.py: be a user of abi-gen
* abi-gen/Py: fix return type for multi-val returns
Methods that return multiple values were broken in two ways. One: a
spurious newline was being injected between the return type and the
colon ending the Python method prototype. Two: the return type was
being generated as just `[TypeA, TypeB]`, whereas it should be
`Tuple[TypeA, TypeB]`.
* abi-gen/Py: fix support for arrays of structs
* abi-gen/Py: FAILING test case nested unrefd struct
When a struct contains another struct, and the inner struct is not
directly referenced by any method interface, wrapper generation is
failing to render a class to represent the inner struct.
This won't fail in CI because at this time CI doesn't run any native
Python tooling to analyze the generated code. Running mypy locally on
the files in this commit produces the following output:
test-cli/output/python/abi_gen_dummy/__init__.py:76: error: Name 'Tuple0x246f9407' is not defined
This problem affects the generation of wrappers for the DutchAuction
contract.
* abi-gen/Py: fix nested unref'd struct failure
* abi-gen/Py: introduce newlines to quiet linter
When generating contracts with long names (eg
CoordinatorRegistryValidator), the `black` reformatter was introducing
these newlines for us, and it was moving the `# type: ignore` comment in
there such that it no longer was on the line it needed to be on.
Introducing these newlines manually (instead of letting black inject
them) allows the linter directive to stay where it needs to be.
* abi-gen/Py: declare tuples in dependency order
* abi-gen/Py: fix support for overloaded methods
* contract_wrappers.py: pylint: permit 2-char args
By default pylint says that 2 characters is too short for an argument
name, but we have some contract methods with 2-character argument names
(eg `to` in `AssetProxyOwner.getTransactionIds()`), so we want to permit
them.
* contract_wrappers.py: include all contracts
* Update CHANGELOGs
* abi-gen: rename variable
* abi-gen: refine comments
* abi-gen/Py: reword tuple class docstring
* Define SubscriptionManager and instantiate in generated wrappers
* expose subscribe/unsubscribe in generated wrappers
* update changelogs
* use SubscriptionManager in `@0x/contract-wrappers`