Contract 0x5adf43dd006c6c36506e2b2dfa352e60002d22dc

 

Contract Overview

Balance:
0 Ether

EtherValue:
$0

Token:
TxHash Block Age From To Value [TxFee]
0xdc32388512a95d75f86da0e18e0549f8db3af2c164500484898bf065fe1795c8717558018 days 26 mins ago0x94b834a8055e2647b16c7da2febf42351acd9603 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.102210999999 Ether0.000521296
0x72c5a803ac60f925eaa68b5362e25d274df1d94f1937e6b6de53a27147fee8c2717543018 days 1 hr ago0xff00e4935691dbc7b552d9a41928355fc3fd5b50 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.1035 Ether0.00089119
0x62e0f89287baf7754aff08cdf2175235902b67fbc0f428b17770e77c1d890878717473818 days 4 hrs ago0x13f09d8ee95052e3437e06ac000fbe886e572d2b IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.1 Ether0.000712952
0x25d2f516fb49959c7a9e73bdfb6f6e420359d82c41eeb94a72ce82651c07d3fa717471418 days 4 hrs ago0xbabda7a0d3974c5a440b1e8385d3a9c939a05dcf IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.1 Ether0.000712952
0x4c828a335717a72cf46c6972acf003ed7418b5129ce335c0509d73bc5ffb1e34716174120 days 20 hrs ago0xa5972af9afa73bbb18439fe0c54b7152598acc52 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.006653115 Ether0.002215508
0x8863985560e9748590b5f2ca98b2b4f7275d9668f56945a41385f7e2ec00844b704256943 days 10 hrs ago0x5e51be1e12d9279209a8b21d31c3ecc198b600e4 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.06859944 Ether0.00089119
0x75d57ede5463882edaa7afa2a265f896dac554d33e6c05c4dfcd3716a3002d446629379112 days 12 hrs ago0xfe915972b51cf41f737005d801f9f6e45a3037d1 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.05 Ether0.0001743
0x90c16d903e9fdb8c570260409152dd76cb63fd7e91fe5541e9482cd7bf8df2746629366112 days 12 hrs ago0xfe915972b51cf41f737005d801f9f6e45a3037d1 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.05 Ether0.000157475174
0x6bbc17cc470b19a6651e8c4db672f0ca1c1c0f3e9e90519837df1f0d9ffd6d446497655134 days 1 hr ago0x1d8a08c8c3ce0a852cb4da902754991759f7f625 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.2 Ether0.000130324
0x092ff46dc311b2996c121f3624b3eefad3be6b49d520e3d980316a6ee10e198d6437666143 days 18 hrs ago0xb3377144427f861b4130002018e3f6beb7b59fcf IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.5 Ether0.001824536
0x03b6c7602f5305e9d807221e5a5e58b952a4b95ef696b17d6c28ed8c07f4d4116381373153 days 24 mins ago0x65b26464d47e039ed5d9cef1e4463b872e5e1d58 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.042 Ether0.0004040044
0xb7f942c67182d3698938cb8abc018a451d22667f8f955f73c4d79626ecbf48486319014163 days 7 hrs ago0x27d9c9ad60e2aa53476554b38baa8bf5147e7a5e IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.02778824 Ether0.000623833
0xfb24b8184ec8ab8b6ced1f6766f85c4b9963d369a3f0da3816ad17053a375e2c6289154168 days 7 hrs ago0xf811e0829e05e277e807c1ee4fe77ce3fb7da33f IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.0004 Ether0.0015855
0xdba74ec4abc49ee87dd0da506dda9ceab059cef9589405030638f5df3550f9396288909168 days 8 hrs ago0xf811e0829e05e277e807c1ee4fe77ce3fb7da33f IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.008667099869786 Ether0.00033290013
0x7a07228c68c7974a73793c0d70a645a9dedbcd66fd02c489dceef4a8813aabec6288842168 days 8 hrs ago0xf811e0829e05e277e807c1ee4fe77ce3fb7da33f IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.008730163336574 Ether0.000269836663
0x9f2fc942965d96b627c00b9c3c136393309fc0971f4d945f77db2af401de5b096239584176 days 15 hrs ago0x69ccdd7adb6928fa24d18fd4481f00923859974f IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.00192643 Ether0.000445595
0x1544e3f92caebf4b1ac55acbfc7ec68888047590c1d8265114f76663e76ffb4d6112346198 days 3 hrs ago0xbe6e0ea981d117ed4c6536efa831e00ecb366afc IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.01874001 Ether0.005079783
0x3a06422915f45fefe0a3027dfa839559c7686dd011c9f0989497d6dc757e5e5d6059462207 days 2 hrs ago0x2cd9078b0f05a9cc2aa7c36515618e0a9059f044 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.001 Ether0.000114637
0x2dbd581456057a09e710e864c5de82473b83a51d632fdc4bcc7120dabf1a60ce6059458207 days 2 hrs ago0x2cd9078b0f05a9cc2aa7c36515618e0a9059f044 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.001 Ether0.000115188
0x0427337bd51d3011703a0b2dffaddff024b7a259a5c7b263fd5288d16b51bb506059410207 days 2 hrs ago0x2cd9078b0f05a9cc2aa7c36515618e0a9059f044 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.001 Ether0.000231056
0x6fb0770ec27164e69827d1dbc56f16e052871a1110d3b12d9a3421e4b07aeef76059398207 days 2 hrs ago0x2cd9078b0f05a9cc2aa7c36515618e0a9059f044 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.001 Ether0.000262158
0x208a692a94750b03f2aba17026fc7d6ade27e4190ed492db23dd9b587581216a6034255211 days 7 hrs ago0xa242c5794d1d5c5e639b76ee2a19fc6a59159717 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.1 Ether0.000228866
0x1bf50b1917f8389b0972bbaaa865755bc4d6371dcd1ae07ac51dc963bf5809ef5996948217 days 15 hrs agoBinance_2 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.05 Ether0.00781944
0xfbbec8e58da69707014fb1cb966fda828ffff5c528327538e3dbb09eef69f1f55930278228 days 22 hrs ago0x144cd0a8c4c06696b92f6d93a0e06ba1ae127cef IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.00989956 Ether0.00178238
0x8d8ccbaf06aeaf00dac1ff1caa97be3ec31a05f831605afcfa08ed76a820c2ea5899657234 days 5 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780 IN  0x5adf43dd006c6c36506e2b2dfa352e60002d22dc17 Ether0.00303141348
[ 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
0xdc32388512a95d75f86da0e18e0549f8db3af2c164500484898bf065fe1795c8717558018 days 26 mins ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.102210999999 Ether
0x72c5a803ac60f925eaa68b5362e25d274df1d94f1937e6b6de53a27147fee8c2717543018 days 1 hr ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.1035 Ether
0x62e0f89287baf7754aff08cdf2175235902b67fbc0f428b17770e77c1d890878717473818 days 4 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.1 Ether
0x25d2f516fb49959c7a9e73bdfb6f6e420359d82c41eeb94a72ce82651c07d3fa717471418 days 4 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.1 Ether
0x4c828a335717a72cf46c6972acf003ed7418b5129ce335c0509d73bc5ffb1e34716174120 days 20 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.006653115 Ether
0x8863985560e9748590b5f2ca98b2b4f7275d9668f56945a41385f7e2ec00844b704256943 days 10 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.06859944 Ether
0x5fd6b04dc7c2075813b18149a7471260da057c1398f41f089c2b3bb4baa5d3686547444125 days 22 hrs ago0xb8dca1712e16f26423700646ec5c2656d9c087d20x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.002496 Ether
0x32dfbfffd15261663c9ddad706ecf964f5d537e330aa376137046e32e1fd5e3a6547441125 days 22 hrs ago0xb8dca1712e16f26423700646ec5c2656d9c087d20x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.000836 Ether
0x31f9c441fdf3aa03cb50fed53b15bd7babb5f63b3599c1088c5844b7f4ef61db6547433125 days 22 hrs ago0xb8dca1712e16f26423700646ec5c2656d9c087d20x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.002988 Ether
0x64288b9d5acd0b167916b6c7f881463bc712f66e020a15691161d46e723190a26547423125 days 22 hrs ago0xb8dca1712e16f26423700646ec5c2656d9c087d20x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.003264 Ether
0x6bbc17cc470b19a6651e8c4db672f0ca1c1c0f3e9e90519837df1f0d9ffd6d446497655134 days 1 hr ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.2 Ether
0x092ff46dc311b2996c121f3624b3eefad3be6b49d520e3d980316a6ee10e198d6437666143 days 18 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.5 Ether
0xa0d0d7c4473c2ac3b83f8688a8be85e5f95c0280e6a2f73870398d3f5e6cfb466405160149 days 2 hrs ago0x180e35f768eb870962d2dc04cca1a927d206a0890x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.0003 Ether
0x9a7b540f526ec6a65abc1423e970ee3ffe1c26e018356367b5f0390795cbd50c6405129149 days 2 hrs ago0x180e35f768eb870962d2dc04cca1a927d206a0890x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.0001 Ether
0x47316a00dc8748cd9a9d5a3cba1a30022c8f653a1341394fe8539a08fdd223656405119149 days 2 hrs ago0x180e35f768eb870962d2dc04cca1a927d206a0890x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.0137 Ether
0x03b6c7602f5305e9d807221e5a5e58b952a4b95ef696b17d6c28ed8c07f4d4116381373153 days 24 mins ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.042 Ether
0xb7f942c67182d3698938cb8abc018a451d22667f8f955f73c4d79626ecbf48486319014163 days 7 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.02778824 Ether
0xfb24b8184ec8ab8b6ced1f6766f85c4b9963d369a3f0da3816ad17053a375e2c6289154168 days 7 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.0004 Ether
0x39b013cf84aeadb2aadd3a5d00d364b8a37616e342d3d8e61c5d882dd35217ee6246391175 days 12 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.000660488050155929 Ether
0x39b013cf84aeadb2aadd3a5d00d364b8a37616e342d3d8e61c5d882dd35217ee6246391175 days 12 hrs ago0x4798480a81fe05d4194b1922dd4e20fe1742f51b0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.000660488050155929 Ether
0x9f2fc942965d96b627c00b9c3c136393309fc0971f4d945f77db2af401de5b096239584176 days 15 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.00192643 Ether
0x17ffa9c1caa7083eb61866ae6bdc3be1e2a3084f8be601c9db0ada5c7757779a6223489179 days 8 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.004406057595475 Ether
0x17ffa9c1caa7083eb61866ae6bdc3be1e2a3084f8be601c9db0ada5c7757779a6223489179 days 8 hrs ago0x4798480a81fe05d4194b1922dd4e20fe1742f51b0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.004406057595475 Ether
0x8dffe6e1e014a152942172e23a093647ddbf8628c503581885ddd25b4f4cadc86206262182 days 6 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.005254101234907036 Ether
0x8dffe6e1e014a152942172e23a093647ddbf8628c503581885ddd25b4f4cadc86206262182 days 6 hrs ago0x4798480a81fe05d4194b1922dd4e20fe1742f51b0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.005254101234907036 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Verified Source Code for Contract 0x780623f5ec165b48394189fe1263466d5c16fdff
Contract Name: FundForwarder
Compiler Version: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.15;
/*
    Copyright 2017, Arthur Lunn

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

/// @title Owned
/// @author Adrià Massanet <[email protected]>
/// @notice The Owned contract has an owner address, and provides basic 
///  authorization control functions, this simplifies & the implementation of
///  user permissions; this contract has three work flows for a change in
///  ownership, the first requires the new owner to validate that they have the
///  ability to accept ownership, the second allows the ownership to be
///  directly transfered without requiring acceptance, and the third allows for
///  the ownership to be removed to allow for decentralization 
contract Owned {

    address public owner;
    address public newOwnerCandidate;

    event OwnershipRequested(address indexed by, address indexed to);
    event OwnershipTransferred(address indexed from, address indexed to);
    event OwnershipRemoved();

    /// @dev The constructor sets the `msg.sender` as the`owner` of the contract
    function Owned() {
        owner = msg.sender;
    }

    /// @dev `owner` is the only address that can call a function with this
    /// modifier
    modifier onlyOwner() {
        require (msg.sender == owner);
        _;
    }
    
    /// @dev In this 1st option for ownership transfer `proposeOwnership()` must
    ///  be called first by the current `owner` then `acceptOwnership()` must be
    ///  called by the `newOwnerCandidate`
    /// @notice `onlyOwner` Proposes to transfer control of the contract to a
    ///  new owner
    /// @param _newOwnerCandidate The address being proposed as the new owner
    function proposeOwnership(address _newOwnerCandidate) onlyOwner {
        newOwnerCandidate = _newOwnerCandidate;
        OwnershipRequested(msg.sender, newOwnerCandidate);
    }

    /// @notice Can only be called by the `newOwnerCandidate`, accepts the
    ///  transfer of ownership
    function acceptOwnership() {
        require(msg.sender == newOwnerCandidate);

        address oldOwner = owner;
        owner = newOwnerCandidate;
        newOwnerCandidate = 0x0;

        OwnershipTransferred(oldOwner, owner);
    }

    /// @dev In this 2nd option for ownership transfer `changeOwnership()` can
    ///  be called and it will immediately assign ownership to the `newOwner`
    /// @notice `owner` can step down and assign some other address to this role
    /// @param _newOwner The address of the new owner
    function changeOwnership(address _newOwner) onlyOwner {
        require(_newOwner != 0x0);

        address oldOwner = owner;
        owner = _newOwner;
        newOwnerCandidate = 0x0;

        OwnershipTransferred(oldOwner, owner);
    }

    /// @dev In this 3rd option for ownership transfer `removeOwnership()` can
    ///  be called and it will immediately assign ownership to the 0x0 address;
    ///  it requires a 0xdece be input as a parameter to prevent accidental use
    /// @notice Decentralizes the contract, this operation cannot be undone 
    /// @param _dac `0xdac` has to be entered for this function to work
    function removeOwnership(uint _dac) onlyOwner {
        require(_dac == 0xdac);
        owner = 0x0;
        newOwnerCandidate = 0x0;
        OwnershipRemoved();     
    }
} 


/// @dev `Escapable` is a base level contract built off of the `Owned`
///  contract; it creates an escape hatch function that can be called in an
///  emergency that will allow designated addresses to send any ether or tokens
///  held in the contract to an `escapeHatchDestination` as long as they were
///  not blacklisted
contract Escapable is Owned {
    address public escapeHatchCaller;
    address public escapeHatchDestination;
    mapping (address=>bool) private escapeBlacklist; // Token contract addresses

    /// @notice The Constructor assigns the `escapeHatchDestination` and the
    ///  `escapeHatchCaller`
    /// @param _escapeHatchCaller The address of a trusted account or contract
    ///  to call `escapeHatch()` to send the ether in this contract to the
    ///  `escapeHatchDestination` it would be ideal that `escapeHatchCaller`
    ///  cannot move funds out of `escapeHatchDestination`
    /// @param _escapeHatchDestination The address of a safe location (usu a
    ///  Multisig) to send the ether held in this contract; if a neutral address
    ///  is required, the WHG Multisig is an option:
    ///  0x8Ff920020c8AD673661c8117f2855C384758C572 
    function Escapable(address _escapeHatchCaller, address _escapeHatchDestination) {
        escapeHatchCaller = _escapeHatchCaller;
        escapeHatchDestination = _escapeHatchDestination;
    }

    /// @dev The addresses preassigned as `escapeHatchCaller` or `owner`
    ///  are the only addresses that can call a function with this modifier
    modifier onlyEscapeHatchCallerOrOwner {
        require ((msg.sender == escapeHatchCaller)||(msg.sender == owner));
        _;
    }

    /// @notice Creates the blacklist of tokens that are not able to be taken
    ///  out of the contract; can only be done at the deployment, and the logic
    ///  to add to the blacklist will be in the constructor of a child contract
    /// @param _token the token contract address that is to be blacklisted 
    function blacklistEscapeToken(address _token) internal {
        escapeBlacklist[_token] = true;
        EscapeHatchBlackistedToken(_token);
    }

    /// @notice Checks to see if `_token` is in the blacklist of tokens
    /// @param _token the token address being queried
    /// @return False if `_token` is in the blacklist and can't be taken out of
    ///  the contract via the `escapeHatch()`
    function isTokenEscapable(address _token) constant public returns (bool) {
        return !escapeBlacklist[_token];
    }

    /// @notice The `escapeHatch()` should only be called as a last resort if a
    /// security issue is uncovered or something unexpected happened
    /// @param _token to transfer, use 0x0 for ether
    function escapeHatch(address _token) public onlyEscapeHatchCallerOrOwner {   
        require(escapeBlacklist[_token]==false);

        uint256 balance;

        /// @dev Logic for ether
        if (_token == 0x0) {
            balance = this.balance;
            escapeHatchDestination.transfer(balance);
            EscapeHatchCalled(_token, balance);
            return;
        }
        /// @dev Logic for tokens
        ERC20 token = ERC20(_token);
        balance = token.balanceOf(this);
        token.transfer(escapeHatchDestination, balance);
        EscapeHatchCalled(_token, balance);
    }

    /// @notice Changes the address assigned to call `escapeHatch()`
    /// @param _newEscapeHatchCaller The address of a trusted account or
    ///  contract to call `escapeHatch()` to send the value in this contract to
    ///  the `escapeHatchDestination`; it would be ideal that `escapeHatchCaller`
    ///  cannot move funds out of `escapeHatchDestination`
    function changeHatchEscapeCaller(address _newEscapeHatchCaller) onlyEscapeHatchCallerOrOwner {
        escapeHatchCaller = _newEscapeHatchCaller;
    }

    event EscapeHatchBlackistedToken(address token);
    event EscapeHatchCalled(address token, uint amount);
}

/// @dev This is an empty contract declaring `proxyPayment()` to comply with
///  Giveth Campaigns so that tokens will be generated when donations are sent
contract Campaign {

    /// @notice `proxyPayment()` allows the caller to send ether to the Campaign
    /// and have the tokens created in an address of their choosing
    /// @param _owner The address that will hold the newly created tokens
    function proxyPayment(address _owner) payable returns(bool);
}

/// @title Fund Forwarder
/// @author Vojtech Simetka, Jordi Baylina, Dani Philia, Arthur Lunn
/// @notice This contract is used to forward funds to a Giveth Campaign 
///  with an escapeHatch. The ether is sent directly to designated Campaign and
///  the `escapeHatch()` allows removal of any tokens deposited by accident
contract FundForwarder is Escapable {
    Campaign public beneficiary; // expected to be a Giveth campaign

    /// @notice The Constructor assigns the `beneficiary`, the
    ///  `escapeHatchDestination` and the `escapeHatchCaller` as well as deploys
    ///  the contract to the blockchain (obviously)
    /// @param _beneficiary The address of the CAMPAIGN CONTROLLER for the
    ///  Campaign that is to receive donations
    /// @param _escapeHatchDestination The address of a safe location (usually a
    ///  Multisig) to send the ether held in this contract
    /// @param _escapeHatchCaller The address of a trusted account or contract
    ///  to call `escapeHatch()` to send the ether in this contract to the 
    ///  `escapeHatchDestination` it would be ideal that `escapeHatchCaller`
    ///  cannot move funds out of `escapeHatchDestination` in a less centralized
    ///  and more trustless set up
    function FundForwarder(
        Campaign _beneficiary, // address that receives ether
        address _escapeHatchCaller,
        address _escapeHatchDestination
        )Escapable(_escapeHatchCaller, _escapeHatchDestination)
    {
        beneficiary = _beneficiary;
    }

    /// @dev The "fallback function" forwards ether to `beneficiary` and the 
    ///  `msg.sender` is rewarded with Campaign tokens; this contract may have a
    ///  high gasLimit requirement dependent on beneficiary
    function () payable {
        // Send the ETH to the beneficiary so that they receive Campaign tokens
        require (beneficiary.proxyPayment.value(msg.value)(msg.sender));
        FundsSent(msg.sender, msg.value);
    }
    event FundsSent(address indexed sender, uint amount);
}

/**
 * @title ERC20
 * @dev A standard interface for tokens.
 * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
 */
contract ERC20 {
  
    /// @dev Returns the total token supply
    function totalSupply() public constant returns (uint256 supply);

    /// @dev Returns the account balance of the account with address _owner
    function balanceOf(address _owner) public constant returns (uint256 balance);

    /// @dev Transfers _value number of tokens to address _to
    function transfer(address _to, uint256 _value) public returns (bool success);

    /// @dev Transfers _value number of tokens from address _from to address _to
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);

    /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount
    function approve(address _spender, uint256 _value) public returns (bool success);

    /// @dev Returns the amount which _spender is still allowed to withdraw from _owner
    function allowance(address _owner, address _spender) public constant returns (uint256 remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

}

Contract ABI
[{"constant":true,"inputs":[],"name":"escapeHatchCaller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","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":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"uint256"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newEscapeHatchCaller","type":"address"}],"name":"changeHatchEscapeCaller","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_escapeHatchCaller","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"FundsSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}]

Contract Creation Code
6060604052341561000f57600080fd5b6040516060806108a383398101604052808051919060200180519190602001805160008054600160a060020a03338116600160a060020a0319928316179092556002805496831696821696909617909555600380549282169286169290921790915560058054959091169490931693909317909155505061080e806100956000396000f3006060604052600436106100a05763ffffffff60e060020a6000350416631f6eb6e7811461015f5780632af4c31e1461018e57806338af3eed146101af578063710bf322146101c257806379ba5097146101e1578063892db057146101f45780638da5cb5b14610227578063a142d6081461023a578063d091b55014610259578063d617e0d31461026c578063d836fbe814610282578063f5b61230146102a1575b600554600160a060020a031663f48c3054343360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016020604051808303818588803b15156100f957600080fd5b6125ee5a03f1151561010a57600080fd5b5050505060405180519050151561012057600080fd5b33600160a060020a03167f8c8f77105ce8ee99e391fd4da140bc14a988eb4cf878b240bfed9b10ae7c67583460405190815260200160405180910390a2005b341561016a57600080fd5b6101726102b4565b604051600160a060020a03909116815260200160405180910390f35b341561019957600080fd5b6101ad600160a060020a03600435166102c3565b005b34156101ba57600080fd5b610172610364565b34156101cd57600080fd5b6101ad600160a060020a0360043516610373565b34156101ec57600080fd5b6101ad6103f1565b34156101ff57600080fd5b610213600160a060020a036004351661047e565b604051901515815260200160405180910390f35b341561023257600080fd5b61017261049d565b341561024557600080fd5b6101ad600160a060020a03600435166104ac565b341561026457600080fd5b6101726106de565b341561027757600080fd5b6101ad6004356106ed565b341561028d57600080fd5b6101ad600160a060020a036004351661076e565b34156102ac57600080fd5b6101726107d3565b600254600160a060020a031681565b6000805433600160a060020a039081169116146102df57600080fd5b600160a060020a03821615156102f457600080fd5b5060008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff1980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600554600160a060020a031681565b60005433600160a060020a0390811691161461038e57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60015460009033600160a060020a0390811691161461040f57600080fd5b50600080546001805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600160a060020a031660009081526004602052604090205460ff161590565b600054600160a060020a031681565b600254600090819033600160a060020a03908116911614806104dc575060005433600160a060020a039081169116145b15156104e757600080fd5b600160a060020a03831660009081526004602052604090205460ff161561050d57600080fd5b600160a060020a038316151561059f57600354600160a060020a033081163193501682156108fc0283604051600060405180830381858888f19350505050151561055657600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28383604051600160a060020a03909216825260208201526040908101905180910390a16106d9565b5081600160a060020a0381166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105f857600080fd5b6102c65a03f1151561060957600080fd5b5050506040518051600354909350600160a060020a03808416925063a9059cbb91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561067857600080fd5b6102c65a03f1151561068957600080fd5b50505060405180519050507fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28383604051600160a060020a03909216825260208201526040908101905180910390a15b505050565b600154600160a060020a031681565b60005433600160a060020a0390811691161461070857600080fd5b610dac811461071657600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60025433600160a060020a0390811691161480610799575060005433600160a060020a039081169116145b15156107a457600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600354600160a060020a0316815600a165627a7a72305820b1cd36367999fc58c83555c8daff8de87683bd693ac19655a0c9d7df1fc6512f00290000000000000000000000008702b8d7a1eefec7e54636e26a9323dc96a8dc25000000000000000000000000839395e20bbb182fa440d08f850e6c7a8f6f07800000000000000000000000008ff920020c8ad673661c8117f2855c384758c572


   Swarm Source:
bzzr://b1cd36367999fc58c83555c8daff8de87683bd693ac19655a0c9d7df1fc6512f
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.