Contract 0xf238f55ede5120915b36715b0fffe20ff57f8134

 

TxHash Block Age From To Value [TxFee]
0xe15e32518b1d31dd498e7bca67748a3f3977a7d5d001ed6805eebbc3e44fb2b671935169 days 12 hrs ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340 Ether0.0075452
0x9136a4d4c37106b81b708efe842c75e3f26fc97e71f9e1aa1a85d39aded59f8d716676414 days 23 hrs ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.023257140066164 Ether0.001519044
0x48a2021af035161c3ef24137a45425362c5117d37217db8a8d5dd30f3465d62d714000120 days 10 hrs ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.128903908527087 Ether0.0025311
0x432cef8ce5acda4af1949d1000b973b37d6383783a3d8de22b4ed8e24092ecfa710922026 days 13 hrs ago0xb12b342b15c5800f0d1e99d29316d03da672c90b  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.001009182200728 Ether0.00227799
0x1f794eb6d3f94d6245b88334d850d509c8bf97970fd6492393d6149b1274cb49710921526 days 13 hrs ago0xa6650d5d03c3e12d74d9965285f2014bda4125f1  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.001009182200728 Ether0.0050622
0x55f519b9da8288ef0b378dafe2d5fda1c480852b6e77fcd5b31337da5e5a2d7c701056844 days 8 hrs ago0xa803c226c8281550454523191375695928dcfe92  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.001005001634031 Ether0.0053622
0xcd1152fdf8c59ddf6a7afb3e72d5698a32e81d170e6235b7b7ba807a6f20d29a689814863 days 11 hrs ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.330606448447472 Ether0.0050622
0xf5081ecddc3ce8924845ae5914b858bd29ccdd4b87d86663840de508092f40b9689748663 days 14 hrs ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.044094936090854 Ether0.00504112
0x9719285741e836868598acb07d68c953e33f5ead42677589db6fa7864ca6f3ed689463264 days 1 hr ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.318534944059447 Ether0.0126319
0x2025d91da2c296bd0fd105836a4d59b55871d113b67fa48e9410fe0f629ceba8689462164 days 1 hr ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.293028166587311 Ether0.004229205
0xfc74af5acfaa9e0516a484ef7f6e176549cc0118917dc71ab886913fa182606c685593470 days 10 hrs ago0x641ad78baca220c5bd28b51ce8e0f495e85fe689  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.018278666588265 Ether0.009451
0x2c26f68cca616eedd18c2490b69452939168f82da346d75fea64bdb7118727db685570270 days 11 hrs ago0x641ad78baca220c5bd28b51ce8e0f495e85fe689  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.018278666588265 Ether0.010051
0xa622a2652e5ca32a46301c753fee169f217ea1ed4462a750b081cce02eea646f685544270 days 12 hrs ago0x641ad78baca220c5bd28b51ce8e0f495e85fe689  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.0031873465 Ether0.00506564
0xcdf7cad70137abbd8862a0de35dac9f8970aeab600456a1cd4eb88fc9d6b097b678773981 days 17 hrs ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81341.031943554975 Ether0.0044381
0x87eceb686fd89daf148c35a859f72f65985004811c33ed81508d3e92073e93e8672437392 days 3 hrs ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.508903907077641 Ether0.0137938
0xf19a96eb13e72877980d84eb42a40698c7a52cb1b1d8f23cd9d9d8870ceefd68672174492 days 13 hrs ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.3084526 Ether0.00522544
0xc9f55c876feed9bbcd6fea818023b276056a85333f530f2a54356fb8d74e6cf2667725799 days 20 hrs ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.06833040789215 Ether0.00054462
0xd4c32eb068452f6bbd49aed65ee95a4c80a2941ee36710c06ea829c44c0d42c16648348104 days 14 hrs ago0x641ad78baca220c5bd28b51ce8e0f495e85fe689  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.001028169959925 Ether0.004861974
0x8111f52938f88e607251cff15c0f76af34b1902ee8eefe5af26a1b3b03cb29506648334104 days 14 hrs ago0x641ad78baca220c5bd28b51ce8e0f495e85fe689  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.01850715 Ether0.003297723
0xb78a5810c2e36c4023c67feaa3a630705846745ab2569f9ec31db62385e13cb06645530105 days 1 hr ago0x9a18a6bce810819ca5f12fc7edf80d1fd3362b30  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.04056151175 Ether0.00509404
0x9c5e434147f93eb1f5beed22e1f14f70929d44ea13380ab8ff1324df0e98798f6526349124 days 13 hrs ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.002253182006661 Ether0.00294575
0x65ef5868020281d878ccefe5a30aa82734b19fa476dd6bf4fbc50f36d454ccd76489943130 days 11 hrs ago0x8033562521fedecdcc05487303522375597f9094  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.006442284830819 Ether0.012146355
0xe714cc36037da704c29ecc3eb3656a4b41915fd1d73ef0506ee7169daf83c2f76474206133 days 28 mins ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.006184942216067 Ether0.003915842
0xabb328d097e77dfdef47bf32fec70aa7810f6e8e886aa4b456ee99d2c29002a66474173133 days 35 mins ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.004256037291 Ether0.003527146
0xac3d09319df87aa62dc992e17f2fa49d5f1ff7359c247c073a1c205697f348056442279138 days 4 hrs ago0x5a7dd6a0556ec0175d2419876d9f46dc9510af09  IN   0xf238f55ede5120915b36715b0fffe20ff57f81340.0214066123 Ether0.003781005
[ Download CSV Export 

Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xe15e32518b1d31dd498e7bca67748a3f3977a7d5d001ed6805eebbc3e44fb2b671935169 days 12 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340x5a7dd6a0556ec0175d2419876d9f46dc9510af090.019611869773820951 Ether
0xe15e32518b1d31dd498e7bca67748a3f3977a7d5d001ed6805eebbc3e44fb2b671935169 days 12 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340x626d20125da6a371aa48023bf9dad94bd66588f70.00019809969468506 Ether
0xe15e32518b1d31dd498e7bca67748a3f3977a7d5d001ed6805eebbc3e44fb2b671935169 days 12 hrs ago0xa39e83cc00d381716904fbb3bf794ae480a860d30xf238f55ede5120915b36715b0fffe20ff57f81340.007795732333516962 Ether
0xe15e32518b1d31dd498e7bca67748a3f3977a7d5d001ed6805eebbc3e44fb2b671935169 days 12 hrs ago0xa39e83cc00d381716904fbb3bf794ae480a860d30xf238f55ede5120915b36715b0fffe20ff57f81340.004306247562449605 Ether
0xe15e32518b1d31dd498e7bca67748a3f3977a7d5d001ed6805eebbc3e44fb2b671935169 days 12 hrs ago0xa39e83cc00d381716904fbb3bf794ae480a860d30xf238f55ede5120915b36715b0fffe20ff57f81340.004348829572539444 Ether
0xe15e32518b1d31dd498e7bca67748a3f3977a7d5d001ed6805eebbc3e44fb2b671935169 days 12 hrs ago0xa39e83cc00d381716904fbb3bf794ae480a860d30xf238f55ede5120915b36715b0fffe20ff57f81340.00335916 Ether
0x9136a4d4c37106b81b708efe842c75e3f26fc97e71f9e1aa1a85d39aded59f8d716676414 days 23 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340x5a7dd6a0556ec0175d2419876d9f46dc9510af090.000115707164508286 Ether
0x9136a4d4c37106b81b708efe842c75e3f26fc97e71f9e1aa1a85d39aded59f8d716676414 days 23 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340xa39e83cc00d381716904fbb3bf794ae480a860d30.02291001857264006 Ether
0x9136a4d4c37106b81b708efe842c75e3f26fc97e71f9e1aa1a85d39aded59f8d716676414 days 23 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340x626d20125da6a371aa48023bf9dad94bd66588f70.000231414329016566 Ether
0x48a2021af035161c3ef24137a45425362c5117d37217db8a8d5dd30f3465d62d714000120 days 10 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340x5a7dd6a0556ec0175d2419876d9f46dc9510af090.000641312977746703 Ether
0x48a2021af035161c3ef24137a45425362c5117d37217db8a8d5dd30f3465d62d714000120 days 10 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340xa39e83cc00d381716904fbb3bf794ae480a860d30.126979969593846936 Ether
0x48a2021af035161c3ef24137a45425362c5117d37217db8a8d5dd30f3465d62d714000120 days 10 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340x626d20125da6a371aa48023bf9dad94bd66588f70.001282625955493403 Ether
0x432cef8ce5acda4af1949d1000b973b37d6383783a3d8de22b4ed8e24092ecfa710922026 days 13 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340xb12b342b15c5800f0d1e99d29316d03da672c90b0.000005020806968802 Ether
0x432cef8ce5acda4af1949d1000b973b37d6383783a3d8de22b4ed8e24092ecfa710922026 days 13 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340xa39e83cc00d381716904fbb3bf794ae480a860d30.0009941197798224 Ether
0x432cef8ce5acda4af1949d1000b973b37d6383783a3d8de22b4ed8e24092ecfa710922026 days 13 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340x626d20125da6a371aa48023bf9dad94bd66588f70.0000100416139376 Ether
0x1f794eb6d3f94d6245b88334d850d509c8bf97970fd6492393d6149b1274cb49710921526 days 13 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340xa6650d5d03c3e12d74d9965285f2014bda4125f10.000005020806968802 Ether
0x1f794eb6d3f94d6245b88334d850d509c8bf97970fd6492393d6149b1274cb49710921526 days 13 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340xa39e83cc00d381716904fbb3bf794ae480a860d30.0009941197798224 Ether
0x1f794eb6d3f94d6245b88334d850d509c8bf97970fd6492393d6149b1274cb49710921526 days 13 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340x626d20125da6a371aa48023bf9dad94bd66588f70.0000100416139376 Ether
0x55f519b9da8288ef0b378dafe2d5fda1c480852b6e77fcd5b31337da5e5a2d7c701056844 days 8 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340xa803c226c8281550454523191375695928dcfe920.000005000008129515 Ether
0x55f519b9da8288ef0b378dafe2d5fda1c480852b6e77fcd5b31337da5e5a2d7c701056844 days 8 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340xa39e83cc00d381716904fbb3bf794ae480a860d30.000990001609643218 Ether
0x55f519b9da8288ef0b378dafe2d5fda1c480852b6e77fcd5b31337da5e5a2d7c701056844 days 8 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340x626d20125da6a371aa48023bf9dad94bd66588f70.000010000016259022 Ether
0xcd1152fdf8c59ddf6a7afb3e72d5698a32e81d170e6235b7b7ba807a6f20d29a689814863 days 11 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340x5a7dd6a0556ec0175d2419876d9f46dc9510af090.008095037056952581 Ether
0xcd1152fdf8c59ddf6a7afb3e72d5698a32e81d170e6235b7b7ba807a6f20d29a689814863 days 11 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340xa39e83cc00d381716904fbb3bf794ae480a860d30.31928629727661472 Ether
0xcd1152fdf8c59ddf6a7afb3e72d5698a32e81d170e6235b7b7ba807a6f20d29a689814863 days 11 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340x626d20125da6a371aa48023bf9dad94bd66588f70.003225114113905199 Ether
0xf5081ecddc3ce8924845ae5914b858bd29ccdd4b87d86663840de508092f40b9689748663 days 14 hrs ago0xf238f55ede5120915b36715b0fffe20ff57f81340x5a7dd6a0556ec0175d2419876d9f46dc9510af090.001079676298959479 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: ZodiacERC20
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.24;

contract Ownable {
    address public owner;

    function Ownable()
        public
    {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address newOwner)
        public
        onlyOwner
    {
        if (newOwner != address(0)) {
            owner = newOwner;
        }
    }
}

library SafeMath {
    function safeMul(uint a, uint b)
        internal
        pure
        returns (uint256)
    {
        uint c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    function safeDiv(uint a, uint b)
        internal
        pure
        returns (uint256)
    {
        uint c = a / b;
        return c;
    }

    function safeSub(uint a, uint b)
        internal
        pure
        returns (uint256)
    {
        assert(b <= a);
        return a - b;
    }

    function safeAdd(uint a, uint b)
        internal
        pure
        returns (uint256)
    {
        uint c = a + b;
        assert(c >= a);
        return c;
    }

    function max64(uint64 a, uint64 b)
        internal
        pure
        returns (uint256)
    {
        return a >= b ? a : b;
    }

    function min64(uint64 a, uint64 b)
        internal
        pure
        returns (uint256)
    {
        return a < b ? a : b;
    }

    function max256(uint256 a, uint256 b)
        internal
        pure
        returns (uint256)
    {
        return a >= b ? a : b;
    }

    function min256(uint256 a, uint256 b)
        internal
        pure
        returns (uint256)
    {
        return a < b ? a : b;
    }
}


/**
 * @title BytesToTypes
 * @dev The BytesToTypes contract converts the memory byte arrays to the standard solidity types
 */

contract BytesToTypes {


    function bytesToAddress(uint _offst, bytes memory _input) internal pure returns (address _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToBool(uint _offst, bytes memory _input) internal pure returns (bool _output) {

        uint8 x;
        assembly {
            x := mload(add(_input, _offst))
        }
        x==0 ? _output = false : _output = true;
    }

    function getStringSize(uint _offst, bytes memory _input) internal pure returns(uint size){

        assembly{

            size := mload(add(_input,_offst))
            let chunk_count := add(div(size,32),1) // chunk_count = size/32 + 1

            if gt(mod(size,32),0) {// if size%32 > 0
                chunk_count := add(chunk_count,1)
            }

             size := mul(chunk_count,32)// first 32 bytes reseves for size in strings
        }
    }

    function bytesToString(uint _offst, bytes memory _input, bytes memory _output) internal  {

        uint size = 32;
        assembly {
            let loop_index:= 0

            let chunk_count

            size := mload(add(_input,_offst))
            chunk_count := add(div(size,32),1) // chunk_count = size/32 + 1

            if gt(mod(size,32),0) {
                chunk_count := add(chunk_count,1)  // chunk_count++
            }


            loop:
                mstore(add(_output,mul(loop_index,32)),mload(add(_input,_offst)))
                _offst := sub(_offst,32)           // _offst -= 32
                loop_index := add(loop_index,1)

            jumpi(loop , lt(loop_index , chunk_count))

        }
    }

    function slice(bytes _bytes, uint _start, uint _length) internal  pure returns (bytes) {
        require(_bytes.length >= (_start + _length));

        bytes memory tempBytes;

        assembly {
            switch iszero(_length)
            case 0 {
                // Get a location of some free memory and store it in tempBytes as
                // Solidity does for memory variables.
                tempBytes := mload(0x40)

                // The first word of the slice result is potentially a partial
                // word read from the original array. To read it, we calculate
                // the length of that partial word and start copying that many
                // bytes into the array. The first word we copy will start with
                // data we don't care about, but the last `lengthmod` bytes will
                // land at the beginning of the contents of the new array. When
                // we're done copying, we overwrite the full first word with
                // the actual length of the slice.
                let lengthmod := and(_length, 31)

                // The multiplication in the next line is necessary
                // because when slicing multiples of 32 bytes (lengthmod == 0)
                // the following copy loop was copying the origin's length
                // and then ending prematurely not copying everything it should.
                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))
                let end := add(mc, _length)

                for {
                    // The multiplication in the next line has the same exact purpose
                    // as the one above.
                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)
                } lt(mc, end) {
                    mc := add(mc, 0x20)
                    cc := add(cc, 0x20)
                } {
                    mstore(mc, mload(cc))
                }

                mstore(tempBytes, _length)

                //update free-memory pointer
                //allocating the array padded to 32 bytes like the compiler does now
                mstore(0x40, and(add(mc, 31), not(31)))
            }
            //if we want a zero-length slice let's just return a zero-length array
            default {
                tempBytes := mload(0x40)

                mstore(0x40, add(tempBytes, 0x20))
            }
        }

        return tempBytes;
    }


    function bytesToBytes32(uint _offst, bytes memory  _input) internal pure returns (bytes32 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt8(uint _offst, bytes memory  _input) internal pure returns (int8 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt16(uint _offst, bytes memory _input) internal pure returns (int16 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt24(uint _offst, bytes memory _input) internal pure returns (int24 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt32(uint _offst, bytes memory _input) internal pure returns (int32 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt40(uint _offst, bytes memory _input) internal pure returns (int40 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt48(uint _offst, bytes memory _input) internal pure returns (int48 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt56(uint _offst, bytes memory _input) internal pure returns (int56 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt64(uint _offst, bytes memory _input) internal pure returns (int64 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt72(uint _offst, bytes memory _input) internal pure returns (int72 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt80(uint _offst, bytes memory _input) internal pure returns (int80 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt88(uint _offst, bytes memory _input) internal pure returns (int88 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt96(uint _offst, bytes memory _input) internal pure returns (int96 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToInt104(uint _offst, bytes memory _input) internal pure returns (int104 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt112(uint _offst, bytes memory _input) internal pure returns (int112 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt120(uint _offst, bytes memory _input) internal pure returns (int120 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt128(uint _offst, bytes memory _input) internal pure returns (int128 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt136(uint _offst, bytes memory _input) internal pure returns (int136 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt144(uint _offst, bytes memory _input) internal pure returns (int144 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt152(uint _offst, bytes memory _input) internal pure returns (int152 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt160(uint _offst, bytes memory _input) internal pure returns (int160 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt168(uint _offst, bytes memory _input) internal pure returns (int168 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt176(uint _offst, bytes memory _input) internal pure returns (int176 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt184(uint _offst, bytes memory _input) internal pure returns (int184 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt192(uint _offst, bytes memory _input) internal pure returns (int192 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt200(uint _offst, bytes memory _input) internal pure returns (int200 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt208(uint _offst, bytes memory _input) internal pure returns (int208 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt216(uint _offst, bytes memory _input) internal pure returns (int216 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt224(uint _offst, bytes memory _input) internal pure returns (int224 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt232(uint _offst, bytes memory _input) internal pure returns (int232 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt240(uint _offst, bytes memory _input) internal pure returns (int240 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt248(uint _offst, bytes memory _input) internal pure returns (int248 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt256(uint _offst, bytes memory _input) internal pure returns (int256 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint8(uint _offst, bytes memory _input) internal pure returns (uint8 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint16(uint _offst, bytes memory _input) internal pure returns (uint16 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint24(uint _offst, bytes memory _input) internal pure returns (uint24 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint32(uint _offst, bytes memory _input) internal pure returns (uint32 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint40(uint _offst, bytes memory _input) internal pure returns (uint40 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint48(uint _offst, bytes memory _input) internal pure returns (uint48 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint56(uint _offst, bytes memory _input) internal pure returns (uint56 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint64(uint _offst, bytes memory _input) internal pure returns (uint64 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint72(uint _offst, bytes memory _input) internal pure returns (uint72 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint80(uint _offst, bytes memory _input) internal pure returns (uint80 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint88(uint _offst, bytes memory _input) internal pure returns (uint88 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint96(uint _offst, bytes memory _input) internal pure returns (uint96 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

	function bytesToUint104(uint _offst, bytes memory _input) internal pure returns (uint104 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint112(uint _offst, bytes memory _input) internal pure returns (uint112 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint120(uint _offst, bytes memory _input) internal pure returns (uint120 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint128(uint _offst, bytes memory _input) internal pure returns (uint128 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint136(uint _offst, bytes memory _input) internal pure returns (uint136 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint144(uint _offst, bytes memory _input) internal pure returns (uint144 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint152(uint _offst, bytes memory _input) internal pure returns (uint152 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint160(uint _offst, bytes memory _input) internal pure returns (uint160 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint168(uint _offst, bytes memory _input) internal pure returns (uint168 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint176(uint _offst, bytes memory _input) internal pure returns (uint176 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint184(uint _offst, bytes memory _input) internal pure returns (uint184 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint192(uint _offst, bytes memory _input) internal pure returns (uint192 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint200(uint _offst, bytes memory _input) internal pure returns (uint200 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint208(uint _offst, bytes memory _input) internal pure returns (uint208 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint216(uint _offst, bytes memory _input) internal pure returns (uint216 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint224(uint _offst, bytes memory _input) internal pure returns (uint224 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint232(uint _offst, bytes memory _input) internal pure returns (uint232 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint240(uint _offst, bytes memory _input) internal pure returns (uint240 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint248(uint _offst, bytes memory _input) internal pure returns (uint248 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint256(uint _offst, bytes memory _input) internal pure returns (uint256 _output) {

        assembly {
            _output := mload(add(_input, _offst))
        }
    }

}

interface ITradeable {

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) external view returns (uint balance);

    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint _value) external returns (bool success);

    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address _from, address _to, uint _value) external returns (bool success);

    /// @notice `msg.sender` approves `_addr` to spend `_value` tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of wei to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address _spender, uint _value) external returns (bool success);

    /// @param _owner The address of the account owning tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address _owner, address _spender) external view returns (uint remaining);
}


contract ITrader {

  function getDataLength(
  ) public pure returns (uint256);

  function getProtocol(
  ) public pure returns (uint8);

  function getAvailableVolume(
    bytes orderData
  ) public view returns(uint);

  function isExpired(
    bytes orderData
  ) public view returns (bool);

  function trade(
    bool isSell,
    bytes orderData,
    uint volume,
    uint volumeEth
  ) public;

  function getFillVolumes(
    bool isSell,
    bytes orderData,
    uint volume,
    uint volumeEth
  ) public view returns(uint, uint);

}

contract ITraders {

  /// @dev Add a valid trader address. Only owner.
  function addTrader(uint8 id, ITrader trader) public;

  /// @dev Remove a trader address. Only owner.
  function removeTrader(uint8 id) public;

  /// @dev Get trader by id.
  function getTrader(uint8 id) public view returns(ITrader);

  /// @dev Check if an address is a valid trader.
  function isValidTraderAddress(address addr) public view returns(bool);

}

contract Members is Ownable {

  mapping(address => bool) public members; // Mappings of addresses of allowed addresses

  modifier onlyMembers() {
    require(isValidMember(msg.sender));
    _;
  }

  /// @dev Check if an address is a valid member.
  function isValidMember(address _member) public view returns(bool) {
    return members[_member];
  }

  /// @dev Add a valid member address. Only owner.
  function addMember(address _member) public onlyOwner {
    members[_member] = true;
  }

  /// @dev Remove a member address. Only owner.
  function removeMember(address _member) public onlyOwner {
    delete members[_member];
  }
}

contract ZodiacERC20 is Ownable, BytesToTypes {
  ITraders public traders; // Smart contract that hold the list of valid traders
  bool public tradingEnabled; // Switch to enable or disable the contract
  uint feePercentage;
  event Sell(
    address account,
    address destinationAddr,
    address traedeable,
    uint volume,
    uint volumeEth,
    uint volumeEffective,
    uint volumeEthEffective
  );
  event Buy(
    address account,
    address destinationAddr,
    address traedeable,
    uint volume,
    uint volumeEth,
    uint volumeEffective,
    uint volumeEthEffective
  );


  function ZodiacERC20(ITraders _traders, uint _feePercentage) public {
    traders = _traders;
    tradingEnabled = true;
    feePercentage = _feePercentage;
  }

  /// @dev Only accepts payment from smart contract traders.
  function() public payable {
  //  require(traders.isValidTraderAddress(msg.sender));
  }

  function changeFeePercentage(uint _feePercentage) public onlyOwner {
    feePercentage = _feePercentage;
  }

  /// @dev Setter for traders smart contract (Only owner)
  function changeTraders(ITraders _traders) public onlyOwner {
    traders = _traders;
  }

  /// @dev Enable/Disable trading with smart contract (Only owner)
  function changeTradingEnabled(bool enabled) public onlyOwner {
    tradingEnabled = enabled;
  }

  /// @dev Buy a token.
  function buy(
    ITradeable tradeable,
    uint volume,
    bytes ordersData,
    address destinationAddr,
    address affiliate
  ) external payable
  {

    require(tradingEnabled);

    // Execute the trade (at most fullfilling volume)
    trade(
      false,
      tradeable,
      volume,
      ordersData,
      affiliate
    );

    // Since our balance before trade was 0. What we bought is our current balance.
    uint volumeEffective = tradeable.balanceOf(this);

    // We make sure that something was traded
    require(volumeEffective > 0);

    // Used ethers are: balance_before - balance_after.
    // And since before call balance=0; then balance_before = msg.value
    uint volumeEthEffective = SafeMath.safeSub(msg.value, address(this).balance);

    // IMPORTANT: Check that: effective_price <= agreed_price (guarantee a good deal for the buyer)
    require(
      SafeMath.safeDiv(volumeEthEffective, volumeEffective) <=
      SafeMath.safeDiv(msg.value, volume)
    );

    // Return remaining ethers
    if(address(this).balance > 0) {
      destinationAddr.transfer(address(this).balance);
    }

    // Send the tokens
    transferTradeable(tradeable, destinationAddr, volumeEffective);

    emit Buy(msg.sender, destinationAddr, tradeable, volume, msg.value, volumeEffective, volumeEthEffective);
  }

  /// @dev sell a token.
  function sell(
    ITradeable tradeable,
    uint volume,
    uint volumeEth,
    bytes ordersData,
    address destinationAddr,
    address affiliate
  ) external
  {
    require(tradingEnabled);

    // We transfer to ouselves the user's trading volume, to operate on it
    // note: Our balance is 0 before this
    require(tradeable.transferFrom(msg.sender, this, volume));

    // Execute the trade (at most fullfilling volume)
    trade(
      true,
      tradeable,
      volume,
      ordersData,
      affiliate
    );

    // Check how much we traded. Our balance = volume - tradedVolume
    // then: tradedVolume = volume - balance
    uint volumeEffective = SafeMath.safeSub(volume, tradeable.balanceOf(this));

    // We make sure that something was traded
    require(volumeEffective > 0);

    // Collects service fee
    uint volumeEthEffective = collectSellFee();

    // IMPORTANT: Check that: effective_price >= agreed_price (guarantee a good deal for the seller)
    require(
      SafeMath.safeDiv(volumeEthEffective, volumeEffective) >=
      SafeMath.safeDiv(volumeEth, volume)
    );

    // Return remaining volume
    if (volumeEffective < volume) {
     transferTradeable(tradeable, destinationAddr, SafeMath.safeSub(volume, volumeEffective));
    }

    // Send ethers obtained
    destinationAddr.transfer(volumeEthEffective);

    emit Sell(msg.sender, destinationAddr, tradeable, volume, volumeEth, volumeEffective, volumeEthEffective);
  }


  /// @dev Trade buy or sell orders.
  function trade(
    bool isSell,
    ITradeable tradeable,
    uint volume,
    bytes ordersData,
    address affiliate
  ) internal
  {
    uint remainingVolume = volume;
    uint offset = ordersData.length;

    while(offset > 0 && remainingVolume > 0) {
      //Get the trader
      uint8 protocolId = bytesToUint8(offset, ordersData);
      ITrader trader = traders.getTrader(protocolId);
      require(trader != address(0));

      //Get the order data
      uint dataLength = trader.getDataLength();
      offset = SafeMath.safeSub(offset, dataLength);
      bytes memory orderData = slice(ordersData, offset, dataLength);

      //Fill order
      remainingVolume = fillOrder(
         isSell,
         tradeable,
         trader,
         remainingVolume,
         orderData,
         affiliate
      );
    }
  }

  /// @dev Fills a buy order.
  function fillOrder(
    bool isSell,
    ITradeable tradeable,
    ITrader trader,
    uint remaining,
    bytes memory orderData,
    address affiliate
    ) internal returns(uint)
  {

    //Checks that there is enoughh amount to execute the trade
    uint volume;
    uint volumeEth;
    (volume, volumeEth) = trader.getFillVolumes(
      isSell,
      orderData,
      remaining,
      address(this).balance
    );

    if(volume > 0) {

      if(isSell) {
        //Approve available amount of token to trader
        require(tradeable.approve(trader, volume));
      } else {
        //Collects service fee
        //TODO: transfer fees after all iteration
        //volumeEth = collectBuyFee(volumeEth, affiliate);
        volumeEth = collectFee(volumeEth);
        address(trader).transfer(volumeEth);
      }

      //Call trader to trade orders
      trader.trade(
        isSell,
        orderData,
        volume,
        volumeEth
      );

    }

    return SafeMath.safeSub(remaining, volume);
  }

  /// @dev Transfer tradeables to user account.
  function transferTradeable(ITradeable tradeable, address account, uint amount) internal {
    require(tradeable.transfer(account, amount));
  }

  // @dev Collect service/affiliate fee for a buy
  function collectFee(uint ethers) internal returns(uint) {
    uint fee = SafeMath.safeMul(ethers, feePercentage) / (1 ether);
    owner.transfer(fee);
    uint remaining = SafeMath.safeSub(ethers, fee);
    return remaining;
  }

  // @dev Collect service/affiliate fee for a sell
  function collectSellFee() internal returns(uint) {
    uint fee = SafeMath.safeMul(address(this).balance, feePercentage) / (1 ether);
    owner.transfer(fee);
    return address(this).balance;
  }

}

Contract ABI
[{"constant":false,"inputs":[{"name":"enabled","type":"bool"}],"name":"changeTradingEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tradeable","type":"address"},{"name":"volume","type":"uint256"},{"name":"ordersData","type":"bytes"},{"name":"destinationAddr","type":"address"},{"name":"affiliate","type":"address"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"tradingEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tradeable","type":"address"},{"name":"volume","type":"uint256"},{"name":"volumeEth","type":"uint256"},{"name":"ordersData","type":"bytes"},{"name":"destinationAddr","type":"address"},{"name":"affiliate","type":"address"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"traders","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_traders","type":"address"}],"name":"changeTraders","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_feePercentage","type":"uint256"}],"name":"changeFeePercentage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_traders","type":"address"},{"name":"_feePercentage","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"destinationAddr","type":"address"},{"indexed":false,"name":"traedeable","type":"address"},{"indexed":false,"name":"volume","type":"uint256"},{"indexed":false,"name":"volumeEth","type":"uint256"},{"indexed":false,"name":"volumeEffective","type":"uint256"},{"indexed":false,"name":"volumeEthEffective","type":"uint256"}],"name":"Sell","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"destinationAddr","type":"address"},{"indexed":false,"name":"traedeable","type":"address"},{"indexed":false,"name":"volume","type":"uint256"},{"indexed":false,"name":"volumeEth","type":"uint256"},{"indexed":false,"name":"volumeEffective","type":"uint256"},{"indexed":false,"name":"volumeEthEffective","type":"uint256"}],"name":"Buy","type":"event"}]

Contract Creation Code
608060405234801561001057600080fd5b50604051604080610f448339810160405280516020909101516000805433600160a060020a031991821617825560018054740100000000000000000000000000000000000000009216600160a060020a039095169490941760a060020a60ff02191617909255600255610ebb90819061008990396000f30060806040526004361061007f5763ffffffff60e060020a60003504166316925ee28114610081578063321a9ab91461009b5780634ada218b146100cc5780638da5cb5b146100f5578063ce68736114610126578063ddbdf24214610168578063eeca2d171461017d578063f2fde38b1461019e578063fae14192146101bf575b005b34801561008d57600080fd5b5061007f60043515156101d7565b61007f600160a060020a0360048035821691602480359260443591820192910135906064358116906084351661022e565b3480156100d857600080fd5b506100e161041e565b604080519115158252519081900360200190f35b34801561010157600080fd5b5061010a61043f565b60408051600160a060020a039092168252519081900360200190f35b34801561013257600080fd5b5061007f60048035600160a060020a03908116916024803592604435926064359283019201359060843581169060a4351661044e565b34801561017457600080fd5b5061010a6106f3565b34801561018957600080fd5b5061007f600160a060020a0360043516610702565b3480156101aa57600080fd5b5061007f600160a060020a0360043516610748565b3480156101cb57600080fd5b5061007f60043561079a565b600054600160a060020a031633146101ee57600080fd5b60018054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600154600090819074010000000000000000000000000000000000000000900460ff16151561025c57600080fd5b61029b6000898989898080601f016020809104026020016040519081016040528093929190818152602001838380828437508c94506107b69350505050565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038a16916370a082319160248083019260209291908290030181600087803b1580156102fc57600080fd5b505af1158015610310573d6000803e3d6000fd5b505050506040513d602081101561032657600080fd5b505191506000821161033757600080fd5b610342343031610936565b905061034e3488610948565b6103588284610948565b111561036357600080fd5b6000303111156103a557604051600160a060020a03851690303180156108fc02916000818181858888f193505050501580156103a3573d6000803e3d6000fd5b505b6103b088858461095f565b60408051338152600160a060020a0380871660208301528a16818301526060810189905234608082015260a0810184905260c0810183905290517f4c5de51a00fa52b3d883d5627b5d614583a2f5eec10c63c6efe8a6f1f68b11e39181900360e00190a15050505050505050565b60015474010000000000000000000000000000000000000000900460ff1681565b600054600160a060020a031681565b600154600090819074010000000000000000000000000000000000000000900460ff16151561047c57600080fd5b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018a90529051600160a060020a038b16916323b872dd9160648083019260209291908290030181600087803b1580156104ea57600080fd5b505af11580156104fe573d6000803e3d6000fd5b505050506040513d602081101561051457600080fd5b5051151561052157600080fd5b61056060018a8a89898080601f016020809104026020016040519081016040528093929190818152602001838380828437508c94506107b69350505050565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516105f8918a91600160a060020a038d16916370a082319160248083019260209291908290030181600087803b1580156105c757600080fd5b505af11580156105db573d6000803e3d6000fd5b505050506040513d60208110156105f157600080fd5b5051610936565b91506000821161060757600080fd5b61060f6109fe565b905061061b8789610948565b6106258284610948565b101561063057600080fd5b8782101561064c5761064c89856106478b86610936565b61095f565b604051600160a060020a0385169082156108fc029083906000818181858888f19350505050158015610682573d6000803e3d6000fd5b5060408051338152600160a060020a0380871660208301528b1681830152606081018a90526080810189905260a0810184905260c0810183905290517f2182e4add8250752f872eda9b48eab6b84aa81f99ee69c557acfbf103828083c9181900360e00190a1505050505050505050565b600154600160a060020a031681565b600054600160a060020a0316331461071957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461075f57600080fd5b600160a060020a03811615610797576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600054600160a060020a031633146107b157600080fd5b600255565b815183906000808060605b6000851180156107d15750600086115b15610929576107e08589610a72565b600154604080517fcb56e40b00000000000000000000000000000000000000000000000000000000815260ff841660048201529051929650600160a060020a039091169163cb56e40b916024808201926020929091908290030181600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b505050506040513d602081101561087657600080fd5b50519250600160a060020a038316151561088f57600080fd5b82600160a060020a0316633da767886040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156108cd57600080fd5b505af11580156108e1573d6000803e3d6000fd5b505050506040513d60208110156108f757600080fd5b505191506109058583610936565b9450610912888684610a77565b90506109228b8b8589858c610af8565b95506107c1565b5050505050505050505050565b60008282111561094257fe5b50900390565b600080828481151561095657fe5b04949350505050565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156109c257600080fd5b505af11580156109d6573d6000803e3d6000fd5b505050506040513d60208110156109ec57600080fd5b505115156109f957600080fd5b505050565b600080670de0b6b3a7640000610a2030600160a060020a031631600254610dee565b811515610a2957fe5b60008054604051939092049350600160a060020a039091169183156108fc0291849190818181858888f19350505050158015610a69573d6000803e3d6000fd5b50303191505090565b015190565b606080828401855110151515610a8c57600080fd5b82158015610aa557604051915060208201604052610aef565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610ade578051835260209283019201610ac6565b5050858452601f01601f1916604052505b50949350505050565b600080600086600160a060020a031663c228bcc68a878930600160a060020a0316316040518563ffffffff1660e060020a028152600401808515151515815260200180602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015610b7f578181015183820152602001610b67565b50505050905090810190601f168015610bac5780820380516001836020036101000a031916815260200191505b50955050505050506040805180830381600087803b158015610bcd57600080fd5b505af1158015610be1573d6000803e3d6000fd5b505050506040513d6040811015610bf757600080fd5b50805160209091015190925090506000821115610dd7578815610cb35787600160a060020a031663095ea7b388846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c7757600080fd5b505af1158015610c8b573d6000803e3d6000fd5b505050506040513d6020811015610ca157600080fd5b50511515610cae57600080fd5b610cf7565b610cbc81610e19565b604051909150600160a060020a0388169082156108fc029083906000818181858888f19350505050158015610cf5573d6000803e3d6000fd5b505b86600160a060020a031663e244054a8a8785856040518563ffffffff1660e060020a028152600401808515151515815260200180602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015610d6f578181015183820152602001610d57565b50505050905090810190601f168015610d9c5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610dbe57600080fd5b505af1158015610dd2573d6000803e3d6000fd5b505050505b610de18683610936565b9998505050505050505050565b6000828202831580610e0a5750828482811515610e0757fe5b04145b1515610e1257fe5b9392505050565b6000806000670de0b6b3a7640000610e3385600254610dee565b811515610e3c57fe5b60008054604051939092049450600160a060020a039091169184156108fc0291859190818181858888f19350505050158015610e7c573d6000803e3d6000fd5b50610e878483610936565b9493505050505600a165627a7a723058206f37f45b3b208d5258344f2a7e6f96deb089597dee0bfaab5eef3392489e0b0a002900000000000000000000000046390621186d4e7b20e71f4f7786275ebeb824d40000000000000000000000000000000000000000000000000011c37937e08000


    Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000046390621186d4e7b20e71f4f7786275ebeb824d40000000000000000000000000000000000000000000000000011c37937e08000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000046390621186d4e7b20e71f4f7786275ebeb824d4
Arg [1] : 0000000000000000000000000000000000000000000000000011c37937e08000


   Swarm Source:
bzzr://6f37f45b3b208d5258344f2a7e6f96deb089597dee0bfaab5eef3392489e0b0a
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.