Artifact changes crafted manually: re-generated artifacts from within
@0x/contracts-erc20, and then copied them into @0x/contract-artifacts,
but only committed the changes that added devdoc.
Modified @0x/contracts-erc20/compiler.json to include devdoc in the
hopes that next time contract-artifacts are re-generated en masse, the
devdoc output will just come along for the ride.
Compiling ERC20 TypeScript wrappers after adding devdoc to the artifacts
revealed some inconsistencies in the types. ethereum-types'
DevdocOutput REQUIRED many fields which are not always present,
depending the devdoc contents itself. Relaxing the requirement had some
ramifications.
* Stop restarting node unnecesssarily during test
* Add new, empty LibAssetData
* Support encoding & decoding of ERC20 asset data
* Support encoding & decoding of ERC721 asset data
* Support encoding & decoding of ERC1155 asset data
* Support encoding & decoding of multi-asset data
* Support querying ERC20 balance from asset data
* Support querying ERC721 balance from asset data
* Support querying ERC1155 balance from asset data
* Support querying balance from multi-asset data
* Support querying ERC20 allowance from asset data
* Support querying ERC721 allowance from asset data
* Support querying ERC1155 allowance from asset data
* In tests, wait for allowance set before checking
* Introduce temporary variable `assetDataBody`
* Handle edge case in multi-asset balance query
* Support multi-asset allowance query by asset data
* Move variable declaration up for readability.
* Make all solhint-disable's cite specific rules
And move the directives to the ends of lines whenever possible
* Rename query tests to include " by asset data"
* Extract test helper method
* Extract another test helper method
* Support batch queries of allowances & balances
* In LibAssetData.sol, use IERC1155, not ...Mintable
* Rename balance*() return vars: amount -> balance
* Fix bug in ERC721 balance query
Was using method balanceOf(), but needed to be using ownerOf().
getERC721TokenOwner() method lifted from
@0x/extensions/contracts/src/OrderValidator/OrderValidator.sol
* Reuse new en/decoders; avoid abi.decode().
* Start lowest allowance/balance from 0, not MAX_INT
* Properly implement ERC1155 balance querying
* Split lines for readability
* Also check isApprovedForAll in 721 allowance query
* Add neglected division of allowances by amounts
* Rename methods: balanceOf -> getBalance
* Rename methods: allowance -> getAllowance
* Add methods: getBalanceAndAllowance() & batch...()
* Rename return vars: amount -> allowance
* Add devdoc comments
* Rename batchGet* methods to getBatch*
* Remove refactoring relic
* Add revert messages to all require() calls
* Reduce gas usage for ERC1155 asset data decoding
* Don't use dockerized solc for ERC20 contracts
Because they demand solc version 0.4.26, and it seems as though the tag
for that version has been deleted from dockerhub.
Without this, @0x/contracts-erc20 was failing to build.
* Rename batch functions to use plurals
* Skip dockerized solc for contracts needing 0.4.26
I seems as though the tag for that version has been deleted from
dockerhub.
Without this, these contracts were failing to build.
* Make revert reasons follow snake case convention