* MetaTransactionData changes
* MetaTransactionV2 creation and forge tests
* MetaTransactionData changes
* MetaTransactionV2 creation and forge tests
* add multiplexBatchSellTokenForToken, multiplexMultiHopSellTokenForToken, multiplex TokenForEth functions to metatransactions, add msgSender field to multiplex params
* Ran prettier to clean up
* More linting
* Fixing issues with EIP 712 signature, adding test case against MetaMask, and fixing lint issues
* Addressing suggestions from PR reviewers
* Complex rebase of test code based on changes in #655
* Fixing multiplex test failure
* add some tests for multiplex metatransactions
* prettier
* minor test fix
* cleaning up and adding batchExecuteMetaTransaction tests
* Removing ZERO_ADDRESS
* add multiHopBatchSellOtc to MultiplexFeature, fix _computeHopTarget for MultiplexSubcall.OTC [#667]
* fix _computeHopTarget for otc subcalls
* Fixing multiHopSellOtcOrder when params.useSelfBalance is true
* Making executeMetaTransactionV2 nonpayable and addressing a few other minor issues
* Forge update
* Add MetaTransactionsFeatureV2 to exported contracts
---------
Co-authored-by: abls <112491550+abls@users.noreply.github.com>
Co-authored-by: Duncan Townsend <git@duncancmt.com>
* add kyber elastic to ethereum and polygon
* add to arbitrum and avalanche
* added kyber quoter/router dummy addresses
* move kyberelastic test to a different file, fix some bugs with addresses, blocknumber
* lint
* Strip erc20 package of legacy nonsense and add foundry basics
* Make foundry build
* Remove obsoleted test/UntransferrableDummyERC20Token.sol contract
* Remove obsoleted ERC20 lib variant contracts
* Remove obsoleted DummyMultipleReturnERC20Token and DummyNoReturnERC20Token contracts
* Move test contract to dedicated folder
and remove obsoleted TypeScript contract wrappers
* Remove src/interfaces/IEtherToken.sol only used in
v3 staking which is being obsoleted [skip ci]
* Add foundry test for token
* Migrate ZRX token tests to foundry
* Fix paths to erc20 contracts
* Remove obsoleted references
* Pin erc20-contracts package on treasury
* Ignore foundry imports in link checker
* Run only forge tests for erc20 contracts
* Remove DummyERC20Token and its dependencies
* Merge IERC20TokenV06 and IERC20TokenV08
into range pragma to cover solidity 0.6.5 to 0.8.x
* Merge IEtherTokenV06 and IEtherTokenV08
into range pragma to cover solidity 0.6.5 to 0.8.x
* Migrate weth9 tests to foundry
* Upload code coverage for erc20 package
* Update changelog
* Fix review comments
Co-authored-by: duncancmt <1207590+duncancmt@users.noreply.github.com>
---------
Co-authored-by: duncancmt <1207590+duncancmt@users.noreply.github.com>
* added initial foundry transformERC20 tests
* added foundry tests into CircleCI flow
* add verbosity for failing tests in CI
* revert wrong CI commands
* feat: Foundry, added some more deployments (#558)
* Added some more deployments
* Rename WETH9 to WETH9V06
* Set to 0.6.x
* fix typo
* remove commit with bad prettier changes
* working bridge Fills through weth transformer
* remove unused reference
* clean up tests
* added working otc fill through transformERC20 in FQT
* resolve file imports, add samplers, arbitrumBridgeAdatper, and new FQT version
* add extra 'v' for debugging verbosity
* add extra 'v' for debugging verbosity in circleci config
* remove old traces
* refactor rpc's out of foundry.toml and into .env for CI compatibility
* remove verbosity from CI command as its now defined in foundry.toml
* setup rpc's
* ignore foundry artifacts in prettier
* change naming in prettierignore
* move /samplers to the tests subdirectory, modify remappings to reflext change
* one more try 🤞
* change CI steps
* remove yarn from CI step
* get to the right directory
* update foundry before tests
* fix tip() deprecation and use deal()
* use deal() instead of vm.deal()
* try to get foundry to have the right directory structure by updating it
* I HATE THIS
* remove foundryup
* Fix prettier issues
* Remove obsoleted import
* Use forge native commands to
install deps and test and add the --root option
* Try using forge with working-directory flag in CI
* Use nightly foundry docker image
* Update rpc endpoints config in foundry
* move tests into /forked and /local
* rename tests
* add foundry profiles to CI
* try to fix CI
* 🔧 add foundry local and forked tests to workflow
* prettier and lint
* revert deps update
* remove all samplers and add uniswapV2 sampler to ForkUtils
* address jacobs comments
* cleanup and comment
* prettier and lint
* bump contracts-zero-ex version
* set func-name-mixedcase to off in solhint for elenas new changes
* max line length to warn
* add --fix for check-md
* Update ci.yml
* fix some nitpcks and leftover code
* fix inconsistent naming
* fix bridge adapter reverts and foundry cache
* migrate foundry integration tests to /tests
* refactor contract-addresses to use the contract-addresses package style nested json
* fix solhint
* fix contract linting errors
* dont check broken links in libraries
* move forge order in gh action for testing
* add env instead of vars
* try again
* fix github actions ordering
* update licence and address comments
* remove verbosity from foundry.toml
* fix contract lint
* move back to emitting an event until samplers can be integrated as some chains dont have uniswap as a source
* add uniswap v3 sampling code for future use
* remove uniswap v3 code as its not used
* fix lint
Co-authored-by: Noah Khamliche <0xnoah@Noahs-MacBook-Pro-2.local>
Co-authored-by: Jacob Evans <jacob@dekz.net>
Co-authored-by: elenadimitrova <elena@arenabg.com>
* Implement base instantiation of the ZeroEx proxy in foundry
and move TestZeroExFeature contract to the foundry mocks
* Migrate zero-ex tests to foundry
* Update copyright year
* Update contracts/zero-ex/tests/mocks/TestZeroExFeature.sol
Co-authored-by: Jacob Evans <jacob@dekz.net>
Co-authored-by: Jacob Evans <jacob@dekz.net>
* Remove contracts/zero-ex/contracts/test/TestBridge.sol
* Move foundry tests to their default location
* Wire up base foundry test and start moving
FlashWallet tests and mocks to foundry
* Move remaining FlashWallet contract tests to foundry
* Switch to foundry default cache config
* Add solhint and basic configuration
* Add solhint-plugin-prettier to run prettier via solhint
* Remove all solhint-disable rules in contracts
* Turn off compiler version errors
* Fix max-line-length linter errors
* Fix linting and prettier issues in contracts
* Add global lint command to run both ts and solidity linter
* Use `call` instead of `transfer` in `LibERC20Transformer`
* Since `transfer` only forwards 2300 gas it can cause an `out of gas`
revert when the receipient is a smart contract.
* Add `unsafeTransformerTransfer` and migrate `transformers` to use
`unsafeTransformerTransfer` instead of `transformerTransfer`
* Update .prettierignore
* swap rfq and otc in fillQuoteTransformerDataEncoder to match our enum
* changelog
* fix changelog and move otcOrders field to last in fillQuoteTransformerDataEncoder
* prettier
* move otcOrders array to end of fqtTransformData
Co-authored-by: Noah Khamliche <0xnoah@Noahs-MacBook-Pro-2.local>
* add prettier-solidity + config
* run prettier
* update lockfile
* run prettier again
* Prettier missed one /:
* keep bridge adapter the same
* yarn prettier
* Add WooFI interface for sampling
* WooFi Sampler
* Add mixin
* Update bridge adapters
* fix some bugs
* update transformer_utils
* Add BSC support
* yarn prettier
* Capitalize WOOFI in bridge adapters
* Put rebateAddress in a constant, fixed some other stylistic errors
* bug fixes
* Updated CHANGELOGS & MD docs
* Publish
- @0x/contracts-erc20@3.3.33
- @0x/contracts-test-utils@5.4.24
- @0x/contracts-treasury@1.4.16
- @0x/contracts-utils@4.8.14
- @0x/contracts-zero-ex@0.36.0
- @0x/asset-swapper@16.64.0
- @0x/contract-addresses@6.17.0
- @0x/contract-wrappers@13.20.5
- @0x/protocol-utils@11.16.0
* Update reference.mdx (#531)
Align with `DEFAULT_QUOTE_SLIPPAGE_PERCENTAGE` value from c74e31c219/src/constants.ts (L26)
* code cleanup
* remove deusdc curve pool from this pr
* Refactor PoolsCache (part 1) [TKR-500] (#525)
* Make _refreshPoolCacheIfRequiredAsync type-safe and remove Promise.all
* Factor out PoolsCache key logic into a function
* Use Map instead of object in PoolsCache and increase the default timeout
* Clean up PoolsCache and simplify its public interface
* Refactor PoolsCache (part 2) [TKR-500] (#526)
* Introduce NoOpPoolsCache and use it in unsupported chains for BeethovenX
* Use `NoOpPoolsCache` for `CreamPoolsCache` and `BalancerPoolsCache` on unsupported chains
* Remove `getBidAskLiquidityForMakerTakerAssetPairAsync` (#528)
* Add transfer approval for quote token for multi-hops and fix buy sampler typo
* Use 0x gas api instead of eth gas station api [TKR-502] (#532)
* Use 0x gas api instead of eth gas station api
* Add integration test for `ProtocolFeeUtils`
* Update CHANGELOG.json
* Add polygon, fantom, avalanche support
* yarn prettier
* Updated CHANGELOGS & MD docs
* Publish
- @0x/asset-swapper@16.65.0
* Remove references to `custom-no-magic-numbers` ts lint rule [TKR-484] (#533)
* Remove references to `custom-no-magic-numbers ts` lint rule
* Run prettier
* resolve Kyu's comments
* remove fqt change
* Add WooFI interface for sampling
* WooFi Sampler
* Add mixin
* Update bridge adapters
* fix some bugs
* update transformer_utils
* Add BSC support
* yarn prettier
* Capitalize WOOFI in bridge adapters
* Put rebateAddress in a constant, fixed some other stylistic errors
* bug fixes
* code cleanup
* remove deusdc curve pool from this pr
* Add transfer approval for quote token for multi-hops and fix buy sampler typo
* Add polygon, fantom, avalanche support
* yarn prettier
* resolve Kyu's comments
* remove fqt change
* merge types.ts
* WOOFi -> WOOFI
* fix lerna run lint
* Changelog
* nit changes
Co-authored-by: Github Actions <github-actions@github.com>
Co-authored-by: Pavel <51318041+pavel-bc@users.noreply.github.com>
Co-authored-by: Kyu <kyuhyun217@gmail.com>
* Remove Oasis
* Remove CoFix code
* Remove MixinKyber
* Remove Kyber from asset-swapper
* Delete unused imports, interface, and etc.
* Fix the test failure issue when it's run with neon-router
* Update CHANGELOG.json
* Draft. PoC pseudo code showing general idea for resuing SOR path creation logic and adding multihop support.
* Add actual Balancer SDK function calls.
* Update to handle buys.
* Correct taker>maker for buy.
* Draft. PoC pseudo code showing general idea for resuing SOR path creation logic and adding multihop support.
* make it build
* rebase
* add BalancerV2Batch protocol
* add BalancerV2Batch protocol
* get balancer v2 multihop working
* fix BalancerV2Batch for sells (buys still iffy)
* fix buys, appease linter and prettier
* remove unused RPC URL from balancer sdk construction
* update changelogs
* clean up comments
add event loop yield in `BalancerV2SwapInfoCache.loadTopPools()`
* add negative result check on balancerv2batch swap output
* compiler hack
* reintroduce CompilerHack
* delete unused multibridge sampler
* remove compilerhack
* reintroduce compilerhack
* try to fix CI compile errors
* plz work
* plz work
* pretty plz work
* yay it works, also address feedback
* appease linter
* deploy new FQTs
Co-authored-by: johngrantuk <johngrantuk@googlemail.com>
Co-authored-by: Lawrence Forman <me@merklejerk.com>