* Refactor Multiplex into multiple files * Pull UniswapV3 into separate file * Add support for multihop nested within batch sell * Add useSelfBalance and recipient to _fillRfqOrder * Expose onlySelf variant in UniswapV3Feature for Multiplex * Add useSelfBalance and recipient to _transformERC20 * Add support for proportional fill amounts in batchSell * Comments and renaming * Unit tests * Use caps for immutables * Rename taker -> recipient in TransformContext and SettleOrderInfo * lint * Address nits * Swallow reverts for LiquidityProvider and UniswapV2 batch sells * Address spot-check findings (#279) * Check didSucceed in _callWithOptionalBooleanResult * Add takerToken=ETH support to OtcOrdersFeature (#287) * Add takerToken=ETH support to OtcOrdersFeature * Add batchFillTakerSignedOtcOrders * Add support for OTC to Multiplex * Address PR feedback * Update TransformERC20Feature (#303) * remove multiplex_utils * Update changelog * unbreak tests
62 lines
1.6 KiB
Solidity
62 lines
1.6 KiB
Solidity
// SPDX-License-Identifier: Apache-2.0
|
|
/*
|
|
|
|
Copyright 2020 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.5;
|
|
pragma experimental ABIEncoderV2;
|
|
|
|
import "../src/transformers/IERC20Transformer.sol";
|
|
import "./TestMintableERC20Token.sol";
|
|
import "./TestTransformerHost.sol";
|
|
import "./TestWeth.sol";
|
|
|
|
|
|
contract TestWethTransformerHost is
|
|
TestTransformerHost
|
|
{
|
|
// solhint-disable
|
|
TestWeth private immutable _weth;
|
|
// solhint-enable
|
|
|
|
constructor(TestWeth weth) public {
|
|
_weth = weth;
|
|
}
|
|
|
|
function executeTransform(
|
|
uint256 wethAmount,
|
|
IERC20Transformer transformer,
|
|
bytes calldata data
|
|
)
|
|
external
|
|
payable
|
|
{
|
|
if (wethAmount != 0) {
|
|
_weth.deposit{value: wethAmount}();
|
|
}
|
|
// Have to make this call externally because transformers aren't payable.
|
|
this.rawExecuteTransform(
|
|
transformer,
|
|
IERC20Transformer.TransformContext({
|
|
sender: msg.sender,
|
|
recipient: msg.sender,
|
|
data: data
|
|
})
|
|
);
|
|
}
|
|
}
|