Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 123 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xd00cc82a132f421ba6414d196bc830db95e2e7ddat txn 0x82831b1ee1e36e8f5e9b67b2a02446713037bac7b5d6df046a4d18d134818c39
Token Balance:
 Latest 25 transactions from a total of 123 transactions

TxHash Age From To Value [TxFee]
0x75d57ede5463882edaa7afa2a265f896dac554d33e6c05c4dfcd3716a3002d4439 days 10 hrs ago0xfe915972b51cf41f737005d801f9f6e45a3037d1  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.05 Ether0.0001743
0x90c16d903e9fdb8c570260409152dd76cb63fd7e91fe5541e9482cd7bf8df27439 days 10 hrs ago0xfe915972b51cf41f737005d801f9f6e45a3037d1  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.05 Ether0.000157475174
0x6bbc17cc470b19a6651e8c4db672f0ca1c1c0f3e9e90519837df1f0d9ffd6d4460 days 22 hrs ago0x1d8a08c8c3ce0a852cb4da902754991759f7f625  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.2 Ether0.000130324
0x092ff46dc311b2996c121f3624b3eefad3be6b49d520e3d980316a6ee10e198d70 days 16 hrs ago0xb3377144427f861b4130002018e3f6beb7b59fcf  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.5 Ether0.001824536
0x03b6c7602f5305e9d807221e5a5e58b952a4b95ef696b17d6c28ed8c07f4d41179 days 22 hrs ago0x65b26464d47e039ed5d9cef1e4463b872e5e1d58  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.042 Ether0.0004040044
0xb7f942c67182d3698938cb8abc018a451d22667f8f955f73c4d79626ecbf484890 days 5 hrs ago0x27d9c9ad60e2aa53476554b38baa8bf5147e7a5e  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.02778824 Ether0.000623833
0xfb24b8184ec8ab8b6ced1f6766f85c4b9963d369a3f0da3816ad17053a375e2c95 days 5 hrs ago0xf811e0829e05e277e807c1ee4fe77ce3fb7da33f  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.0004 Ether0.0015855
0xdba74ec4abc49ee87dd0da506dda9ceab059cef9589405030638f5df3550f93995 days 6 hrs ago0xf811e0829e05e277e807c1ee4fe77ce3fb7da33f  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.008667099869786 Ether0.00033290013
0x7a07228c68c7974a73793c0d70a645a9dedbcd66fd02c489dceef4a8813aabec95 days 6 hrs ago0xf811e0829e05e277e807c1ee4fe77ce3fb7da33f  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.008730163336574 Ether0.000269836663
0x9f2fc942965d96b627c00b9c3c136393309fc0971f4d945f77db2af401de5b09103 days 13 hrs ago0x69ccdd7adb6928fa24d18fd4481f00923859974f  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.00192643 Ether0.000445595
0x1544e3f92caebf4b1ac55acbfc7ec68888047590c1d8265114f76663e76ffb4d125 days 1 hr ago0xbe6e0ea981d117ed4c6536efa831e00ecb366afc  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.01874001 Ether0.005079783
0x3a06422915f45fefe0a3027dfa839559c7686dd011c9f0989497d6dc757e5e5d133 days 23 hrs ago0x2cd9078b0f05a9cc2aa7c36515618e0a9059f044  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.001 Ether0.000114637
0x2dbd581456057a09e710e864c5de82473b83a51d632fdc4bcc7120dabf1a60ce134 days ago0x2cd9078b0f05a9cc2aa7c36515618e0a9059f044  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.001 Ether0.000115188
0x0427337bd51d3011703a0b2dffaddff024b7a259a5c7b263fd5288d16b51bb50134 days 12 mins ago0x2cd9078b0f05a9cc2aa7c36515618e0a9059f044  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.001 Ether0.000231056
0x6fb0770ec27164e69827d1dbc56f16e052871a1110d3b12d9a3421e4b07aeef7134 days 14 mins ago0x2cd9078b0f05a9cc2aa7c36515618e0a9059f044  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.001 Ether0.000262158
0x208a692a94750b03f2aba17026fc7d6ade27e4190ed492db23dd9b587581216a138 days 5 hrs ago0xa242c5794d1d5c5e639b76ee2a19fc6a59159717  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.1 Ether0.000228866
0x1bf50b1917f8389b0972bbaaa865755bc4d6371dcd1ae07ac51dc963bf5809ef144 days 13 hrs agoBinance_2  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.05 Ether0.00781944
0xfbbec8e58da69707014fb1cb966fda828ffff5c528327538e3dbb09eef69f1f5155 days 20 hrs ago0x144cd0a8c4c06696b92f6d93a0e06ba1ae127cef  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.00989956 Ether0.00178238
0x8d8ccbaf06aeaf00dac1ff1caa97be3ec31a05f831605afcfa08ed76a820c2ea161 days 3 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc17 Ether0.00303141348
0x193199ec6b4d81a28a31f5d720dfbd05d946a99c8bd5465858cdee7c7828e71f165 days 2 hrs ago0x8f8d112d99f7b26d111770f74d411fa61204fe3e  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.00163199 Ether0.000445595
0x1fe63157ba253fb9a0751c6178bf69f767a524bb88415ab2389a7d09e9750279178 days 11 hrs ago0xa793f13c7c7d38b2ffb27c5273edbd0245adbe76  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.004 Ether0.000390972
0xc024c80aef3fdea42696c46a53bf4c378b668e5ebac31ace82239620c657f1ca185 days 53 mins ago0x77777e7927752b366a28ec6ba1f44a019600b8d9  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.15 Ether0.000537372
0xf64764291f59ab9faeba20a1eb9190b177c6f4ce2dab418fd37ac98265546f5a190 days 22 hrs ago0x2398653c48945425061b1f6768f53efe4b0c993b  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc1 Ether0.000609
0x82cd04b52d785a86f6c5f547d8efffc7a6f9e2a22ee655697fca1552ad71196b193 days 2 hrs ago0x678c06a58757f512e337c081688a5d985d874ef4  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.5 Ether0.005343284
0x7e9672a2c9d71d427aa06e9eb5c15ab2637b6bec99a4e3e8a4d9d4a3df24a1f6193 days 7 hrs ago0xcfb29f5a1991db14c8fbdcc4118d0177e7257465  IN   0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.5 Ether0.001586004
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x5fd6b04dc7c2075813b18149a7471260da057c1398f41f089c2b3bb4baa5d368654744452 days 20 hrs ago0xb8dca1712e16f26423700646ec5c2656d9c087d20x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.002496 Ether
0x32dfbfffd15261663c9ddad706ecf964f5d537e330aa376137046e32e1fd5e3a654744152 days 20 hrs ago0xb8dca1712e16f26423700646ec5c2656d9c087d20x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.000836 Ether
0x31f9c441fdf3aa03cb50fed53b15bd7babb5f63b3599c1088c5844b7f4ef61db654743352 days 20 hrs ago0xb8dca1712e16f26423700646ec5c2656d9c087d20x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.002988 Ether
0x64288b9d5acd0b167916b6c7f881463bc712f66e020a15691161d46e723190a2654742352 days 20 hrs ago0xb8dca1712e16f26423700646ec5c2656d9c087d20x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.003264 Ether
0x6bbc17cc470b19a6651e8c4db672f0ca1c1c0f3e9e90519837df1f0d9ffd6d44649765560 days 22 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.2 Ether
0x092ff46dc311b2996c121f3624b3eefad3be6b49d520e3d980316a6ee10e198d643766670 days 16 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.5 Ether
0xa0d0d7c4473c2ac3b83f8688a8be85e5f95c0280e6a2f73870398d3f5e6cfb46640516076 days 21 mins ago0x180e35f768eb870962d2dc04cca1a927d206a0890x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.0003 Ether
0x9a7b540f526ec6a65abc1423e970ee3ffe1c26e018356367b5f0390795cbd50c640512976 days 27 mins ago0x180e35f768eb870962d2dc04cca1a927d206a0890x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.0001 Ether
0x47316a00dc8748cd9a9d5a3cba1a30022c8f653a1341394fe8539a08fdd22365640511976 days 30 mins ago0x180e35f768eb870962d2dc04cca1a927d206a0890x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.0137 Ether
0x03b6c7602f5305e9d807221e5a5e58b952a4b95ef696b17d6c28ed8c07f4d411638137379 days 22 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.042 Ether
0xb7f942c67182d3698938cb8abc018a451d22667f8f955f73c4d79626ecbf4848631901490 days 5 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.02778824 Ether
0xfb24b8184ec8ab8b6ced1f6766f85c4b9963d369a3f0da3816ad17053a375e2c628915495 days 5 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.0004 Ether
0x39b013cf84aeadb2aadd3a5d00d364b8a37616e342d3d8e61c5d882dd35217ee6246391102 days 9 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.000660488050155929 Ether
0x39b013cf84aeadb2aadd3a5d00d364b8a37616e342d3d8e61c5d882dd35217ee6246391102 days 9 hrs ago0x4798480a81fe05d4194b1922dd4e20fe1742f51b0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.000660488050155929 Ether
0x9f2fc942965d96b627c00b9c3c136393309fc0971f4d945f77db2af401de5b096239584103 days 13 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.00192643 Ether
0x17ffa9c1caa7083eb61866ae6bdc3be1e2a3084f8be601c9db0ada5c7757779a6223489106 days 6 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.004406057595475 Ether
0x17ffa9c1caa7083eb61866ae6bdc3be1e2a3084f8be601c9db0ada5c7757779a6223489106 days 6 hrs ago0x4798480a81fe05d4194b1922dd4e20fe1742f51b0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.004406057595475 Ether
0x8dffe6e1e014a152942172e23a093647ddbf8628c503581885ddd25b4f4cadc86206262109 days 4 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.005254101234907036 Ether
0x8dffe6e1e014a152942172e23a093647ddbf8628c503581885ddd25b4f4cadc86206262109 days 4 hrs ago0x4798480a81fe05d4194b1922dd4e20fe1742f51b0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.005254101234907036 Ether
0x923c919885ccdc380c7ff719fd051256d14b9c28c9d3607653a6cd69361e9b186181541113 days 8 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc252.79394456848058123 Ether
0x923c919885ccdc380c7ff719fd051256d14b9c28c9d3607653a6cd69361e9b186181541113 days 8 hrs ago0x9fdd7af3949c3ca8f5b50802850a30e4d2fc2fdd0x5adf43dd006c6c36506e2b2dfa352e60002d22dc2.79394456848058123 Ether
0x254b91e08d853dded86c468c7f97ad6cd843e448114318af01205a88494bfb716180764113 days 11 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.258881220252635193 Ether
0x254b91e08d853dded86c468c7f97ad6cd843e448114318af01205a88494bfb716180764113 days 11 hrs ago0x4798480a81fe05d4194b1922dd4e20fe1742f51b0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.258881220252635193 Ether
0x0475da8eacddf95c907054ea1d12fc46897e088c75cf1bcea3f9ad203ebb379f6178899113 days 19 hrs ago0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0x8702b8d7a1eefec7e54636e26a9323dc96a8dc250.030999037214182844 Ether
0x0475da8eacddf95c907054ea1d12fc46897e088c75cf1bcea3f9ad203ebb379f6178899113 days 19 hrs ago0x9fdd7af3949c3ca8f5b50802850a30e4d2fc2fdd0x5adf43dd006c6c36506e2b2dfa352e60002d22dc0.030999037214182844 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Similar Match)
Note: Displaying Similar Match Verified Source Code At Contract 0x780623f5ec165b48394189fe1263466d5c16fdff(Excluding Constructor Arguments if any)
Contract Name: FundForwarder
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

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 Switch To Opcodes View
6060604052341561000f57600080fd5b6040516060806108a383398101604052808051919060200180519190602001805160008054600160a060020a03338116600160a060020a0319928316179092556002805496831696821696909617909555600380549282169286169290921790915560058054959091169490931693909317909155505061080e806100956000396000f3006060604052600436106100a05763ffffffff60e060020a6000350416631f6eb6e7811461015f5780632af4c31e1461018e57806338af3eed146101af578063710bf322146101c257806379ba5097146101e1578063892db057146101f45780638da5cb5b14610227578063a142d6081461023a578063d091b55014610259578063d617e0d31461026c578063d836fbe814610282578063f5b61230146102a1575b600554600160a060020a031663f48c3054343360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016020604051808303818588803b15156100f957600080fd5b6125ee5a03f1151561010a57600080fd5b5050505060405180519050151561012057600080fd5b33600160a060020a03167f8c8f77105ce8ee99e391fd4da140bc14a988eb4cf878b240bfed9b10ae7c67583460405190815260200160405180910390a2005b341561016a57600080fd5b6101726102b4565b604051600160a060020a03909116815260200160405180910390f35b341561019957600080fd5b6101ad600160a060020a03600435166102c3565b005b34156101ba57600080fd5b610172610364565b34156101cd57600080fd5b6101ad600160a060020a0360043516610373565b34156101ec57600080fd5b6101ad6103f1565b34156101ff57600080fd5b610213600160a060020a036004351661047e565b604051901515815260200160405180910390f35b341561023257600080fd5b61017261049d565b341561024557600080fd5b6101ad600160a060020a03600435166104ac565b341561026457600080fd5b6101726106de565b341561027757600080fd5b6101ad6004356106ed565b341561028d57600080fd5b6101ad600160a060020a036004351661076e565b34156102ac57600080fd5b6101726107d3565b600254600160a060020a031681565b6000805433600160a060020a039081169116146102df57600080fd5b600160a060020a03821615156102f457600080fd5b5060008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff1980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600554600160a060020a031681565b60005433600160a060020a0390811691161461038e57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60015460009033600160a060020a0390811691161461040f57600080fd5b50600080546001805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600160a060020a031660009081526004602052604090205460ff161590565b600054600160a060020a031681565b600254600090819033600160a060020a03908116911614806104dc575060005433600160a060020a039081169116145b15156104e757600080fd5b600160a060020a03831660009081526004602052604090205460ff161561050d57600080fd5b600160a060020a038316151561059f57600354600160a060020a033081163193501682156108fc0283604051600060405180830381858888f19350505050151561055657600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28383604051600160a060020a03909216825260208201526040908101905180910390a16106d9565b5081600160a060020a0381166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105f857600080fd5b6102c65a03f1151561060957600080fd5b5050506040518051600354909350600160a060020a03808416925063a9059cbb91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561067857600080fd5b6102c65a03f1151561068957600080fd5b50505060405180519050507fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28383604051600160a060020a03909216825260208201526040908101905180910390a15b505050565b600154600160a060020a031681565b60005433600160a060020a0390811691161461070857600080fd5b610dac811461071657600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60025433600160a060020a0390811691161480610799575060005433600160a060020a039081169116145b15156107a457600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600354600160a060020a0316815600a165627a7a72305820b1cd36367999fc58c83555c8daff8de87683bd693ac19655a0c9d7df1fc6512f00290000000000000000000000008702b8d7a1eefec7e54636e26a9323dc96a8dc25000000000000000000000000839395e20bbb182fa440d08f850e6c7a8f6f07800000000000000000000000008ff920020c8ad673661c8117f2855c384758c572

   Swarm Source:
bzzr://b1cd36367999fc58c83555c8daff8de87683bd693ac19655a0c9d7df1fc6512f

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.