feat: add Foundry support to contracts/zero-ex (#534)
Co-authored-by: Michael Zhu <mchl.zhu.96@gmail.com>
This commit is contained in:
@@ -1,4 +1,14 @@
|
||||
[
|
||||
{
|
||||
"version": "0.36.2",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add Foundry support",
|
||||
"pr": 534
|
||||
}
|
||||
],
|
||||
"timestamp": 1659976271
|
||||
},
|
||||
{
|
||||
"timestamp": 1659750766,
|
||||
"version": "0.36.1",
|
||||
|
@@ -2,6 +2,10 @@
|
||||
|
||||
This package contains contracts for the ZeroEx extensible contract architecture.
|
||||
|
||||
> **_NOTE:_** This repo is undergoing a tooling change. If adding a contract, you will need to
|
||||
> add it to `compiler.json`. You can generate the entire list by running the following:
|
||||
> `find . -type f -name "*.sol" | grep -v foundry | grep -v "contracts/dep" | grep -v "node_modules"`
|
||||
|
||||
## Installation
|
||||
|
||||
**Install**
|
||||
|
@@ -1,6 +1,212 @@
|
||||
{
|
||||
"artifactsDir": "./test/generated-artifacts",
|
||||
"contractsDir": "./contracts",
|
||||
"contracts": [
|
||||
"./contracts/test/TestFixinProtocolFees.sol",
|
||||
"./contracts/test/TestTransformerHost.sol",
|
||||
"./contracts/test/TestFillQuoteTransformerHost.sol",
|
||||
"./contracts/test/TestTransformerDeployerTransformer.sol",
|
||||
"./contracts/test/TestUniswapV3Feature.sol",
|
||||
"./contracts/test/TestBridge.sol",
|
||||
"./contracts/test/TestCallTarget.sol",
|
||||
"./contracts/test/TestNoEthRecipient.sol",
|
||||
"./contracts/test/TestFullMigration.sol",
|
||||
"./contracts/test/TestLibSignature.sol",
|
||||
"./contracts/test/integration/TestUniswapV3Pool.sol",
|
||||
"./contracts/test/integration/TestMooniswap.sol",
|
||||
"./contracts/test/integration/TestUniswapV3Factory.sol",
|
||||
"./contracts/test/integration/TestCurve.sol",
|
||||
"./contracts/test/integration/TestUniswapV2Pool.sol",
|
||||
"./contracts/test/integration/TestUniswapV2Factory.sol",
|
||||
"./contracts/test/integration/TestLiquidityProvider.sol",
|
||||
"./contracts/test/TestMetaTransactionsNativeOrdersFeature.sol",
|
||||
"./contracts/test/TestFeeCollectorController.sol",
|
||||
"./contracts/test/TestNFTOrderPresigner.sol",
|
||||
"./contracts/test/TestMetaTransactionsTransformERC20Feature.sol",
|
||||
"./contracts/test/TestTransformERC20.sol",
|
||||
"./contracts/test/TestFeeRecipient.sol",
|
||||
"./contracts/test/TestPermissionlessTransformerDeployerTransformer.sol",
|
||||
"./contracts/test/TestMigrator.sol",
|
||||
"./contracts/test/TestFixinTokenSpender.sol",
|
||||
"./contracts/test/TestDelegateCaller.sol",
|
||||
"./contracts/test/TestTransformerBase.sol",
|
||||
"./contracts/test/TestZeroExFeature.sol",
|
||||
"./contracts/test/TestLibNativeOrder.sol",
|
||||
"./contracts/test/TestWethTransformerHost.sol",
|
||||
"./contracts/test/TestPropertyValidator.sol",
|
||||
"./contracts/test/TestMintTokenERC20Transformer.sol",
|
||||
"./contracts/test/TestFillQuoteTransformerBridge.sol",
|
||||
"./contracts/test/TestOrderSignerRegistryWithContractWallet.sol",
|
||||
"./contracts/test/TestNativeOrdersFeature.sol",
|
||||
"./contracts/test/TestRfqOriginRegistration.sol",
|
||||
"./contracts/test/TestStaking.sol",
|
||||
"./contracts/test/TestFillQuoteTransformerExchange.sol",
|
||||
"./contracts/test/TestInitialMigration.sol",
|
||||
"./contracts/test/tokens/TestMintableERC721Token.sol",
|
||||
"./contracts/test/tokens/TestTokenSpenderERC20Token.sol",
|
||||
"./contracts/test/tokens/TestWeth.sol",
|
||||
"./contracts/test/tokens/TestMintableERC1155Token.sol",
|
||||
"./contracts/test/tokens/TestMintableERC20Token.sol",
|
||||
"./contracts/test/TestSimpleFunctionRegistryFeatureImpl1.sol",
|
||||
"./contracts/test/ITestSimpleFunctionRegistryFeature.sol",
|
||||
"./contracts/test/TestPermissionlessTransformerDeployerSuicidal.sol",
|
||||
"./contracts/test/TestSimpleFunctionRegistryFeatureImpl2.sol",
|
||||
"./contracts/src/migrations/InitialMigration.sol",
|
||||
"./contracts/src/migrations/LibMigrate.sol",
|
||||
"./contracts/src/migrations/LibBootstrap.sol",
|
||||
"./contracts/src/migrations/FullMigration.sol",
|
||||
"./contracts/src/ZeroExOptimized.sol",
|
||||
"./contracts/src/fixins/FixinERC721Spender.sol",
|
||||
"./contracts/src/fixins/FixinTokenSpender.sol",
|
||||
"./contracts/src/fixins/FixinERC1155Spender.sol",
|
||||
"./contracts/src/fixins/FixinReentrancyGuard.sol",
|
||||
"./contracts/src/fixins/FixinProtocolFees.sol",
|
||||
"./contracts/src/fixins/FixinEIP712.sol",
|
||||
"./contracts/src/fixins/FixinCommon.sol",
|
||||
"./contracts/src/features/BatchFillNativeOrdersFeature.sol",
|
||||
"./contracts/src/features/LiquidityProviderFeature.sol",
|
||||
"./contracts/src/features/ERC165Feature.sol",
|
||||
"./contracts/src/features/MetaTransactionsFeature.sol",
|
||||
"./contracts/src/features/nft_orders/NFTOrders.sol",
|
||||
"./contracts/src/features/nft_orders/ERC1155OrdersFeature.sol",
|
||||
"./contracts/src/features/nft_orders/ERC721OrdersFeature.sol",
|
||||
"./contracts/src/features/TransformERC20Feature.sol",
|
||||
"./contracts/src/features/OwnableFeature.sol",
|
||||
"./contracts/src/features/libs/LibSignature.sol",
|
||||
"./contracts/src/features/libs/LibNativeOrder.sol",
|
||||
"./contracts/src/features/libs/LibNFTOrder.sol",
|
||||
"./contracts/src/features/native_orders/NativeOrdersSettlement.sol",
|
||||
"./contracts/src/features/native_orders/NativeOrdersCancellation.sol",
|
||||
"./contracts/src/features/native_orders/NativeOrdersProtocolFees.sol",
|
||||
"./contracts/src/features/native_orders/NativeOrdersInfo.sol",
|
||||
"./contracts/src/features/UniswapV3Feature.sol",
|
||||
"./contracts/src/features/NativeOrdersFeature.sol",
|
||||
"./contracts/src/features/UniswapFeature.sol",
|
||||
"./contracts/src/features/BootstrapFeature.sol",
|
||||
"./contracts/src/features/multiplex/MultiplexTransformERC20.sol",
|
||||
"./contracts/src/features/multiplex/MultiplexRfq.sol",
|
||||
"./contracts/src/features/multiplex/MultiplexFeature.sol",
|
||||
"./contracts/src/features/multiplex/MultiplexLiquidityProvider.sol",
|
||||
"./contracts/src/features/multiplex/MultiplexOtc.sol",
|
||||
"./contracts/src/features/multiplex/MultiplexUniswapV3.sol",
|
||||
"./contracts/src/features/multiplex/MultiplexUniswapV2.sol",
|
||||
"./contracts/src/features/OtcOrdersFeature.sol",
|
||||
"./contracts/src/features/FundRecoveryFeature.sol",
|
||||
"./contracts/src/features/SimpleFunctionRegistryFeature.sol",
|
||||
"./contracts/src/features/PancakeSwapFeature.sol",
|
||||
"./contracts/src/features/interfaces/IMultiplexFeature.sol",
|
||||
"./contracts/src/features/interfaces/IPancakeSwapFeature.sol",
|
||||
"./contracts/src/features/interfaces/IUniswapV3Feature.sol",
|
||||
"./contracts/src/features/interfaces/INativeOrdersFeature.sol",
|
||||
"./contracts/src/features/interfaces/IOwnableFeature.sol",
|
||||
"./contracts/src/features/interfaces/IERC165Feature.sol",
|
||||
"./contracts/src/features/interfaces/IFundRecoveryFeature.sol",
|
||||
"./contracts/src/features/interfaces/IERC721OrdersFeature.sol",
|
||||
"./contracts/src/features/interfaces/ILiquidityProviderFeature.sol",
|
||||
"./contracts/src/features/interfaces/IFeature.sol",
|
||||
"./contracts/src/features/interfaces/IMetaTransactionsFeature.sol",
|
||||
"./contracts/src/features/interfaces/IBootstrapFeature.sol",
|
||||
"./contracts/src/features/interfaces/IOtcOrdersFeature.sol",
|
||||
"./contracts/src/features/interfaces/IERC1155OrdersFeature.sol",
|
||||
"./contracts/src/features/interfaces/IUniswapFeature.sol",
|
||||
"./contracts/src/features/interfaces/ITokenSpenderFeature.sol",
|
||||
"./contracts/src/features/interfaces/ISimpleFunctionRegistryFeature.sol",
|
||||
"./contracts/src/features/interfaces/ITransformERC20Feature.sol",
|
||||
"./contracts/src/features/interfaces/INativeOrdersEvents.sol",
|
||||
"./contracts/src/features/interfaces/IBatchFillNativeOrdersFeature.sol",
|
||||
"./contracts/src/IZeroEx.sol",
|
||||
"./contracts/src/ZeroEx.sol",
|
||||
"./contracts/src/storage/LibNativeOrdersStorage.sol",
|
||||
"./contracts/src/storage/LibTransformERC20Storage.sol",
|
||||
"./contracts/src/storage/LibOtcOrdersStorage.sol",
|
||||
"./contracts/src/storage/LibSimpleFunctionRegistryStorage.sol",
|
||||
"./contracts/src/storage/LibStorage.sol",
|
||||
"./contracts/src/storage/LibERC721OrdersStorage.sol",
|
||||
"./contracts/src/storage/LibReentrancyGuardStorage.sol",
|
||||
"./contracts/src/storage/LibMetaTransactionsStorage.sol",
|
||||
"./contracts/src/storage/LibProxyStorage.sol",
|
||||
"./contracts/src/storage/LibOwnableStorage.sol",
|
||||
"./contracts/src/storage/LibERC1155OrdersStorage.sol",
|
||||
"./contracts/src/transformers/FillQuoteTransformer.sol",
|
||||
"./contracts/src/transformers/AffiliateFeeTransformer.sol",
|
||||
"./contracts/src/transformers/PositiveSlippageFeeTransformer.sol",
|
||||
"./contracts/src/transformers/Transformer.sol",
|
||||
"./contracts/src/transformers/LibERC20Transformer.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinShell.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinMakerPSM.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinDodoV2.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinMStable.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinBalancerV2.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinCurveV2.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinPlatypus.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinNerve.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinBancor.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinUniswap.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinBalancer.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinCompound.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinBalancerV2Batch.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinLido.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinUniswapV2.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinZeroExBridge.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinUniswapV3.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinBancorV3.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinKyberDmm.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinGMX.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinCurve.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinMooniswap.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinDodo.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinCryptoCom.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinSynthetix.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinAaveV2.sol",
|
||||
"./contracts/src/transformers/bridges/mixins/MixinVelodrome.sol",
|
||||
"./contracts/src/transformers/bridges/CeloBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/FantomBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/OptimismBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/AbstractBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/EthereumBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/PolygonBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/AvalancheBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/BridgeProtocols.sol",
|
||||
"./contracts/src/transformers/bridges/IBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/BSCBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/LogMetadataTransformer.sol",
|
||||
"./contracts/src/transformers/IERC20Transformer.sol",
|
||||
"./contracts/src/transformers/PayTakerTransformer.sol",
|
||||
"./contracts/src/transformers/WethTransformer.sol",
|
||||
"./contracts/src/external/PermissionlessTransformerDeployer.sol",
|
||||
"./contracts/src/external/FlashWallet.sol",
|
||||
"./contracts/src/external/FeeCollector.sol",
|
||||
"./contracts/src/external/IFlashWallet.sol",
|
||||
"./contracts/src/external/LiquidityProviderSandbox.sol",
|
||||
"./contracts/src/external/TransformerDeployer.sol",
|
||||
"./contracts/src/external/LibFeeCollector.sol",
|
||||
"./contracts/src/external/FeeCollectorController.sol",
|
||||
"./contracts/src/external/ILiquidityProviderSandbox.sol",
|
||||
"./contracts/src/errors/LibLiquidityProviderRichErrors.sol",
|
||||
"./contracts/src/errors/LibSignatureRichErrors.sol",
|
||||
"./contracts/src/errors/LibWalletRichErrors.sol",
|
||||
"./contracts/src/errors/LibTransformERC20RichErrors.sol",
|
||||
"./contracts/src/errors/LibNativeOrdersRichErrors.sol",
|
||||
"./contracts/src/errors/LibNFTOrdersRichErrors.sol",
|
||||
"./contracts/src/errors/LibMetaTransactionsRichErrors.sol",
|
||||
"./contracts/src/errors/LibCommonRichErrors.sol",
|
||||
"./contracts/src/errors/LibOwnableRichErrors.sol",
|
||||
"./contracts/src/errors/LibProxyRichErrors.sol",
|
||||
"./contracts/src/errors/LibSimpleFunctionRegistryRichErrors.sol",
|
||||
"./contracts/src/liquidity-providers/MooniswapLiquidityProvider.sol",
|
||||
"./contracts/src/liquidity-providers/CurveLiquidityProvider.sol",
|
||||
"./contracts/src/vendor/IMooniswapPool.sol",
|
||||
"./contracts/src/vendor/IFeeRecipient.sol",
|
||||
"./contracts/src/vendor/IERC721Token.sol",
|
||||
"./contracts/src/vendor/IERC1155Token.sol",
|
||||
"./contracts/src/vendor/IPropertyValidator.sol",
|
||||
"./contracts/src/vendor/ITakerCallback.sol",
|
||||
"./contracts/src/vendor/IUniswapV3Pool.sol",
|
||||
"./contracts/src/vendor/v3/IStaking.sol",
|
||||
"./contracts/src/vendor/v3/IERC20Bridge.sol",
|
||||
"./contracts/src/vendor/IUniswapV2Pair.sol",
|
||||
"./contracts/src/vendor/ILiquidityProvider.sol"
|
||||
],
|
||||
"useDockerisedSolc": false,
|
||||
"isOfflineMode": false,
|
||||
"shouldSaveStandardInput": true,
|
||||
|
1
contracts/zero-ex/contracts/deps/forge-std
Submodule
1
contracts/zero-ex/contracts/deps/forge-std
Submodule
Submodule contracts/zero-ex/contracts/deps/forge-std added at 1680d7fb3e
30
contracts/zero-ex/contracts/test/foundry/ContractTest.sol
Normal file
30
contracts/zero-ex/contracts/test/foundry/ContractTest.sol
Normal file
@@ -0,0 +1,30 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2022 ZeroEx Intl.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
*/
|
||||
|
||||
pragma solidity ^0.6;
|
||||
|
||||
import "forge-std/Test.sol";
|
||||
|
||||
contract ContractTest is Test {
|
||||
function setUp() public {}
|
||||
|
||||
function testExample() public {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
8
contracts/zero-ex/foundry.toml
Normal file
8
contracts/zero-ex/foundry.toml
Normal file
@@ -0,0 +1,8 @@
|
||||
[default]
|
||||
src = 'contracts/src'
|
||||
out = 'foundry-artifacts'
|
||||
test = 'contracts/test/foundry'
|
||||
libs = ["contracts/deps/", "../utils/contracts/src/"]
|
||||
remappings = ['@0x/contracts-utils/=../utils/', '@0x/contracts-erc20/=../erc20/', 'src/=./contracts/src']
|
||||
cache_path = 'foundry-cache'
|
||||
optimizer_runs = 1000000
|
@@ -38,7 +38,8 @@
|
||||
"docs:md": "ts-doc-gen --sourceDir='$PROJECT_FILES' --output=$MD_FILE_DIR --fileExtension=mdx --tsconfig=./typedoc-tsconfig.json",
|
||||
"docs:json": "typedoc --excludePrivate --excludeExternals --excludeProtected --ignoreCompilerErrors --target ES5 --tsconfig typedoc-tsconfig.json --json $JSON_FILE_PATH $PROJECT_FILES",
|
||||
"publish:private": "yarn build && gitpkg publish",
|
||||
"rollback": "node ./lib/scripts/rollback.js"
|
||||
"rollback": "node ./lib/scripts/rollback.js",
|
||||
"typechain": "typechain --target=ethers-v5 --out-dir='typechain-wrappers' './foundry-artifacts/**/*.json'"
|
||||
},
|
||||
"config": {
|
||||
"publicInterfaceContracts": "IZeroEx,ZeroEx,FullMigration,InitialMigration,IFlashWallet,IERC20Transformer,IOwnableFeature,ISimpleFunctionRegistryFeature,ITransformERC20Feature,FillQuoteTransformer,PayTakerTransformer,PositiveSlippageFeeTransformer,WethTransformer,OwnableFeature,SimpleFunctionRegistryFeature,TransformERC20Feature,AffiliateFeeTransformer,MetaTransactionsFeature,LogMetadataTransformer,LiquidityProviderFeature,ILiquidityProviderFeature,NativeOrdersFeature,INativeOrdersFeature,FeeCollectorController,FeeCollector,CurveLiquidityProvider,BatchFillNativeOrdersFeature,IBatchFillNativeOrdersFeature,MultiplexFeature,IMultiplexFeature,OtcOrdersFeature,IOtcOrdersFeature,AvalancheBridgeAdapter,BSCBridgeAdapter,CeloBridgeAdapter,EthereumBridgeAdapter,FantomBridgeAdapter,OptimismBridgeAdapter,PolygonBridgeAdapter",
|
||||
@@ -65,6 +66,7 @@
|
||||
"@0x/sol-compiler": "^4.8.1",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.4",
|
||||
"@typechain/ethers-v5": "^10.0.0",
|
||||
"@types/isomorphic-fetch": "^0.0.35",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
@@ -78,6 +80,7 @@
|
||||
"solhint": "^1.4.1",
|
||||
"truffle": "^5.0.32",
|
||||
"tslint": "5.11.0",
|
||||
"typechain": "^8.0.0",
|
||||
"typedoc": "~0.16.11",
|
||||
"typescript": "4.6.3"
|
||||
},
|
||||
|
Reference in New Issue
Block a user