aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/src/2.0.0/forwarder/MixinERC20.sol
diff options
context:
space:
mode:
authorAmir Bandeali <abandeali1@gmail.com>2018-07-07 06:08:14 +0800
committerAmir Bandeali <abandeali1@gmail.com>2018-07-08 13:11:36 +0800
commit462f1f00d8151ad17f8909f2c07dbc807a0df87d (patch)
treecd4a7dece270466472d744b758047f3b3bd36510 /packages/contracts/src/2.0.0/forwarder/MixinERC20.sol
parent1c80bba4ddcb01cb8e3694f86d3f81e7164b8991 (diff)
downloaddexon-sol-tools-462f1f00d8151ad17f8909f2c07dbc807a0df87d.tar
dexon-sol-tools-462f1f00d8151ad17f8909f2c07dbc807a0df87d.tar.gz
dexon-sol-tools-462f1f00d8151ad17f8909f2c07dbc807a0df87d.tar.bz2
dexon-sol-tools-462f1f00d8151ad17f8909f2c07dbc807a0df87d.tar.lz
dexon-sol-tools-462f1f00d8151ad17f8909f2c07dbc807a0df87d.tar.xz
dexon-sol-tools-462f1f00d8151ad17f8909f2c07dbc807a0df87d.tar.zst
dexon-sol-tools-462f1f00d8151ad17f8909f2c07dbc807a0df87d.zip
Combine mixins
Diffstat (limited to 'packages/contracts/src/2.0.0/forwarder/MixinERC20.sol')
-rw-r--r--packages/contracts/src/2.0.0/forwarder/MixinERC20.sol67
1 files changed, 0 insertions, 67 deletions
diff --git a/packages/contracts/src/2.0.0/forwarder/MixinERC20.sol b/packages/contracts/src/2.0.0/forwarder/MixinERC20.sol
deleted file mode 100644
index 23c130d69..000000000
--- a/packages/contracts/src/2.0.0/forwarder/MixinERC20.sol
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-
- Copyright 2018 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.4.24;
-
-
-contract MixinERC20 {
-
- bytes4 constant internal ERC20_TRANSFER_SELECTOR = bytes4(keccak256("transfer(address,uint256)"));
-
- function transferToken(
- address token,
- address to,
- uint256 amount
- )
- internal
- {
- // Transfer tokens.
- // We do a raw call so we can check the success separate
- // from the return data.
- bool success = token.call(abi.encodeWithSelector(
- ERC20_TRANSFER_SELECTOR,
- to,
- amount
- ));
- require(
- success,
- "TRANSFER_FAILED"
- );
-
- // Check return data.
- // If there is no return data, we assume the token incorrectly
- // does not return a bool. In this case we expect it to revert
- // on failure, which was handled above.
- // If the token does return data, we require that it is a single
- // value that evaluates to true.
- assembly {
- if returndatasize {
- success := 0
- if eq(returndatasize, 32) {
- // First 64 bytes of memory are reserved scratch space
- returndatacopy(0, 0, 32)
- success := mload(0)
- }
- }
- }
- require(
- success,
- "TRANSFER_FAILED"
- );
- }
-}