aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/src
diff options
context:
space:
mode:
authorAmir Bandeali <abandeali1@gmail.com>2018-04-27 03:10:04 +0800
committerAmir Bandeali <abandeali1@gmail.com>2018-05-31 08:11:30 +0800
commit87d36f06fd7116afb62b65cdbc013d93a61d1969 (patch)
tree22f0fba1ebaf14422dde241d03e058031ea58b12 /packages/contracts/src
parent3eb05b45053748f227bc984458580a33596800d1 (diff)
downloaddexon-sol-tools-87d36f06fd7116afb62b65cdbc013d93a61d1969.tar
dexon-sol-tools-87d36f06fd7116afb62b65cdbc013d93a61d1969.tar.gz
dexon-sol-tools-87d36f06fd7116afb62b65cdbc013d93a61d1969.tar.bz2
dexon-sol-tools-87d36f06fd7116afb62b65cdbc013d93a61d1969.tar.lz
dexon-sol-tools-87d36f06fd7116afb62b65cdbc013d93a61d1969.tar.xz
dexon-sol-tools-87d36f06fd7116afb62b65cdbc013d93a61d1969.tar.zst
dexon-sol-tools-87d36f06fd7116afb62b65cdbc013d93a61d1969.zip
Add sample whitelist contract
Diffstat (limited to 'packages/contracts/src')
-rw-r--r--packages/contracts/src/contracts/current/test/Whitelist/Whitelist.sol58
1 files changed, 58 insertions, 0 deletions
diff --git a/packages/contracts/src/contracts/current/test/Whitelist/Whitelist.sol b/packages/contracts/src/contracts/current/test/Whitelist/Whitelist.sol
new file mode 100644
index 000000000..02158485e
--- /dev/null
+++ b/packages/contracts/src/contracts/current/test/Whitelist/Whitelist.sol
@@ -0,0 +1,58 @@
+/*
+
+ 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.21;
+pragma experimental ABIEncoderV2;
+
+import "../../protocol/Exchange/mixins/MTransactions.sol";
+import "../../protocol/Exchange/LibOrder.sol";
+import "../../utils/Ownable/Ownable.sol";
+
+contract Whitelist is Ownable {
+
+ mapping (address => bool) public isWhitelisted;
+ MTransactions EXCHANGE;
+
+ bytes txOriginSignatureType = new bytes(1);
+
+ function Whitelist(address _exchange)
+ public
+ {
+ EXCHANGE = MTransactions(_exchange);
+ txOriginSignatureType[0] = 0x04;
+ }
+
+ function updateWhitelistStatus(address target, bool isApproved)
+ external
+ onlyOwner
+ {
+ isWhitelisted[target] = isApproved;
+ }
+
+ function fillOrderIfWhitelisted(
+ LibOrder.Order memory order,
+ uint256 takerAssetFillAmount,
+ uint256 salt,
+ bytes memory signature)
+ public
+ {
+ require(isWhitelisted[msg.sender]);
+ bytes memory data = abi.encode(order, takerAssetFillAmount, signature);
+ EXCHANGE.executeTransaction(salt, msg.sender, data, txOriginSignatureType);
+ }
+} \ No newline at end of file