Sponsored:   Color - Revolutionizing the Dapp Ecosystem, Bounty & Airdrop, Get 240,000 COL NOW!
Contract Overview
Balance: 0.2 Ether
Ether Value: $57.35 (@ $286.75/ETH)
Transactions: 26 txns
Token Tracker: Pass Token (PASS)
 Latest 25 txns from a total Of 26 transactions

TxHash Age From To Value [TxFee]
0x4b81ef218b8137069d8c311c219c46bb7355f19e33bc05f651104b9d39b83532153 days 12 hrs ago0x636760c22f6e07a4267ca2274b82eb74361900e0  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.000923484
0xeebbe0b1c9220c896436ca6318e1d02fb94d0bf0f357d3969c48c9a6c9a5eb6f158 days 7 hrs ago0x9fb2d66b8967f880de8d5022bfc8636a5606cae0  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.000473004
0xee49e714f3ad56c0413b9490fa7057aba6626f0ee1ae68b95124c733b127f8e9175 days 4 hrs ago0xdd29ef35ab1c383ba13366e05e6be47f83b1c4af  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.00045048
0xea3b0fc73ab493a6faed67471f078b23baefd0bfe731a3c5e84e4282b3e0d788207 days 1 hr ago0xdfe15feab2cad87d5a4e0388164ed01e74f3cac0  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.000191051
0xac248b4ba8ffa3f77e003f39f005355332154503d3fd3d2eb49151e02d9965a5208 days 12 hrs ago0x3ff51120d34f4318b6aff85dbca5481dbf03f40b  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.00045048
0x9b7f4bcbbd9f26d55293a21ae42db6c0a6ec41bf1cc180728fb7d26683ab58df239 days 3 hrs ago0x00f5fae2b693796a88cfb1e6aae859e3890597c6  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.000473004
0x4f13b72dd9f5d88d6568430719b609866c0ca6e5e4c6e4ecc68a6882fd9f724f275 days 1 hr ago0x3ff51120d34f4318b6aff85dbca5481dbf03f40b  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.000523425
0x37ea45d324214a74c09d912a0f04b7e22cb4cb4c6c3bf472099189453c20f14d276 days 17 hrs ago0x23d2ec7e8e1378765ec9fae4a0d0761861d8bc34  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.000735
0xe67f5077eaf8fcf0ee22d169f3a84d55db4b16e62d180a9496ef221433901d14276 days 17 hrs ago0x23d2ec7e8e1378765ec9fae4a0d0761861d8bc34  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50.00001 Ether0.00063
0x2abdc8ed0f1e0c8723123f491b213e191b0d371f2384fd185f91af06b5884654287 days 22 hrs ago0xcd342972e9721c0de0adaa4cf223ec93294effac  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50.01 Ether0.00189
0x36cde9a6e51e366c0aa6ba6fe837cd6b9fc0d9341de57f9f2c3687f25750efb5357 days 17 hrs ago0x16191f7a1757c1ee7d5867c72e8065d6035def7b  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.0042
0x046d18ab73447b68d6200e20773c1efc4b09118c2efa8a89b4346f1ee25f365d386 days 5 hrs ago0xcb23665c90a4d6d49f1a3a0cd31eb71c0bd55021  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.000523425
0xe6b2a74760b9de0950281277b67da74af849b2b5c75a55390fb25838670f7584418 days 14 hrs ago0xd6f7c94c8e82c7e2e1234c636d509d9065b1c36f  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.00135144
0x4680aea60a6912b401a5c6cd96a67e575ee5b56743a7fbfa996f97451049c08f441 days 14 hrs ago0x742eacb804428d576d4926fe71af712b430eb644  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.000473004
0xfc1133950278cc1ade01d1f87b93fec9a08b3ac4e758b453109c6a59ef3be815447 days 8 hrs ago0xe668ac2d4fe113385c9384bd3a83eaa9e8e3fd86  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50.2 Ether0.00177009
0x2bbb195e386e04571cc867e58999947c351562cf04fdffa7725873d0d76dc061460 days 1 hr ago0x617057bf5415d81fe19f8ef2cbbe4a9ee4c46da9  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50.1 Ether0.00058182
0xb4560b3694232812d211ad2baf18b5c4c43b3e04ad3a86368e7d01aea791fc9e469 days 1 hr ago0xb05d66c8335fb0960e3b2b836664a4eb6406c6d7  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50.000000000000029 Ether0.00058182
0x666da19abc9dc16e21a9266bff8d2181c42f6667edef30dbe4e89ff42cb433d2490 days 10 hrs ago0x89535d8899ef1cb58a9885c8e0969dc82a8a59f6  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50.01 Ether0.00058182
0x2e4fdf799cfd11b0bf6f87f3bed58228aa88d15e2772b944e4dbdc0e34760008491 days 18 hrs ago0xaa30f60710ef3c9eccdeb57dde5c5889510896fe  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.00045048
0xb8f2f6caa10bbc4feef0029966e6404329d487617904ada1379882279cf81ef3539 days 21 hrs ago0xdaf830a124db4b5492952c29611f4d359ee27a35  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.001192731
0xb823b532a583d80de17bc532e50b3d050c065f2ba395b9ff46b9d710a6f45e42552 days 15 hrs ago0xce266ef7e7470c32517f26e91eebb68709f53c27  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.001392114
0x18cc5bf90409acd221cca785d7289aae977b2e1dbe65139894e86796dacbbf8d552 days 15 hrs ago0x001c61662c21048efdab47e9afc638ff21b5af10  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50.1 Ether0.004292208
0xdc3042aa2c8de0ed2d12a8447dd8d1358e89211273380c252c95cee61b32c0b7553 days 14 hrs ago0xc1c0b0dbbae549dc41b4e07d9e1fa1e857459a5f  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.058092099
0x2679e6e0fa0960ffcf9e869c22f8cf2251023451c49cd6b9421b6934dcc9435c553 days 14 hrs ago0xc1c0b0dbbae549dc41b4e07d9e1fa1e857459a5f  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.080228031
0xd2570c9e52871f2bf3ce20ce339caa46f126f53f97bf93028a30252c7adced79553 days 14 hrs ago0xc1c0b0dbbae549dc41b4e07d9e1fa1e857459a5f  IN   0x85bc00724203d53536072b000c44a2cc16cd12c50 Ether0.080813031
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 1 Internal Transaction

ParentTxHash Block Age From To Value
0xb823b532a583d80de17bc532e50b3d050c065f2ba395b9ff46b9d710a6f45e423147828552 days 15 hrs ago0x85bc00724203d53536072b000c44a2cc16cd12c50xce266ef7e7470c32517f26e91eebb68709f53c270.1 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity), ConstantOptimizerSubtraction (low-severity) Solidity compiler bugs.

Contract Source Code Verified (Exact match)
Contract Name: PassManager
Compiler Version: v0.4.8+commit.60cc1668
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.8;

/*
This file is part of Pass DAO.

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

Pass DAO 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 lesser General Public License for more details.

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

/*
Smart contract for a Decentralized Autonomous Organization (DAO)
to automate organizational governance and decision-making.
*/

/// @title Pass Dao smart contract
contract PassDao {
    
    struct revision {
        // Address of the Committee Room smart contract
        address committeeRoom;
        // Address of the share manager smart contract
        address shareManager;
        // Address of the token manager smart contract
        address tokenManager;
        // Address of the project creator smart contract
        uint startDate;
    }
    // The revisions of the application until today
    revision[] public revisions;

    struct project {
        // The address of the smart contract
        address contractAddress;
        // The unix effective start date of the contract
        uint startDate;
    }
    // The projects of the Dao
    project[] public projects;

    // Map with the indexes of the projects
    mapping (address => uint) projectID;
    
    // The address of the meta project
    address metaProject;

    
// Events

    event Upgrade(uint indexed RevisionID, address CommitteeRoom, address ShareManager, address TokenManager);
    event NewProject(address Project);

// Constant functions  
    
    /// @return The effective committee room
    function ActualCommitteeRoom() constant returns (address) {
        return revisions[0].committeeRoom;
    }
    
    /// @return The meta project
    function MetaProject() constant returns (address) {
        return metaProject;
    }

    /// @return The effective share manager
    function ActualShareManager() constant returns (address) {
        return revisions[0].shareManager;
    }

    /// @return The effective token manager
    function ActualTokenManager() constant returns (address) {
        return revisions[0].tokenManager;
    }

// modifiers

    modifier onlyPassCommitteeRoom {if (msg.sender != revisions[0].committeeRoom  
        && revisions[0].committeeRoom != 0) throw; _;}
    
// Constructor function

    function PassDao() {
        projects.length = 1;
        revisions.length = 1;
    }
    
// Register functions

    /// @dev Function to allow the actual Committee Room upgrading the application
    /// @param _newCommitteeRoom The address of the new committee room
    /// @param _newShareManager The address of the new share manager
    /// @param _newTokenManager The address of the new token manager
    /// @return The index of the revision
    function upgrade(
        address _newCommitteeRoom, 
        address _newShareManager, 
        address _newTokenManager) onlyPassCommitteeRoom returns (uint) {
        
        uint _revisionID = revisions.length++;
        revision r = revisions[_revisionID];

        if (_newCommitteeRoom != 0) r.committeeRoom = _newCommitteeRoom; else r.committeeRoom = revisions[0].committeeRoom;
        if (_newShareManager != 0) r.shareManager = _newShareManager; else r.shareManager = revisions[0].shareManager;
        if (_newTokenManager != 0) r.tokenManager = _newTokenManager; else r.tokenManager = revisions[0].tokenManager;

        r.startDate = now;
        
        revisions[0] = r;
        
        Upgrade(_revisionID, _newCommitteeRoom, _newShareManager, _newTokenManager);
            
        return _revisionID;
    }

    /// @dev Function to set the meta project
    /// @param _projectAddress The address of the meta project
    function addMetaProject(address _projectAddress) onlyPassCommitteeRoom {

        metaProject = _projectAddress;
    }
    
    /// @dev Function to allow the committee room to add a project when ordering
    /// @param _projectAddress The address of the project
    function addProject(address _projectAddress) onlyPassCommitteeRoom {

        if (projectID[_projectAddress] == 0) {

            uint _projectID = projects.length++;
            project p = projects[_projectID];
        
            projectID[_projectAddress] = _projectID;
            p.contractAddress = _projectAddress; 
            p.startDate = now;
            
            NewProject(_projectAddress);
        }
    }
    
}

pragma solidity ^0.4.8;

/*
 *
 * This file is part of Pass DAO.
 *
 * The Manager smart contract is used for the management of shares and tokens.
 *
*/

/// @title Token Manager smart contract of the Pass Decentralized Autonomous Organisation
contract PassTokenManagerInterface {

    // The Pass Dao smart contract
    PassDao public passDao;
    // The adress of the creator of this smart contract
    address creator;
    
    // The token name for display purpose
    string public name;
    // The token symbol for display purpose
    string public symbol;
    // The quantity of decimals for display purpose
    uint8 public decimals;
    // Total amount of tokens
    uint256 totalTokenSupply;

    // True if tokens, false if Dao shares
    bool token;
    // If true, the shares or tokens can be transferred
    bool transferable;

    // The address of the last Manager before cloning
    address public clonedFrom;
    // True if the initial token supply is over
    bool initialTokenSupplyDone;

    // Array of token or share holders (used for cloning)
    address[] holders;
    // Map with the indexes of the holders (used for cloning)
    mapping (address => uint) holderID;
    
    // Array with all balances
    mapping (address => uint256) balances;
    // Array with all allowances
    mapping (address => mapping (address => uint256)) allowed;

    struct funding {
        // The address which sets partners and manages the funding (not mandatory)
        address moderator;
        // The amount (in wei) of the funding
        uint amountToFund;
        // The funded amount (in wei)
        uint fundedAmount;
        // A unix timestamp, denoting the start time of the funding
        uint startTime; 
        // A unix timestamp, denoting the closing time of the funding
        uint closingTime;  
        // The price multiplier for a share or a token without considering the inflation rate
        uint initialPriceMultiplier;
        // Rate per year in percentage applied to the share or token price 
        uint inflationRate; 
        // The total amount of wei given
        uint totalWeiGiven;
    } 
    // Map with the fundings rules for each Dao proposal
    mapping (uint => funding) public fundings;

    // The index of the last funding and proposal
    uint lastProposalID;
    // The index of the last fueled funding and proposal
    uint public lastFueledFundingID;
    
    struct amountsGiven {
        uint weiAmount;
        uint tokenAmount;
    }
    // Map with the amounts given for each proposal 
    mapping (uint => mapping (address => amountsGiven)) public Given;
    
    // Map of blocked Dao share accounts. Points to the date when the share holder can transfer shares
    mapping (address => uint) public blockedDeadLine; 

    // @return The client of this manager
    function Client() constant returns (address);
    
    /// @return The total supply of shares or tokens 
    function totalSupply() constant external returns (uint256);

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

    /// @return True if tokens can be transferred
    function Transferable() constant external returns (bool);
    
    /// @param _owner The address of the account owning tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Quantity of remaining tokens of _owner that _spender is allowed to spend
    function allowance(address _owner, address _spender) constant external returns (uint256 remaining);
    
    /// @param _proposalID Index of the funding or proposal
    /// @return The result (in wei) of the funding
    function FundedAmount(uint _proposalID) constant external returns (uint);

    /// @param _proposalID Index of the funding or proposal
    /// @return The amount to fund
    function AmountToFund(uint _proposalID) constant external returns (uint);
    
    /// @param _proposalID Index of the funding or proposal
    /// @return the token price multiplier
    function priceMultiplier(uint _proposalID) constant internal returns (uint);
    
    /// @param _proposalID Index of the funding or proposal
    /// @param _saleDate in case of presale, the date of the presale
    /// @return the share or token price divisor condidering the sale date and the inflation rate
    function priceDivisor(
        uint _proposalID, 
        uint _saleDate) constant internal returns (uint);
    
    /// @param _proposalID Index of the funding or proposal
    /// @return the actual price divisor of a share or token
    function actualPriceDivisor(uint _proposalID) constant internal returns (uint);

    /// @dev Internal function to calculate the amount in tokens according to a price    
    /// @param _weiAmount The amount (in wei)
    /// @param _priceMultiplier The price multiplier
    /// @param _priceDivisor The price divisor
    /// @return the amount in tokens 
    function TokenAmount(
        uint _weiAmount,
        uint _priceMultiplier, 
        uint _priceDivisor) constant internal returns (uint);

    /// @dev Internal function to calculate the amount in wei according to a price    
    /// @param _tokenAmount The amount (in wei)
    /// @param _priceMultiplier The price multiplier
    /// @param _priceDivisor The price divisor
    /// @return the amount in wei
    function weiAmount(
        uint _tokenAmount, 
        uint _priceMultiplier, 
        uint _priceDivisor) constant internal returns (uint);
        
    /// @param _tokenAmount The amount in tokens
    /// @param _proposalID Index of the client proposal. 0 if not linked to a proposal.
    /// @return the actual token price in wei
    function TokenPriceInWei(uint _tokenAmount, uint _proposalID) constant returns (uint);
    
    /// @return The index of the last funding and client's proposal 
    function LastProposalID() constant returns (uint);

    /// @return The number of share or token holders (used for cloning)
    function numberOfHolders() constant returns (uint);

    /// @param _index The index of the holder
    /// @return the address of the holder
    function HolderAddress(uint _index) constant external returns (address);
   
    /// @dev The constructor function
    /// @param _passDao Address of the pass Dao smart contract
    /// @param _clonedFrom The address of the last Manager before cloning
    /// @param _tokenName The token name for display purpose
    /// @param _tokenSymbol The token symbol for display purpose
    /// @param _tokenDecimals The quantity of decimals for display purpose
    /// @param  _token True if tokens, false if shares
    /// @param  _transferable True if tokens can be transferred
    /// @param _initialPriceMultiplier Price multiplier without considering any inflation rate
    /// @param _inflationRate If 0, the token price doesn't change during the funding
    //function PassTokenManager(
    //    address _passDao,
    //    address _clonedFrom,
    //    string _tokenName,
    //    string _tokenSymbol,
    //    uint8 _tokenDecimals,
    //    bool _token,
    //    bool _transferable,
    //    uint _initialPriceMultiplier,
    //    uint _inflationRate);
    
    /// @dev Function to create initial tokens    
    /// @param _recipient The beneficiary of the created tokens
    /// @param _quantity The quantity of tokens to create    
    /// @param _last True if the initial token suppy is over
    /// @return Whether the function was successful or not     
    function initialTokenSupply(
        address _recipient, 
        uint _quantity,
        bool _last) returns (bool success);
        
    /// @notice Function to clone tokens before upgrading
    /// @param _from The index of the first holder
    /// @param _to The index of the last holder
    /// @return Whether the function was successful or not 
    function cloneTokens(
        uint _from,
        uint _to) returns (bool success);

    /// @dev Internal function to add a new token or share holder
    /// @param _holder The address of the token or share holder
    function addHolder(address _holder) internal;
    
    /// @dev Internal function to create initial tokens    
    /// @param _holder The beneficiary of the created tokens
    /// @param _tokenAmount The amount in tokens to create
    function createTokens(
        address _holder, 
        uint _tokenAmount) internal;
        
    /// @notice Function used by the client to pay with shares or tokens
    /// @param _recipient The address of the recipient of shares or tokens
    /// @param _amount The amount (in Wei) to calculate the quantity of shares or tokens to create
    /// @return the rewarded amount in tokens or shares
    function rewardTokensForClient(
        address _recipient, 
        uint _amount) external  returns (uint);
        
    /// @notice Function to set a funding
    /// @param _moderator The address of the smart contract to manage a private funding
    /// @param _initialPriceMultiplier Price multiplier without considering any inflation rate
    /// @param _amountToFund The amount (in wei) of the funding
    /// @param _minutesFundingPeriod Period in minutes of the funding
    /// @param _inflationRate If 0, the token price doesn't change during the funding
    /// @param _proposalID Index of the client proposal
    function setFundingRules(
        address _moderator,
        uint _initialPriceMultiplier,
        uint _amountToFund,
        uint _minutesFundingPeriod, 
        uint _inflationRate,
        uint _proposalID) external;

    /// @dev Internal function for the sale of shares or tokens
    /// @param _proposalID Index of the client proposal
    /// @param _recipient The recipient address of shares or tokens
    /// @param _amount The funded amount (in wei)
    /// @param _saleDate In case of presale, the date of the presale
    /// @param _presale True if presale
    /// @return Whether the creation was successful or not
    function sale(
        uint _proposalID,
        address _recipient, 
        uint _amount,
        uint _saleDate,
        bool _presale
    ) internal returns (bool success);
    
    /// @dev Internal function to close the actual funding
    /// @param _proposalID Index of the client proposal
    function closeFunding(uint _proposalID) internal;
   
    /// @notice Function to send tokens or refund after the closing time of the funding proposals
    /// @param _from The first proposal. 0 if not linked to a proposal
    /// @param _to The last proposal
    /// @param _buyer The address of the buyer
    /// @return Whether the function was successful or not 
    function sendPendingAmounts(        
        uint _from,
        uint _to,
        address _buyer) returns (bool);
        
    /// @notice Function to get fees, shares or refund after the closing time of the funding proposals
    /// @return Whether the function was successful or not
    function withdrawPendingAmounts() returns (bool);
    
    /// @notice Function used by the main partner to set the start time of the funding
    /// @param _proposalID Index of the client proposal
    /// @param _startTime The unix start date of the funding 
    function setFundingStartTime(
        uint _proposalID, 
        uint _startTime) external;
    
    /// @notice Function used by the main partner to set the funding fueled
    /// @param _proposalID Index of the client proposal
    function setFundingFueled(uint _proposalID) external;

    /// @notice Function to able the transfer of Dao shares or contractor tokens
    function ableTransfer();

    /// @notice Function to disable the transfer of Dao shares
    function disableTransfer();

    /// @notice Function used by the client to block the transfer of shares from and to a share holder
    /// @param _shareHolder The address of the share holder
    /// @param _deadLine When the account will be unblocked
    function blockTransfer(
        address _shareHolder, 
        uint _deadLine) external;
    
    /// @dev Internal function to send `_value` token to `_to` from `_From`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The quantity of shares or tokens to be transferred
    /// @return Whether the function was successful or not 
    function transferFromTo(
        address _from,
        address _to, 
        uint256 _value
        ) internal returns (bool success);
    
    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The quantity of shares or tokens to be transferred
    /// @return Whether the function was successful or not 
    function transfer(address _to, uint256 _value) returns (bool success);

    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The quantity of shares or tokens to be transferred
    function transferFrom(
        address _from, 
        address _to, 
        uint256 _value
        ) returns (bool success);

    /// @notice `msg.sender` approves `_spender` to spend `_amount` tokens on its behalf
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of tokens to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(
        address _spender, 
        uint256 _value) returns (bool success);
    
    event TokensCreated(address indexed Sender, address indexed TokenHolder, uint TokenAmount);
    event FundingRulesSet(address indexed Moderator, uint indexed ProposalId, uint AmountToFund, uint indexed StartTime, uint ClosingTime);
    event FundingFueled(uint indexed ProposalID, uint FundedAmount);
    event TransferAble();
    event TransferDisable();
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Refund(address indexed Buyer, uint Amount);
    
}    

contract PassTokenManager is PassTokenManagerInterface {

// Constant functions

    function Client() constant returns (address) {
        return passDao.ActualCommitteeRoom();
    }
   
    function totalSupply() constant external returns (uint256) {
        return totalTokenSupply;
    }
    
    function balanceOf(address _owner) constant external returns (uint256 balance) {
        return balances[_owner];
    }
     
    function Transferable() constant external returns (bool) {
        return transferable;
    }
 
    function allowance(
        address _owner, 
        address _spender) constant external returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

    function FundedAmount(uint _proposalID) constant external returns (uint) {
        return fundings[_proposalID].fundedAmount;
    }
  
    function AmountToFund(uint _proposalID) constant external returns (uint) {

        if (now > fundings[_proposalID].closingTime
            || now < fundings[_proposalID].startTime) {
            return 0;   
            } else return fundings[_proposalID].amountToFund;
    }
    
    function priceMultiplier(uint _proposalID) constant internal returns (uint) {
        return fundings[_proposalID].initialPriceMultiplier;
    }
    
    function priceDivisor(uint _proposalID, uint _saleDate) constant internal returns (uint) {
        uint _date = _saleDate;
        
        if (_saleDate > fundings[_proposalID].closingTime) _date = fundings[_proposalID].closingTime;
        if (_saleDate < fundings[_proposalID].startTime) _date = fundings[_proposalID].startTime;

        return 100 + 100*fundings[_proposalID].inflationRate*(_date - fundings[_proposalID].startTime)/(100*365 days);
    }
    
    function actualPriceDivisor(uint _proposalID) constant internal returns (uint) {
        return priceDivisor(_proposalID, now);
    }
    
    function TokenAmount(
        uint _weiAmount, 
        uint _priceMultiplier, 
        uint _priceDivisor) constant internal returns (uint) {
        
        uint _a = _weiAmount*_priceMultiplier;
        uint _multiplier = 100*_a;
        uint _amount = _multiplier/_priceDivisor;
        if (_a/_weiAmount != _priceMultiplier
            || _multiplier/100 != _a) return 0; 
        
        return _amount;
    }
    
    function weiAmount(
        uint _tokenAmount, 
        uint _priceMultiplier, 
        uint _priceDivisor) constant internal returns (uint) {
        
        uint _multiplier = _tokenAmount*_priceDivisor;
        uint _divisor = 100*_priceMultiplier;
        uint _amount = _multiplier/_divisor;
        if (_multiplier/_tokenAmount != _priceDivisor
            || _divisor/100 != _priceMultiplier) return 0; 

        return _amount;
    }
    
    function TokenPriceInWei(uint _tokenAmount, uint _proposalID) constant returns (uint) {
        return weiAmount(_tokenAmount, priceMultiplier(_proposalID), actualPriceDivisor(_proposalID));
    }
    
    function LastProposalID() constant returns (uint) {
        return lastProposalID;
    }
    
    function numberOfHolders() constant returns (uint) {
        return holders.length - 1;
    }
    
    function HolderAddress(uint _index) constant external returns (address) {
        return holders[_index];
    }

// Modifiers

    // Modifier that allows only the client ..
    modifier onlyClient {if (msg.sender != Client()) throw; _;}
      
    // Modifier for share Manager functions
    modifier onlyShareManager {if (token) throw; _;}

    // Modifier for token Manager functions
    modifier onlyTokenManager {if (!token) throw; _;}
  
// Constructor function

    function PassTokenManager(
        PassDao _passDao,
        address _clonedFrom,
        string _tokenName,
        string _tokenSymbol,
        uint8 _tokenDecimals,
        bool _token,
        bool _transferable,
        uint _initialPriceMultiplier,
        uint _inflationRate) {

        passDao = _passDao;
        creator = msg.sender;
        
        clonedFrom = _clonedFrom;            

        name = _tokenName;
        symbol = _tokenSymbol;
        decimals = _tokenDecimals;

        token = _token;
        transferable = _transferable;

        fundings[0].initialPriceMultiplier = _initialPriceMultiplier;
        fundings[0].inflationRate = _inflationRate;

        holders.length = 1;
    }

// Setting functions

    function initialTokenSupply(
        address _recipient, 
        uint _quantity,
        bool _last) returns (bool success) {

        if (initialTokenSupplyDone) throw;
        
        addHolder(_recipient);
        if (_recipient != 0 && _quantity != 0) createTokens(_recipient, _quantity);
        
        if (_last) initialTokenSupplyDone = true;
        
        return true;
    }

    function cloneTokens(
        uint _from,
        uint _to) returns (bool success) {
        
        initialTokenSupplyDone = true;
        if (_from == 0) _from = 1;
        
        PassTokenManager _clonedFrom = PassTokenManager(clonedFrom);
        uint _numberOfHolders = _clonedFrom.numberOfHolders();
        if (_to == 0 || _to > _numberOfHolders) _to = _numberOfHolders;
        
        address _holder;
        uint _balance;

        for (uint i = _from; i <= _to; i++) {
            _holder = _clonedFrom.HolderAddress(i);
            _balance = _clonedFrom.balanceOf(_holder);
            if (balances[_holder] == 0 && _balance != 0) {
                addHolder(_holder);
                createTokens(_holder, _balance);
            }
        }
    }
        
// Token creation

    function addHolder(address _holder) internal {
        
        if (holderID[_holder] == 0) {
            
            uint _holderID = holders.length++;
            holders[_holderID] = _holder;
            holderID[_holder] = _holderID;
        }
    }

    function createTokens(
        address _holder, 
        uint _tokenAmount) internal {

        balances[_holder] += _tokenAmount; 
        totalTokenSupply += _tokenAmount;
        TokensCreated(msg.sender, _holder, _tokenAmount);
    }
    
    function rewardTokensForClient(
        address _recipient, 
        uint _amount
        ) external onlyClient returns (uint) {

        uint _tokenAmount = TokenAmount(_amount, priceMultiplier(0), actualPriceDivisor(0));
        if (_tokenAmount == 0) throw;

        addHolder(_recipient);
        createTokens(_recipient, _tokenAmount);

        return _tokenAmount;
    }
    
    function setFundingRules(
        address _moderator,
        uint _initialPriceMultiplier,
        uint _amountToFund,
        uint _minutesFundingPeriod, 
        uint _inflationRate,
        uint _proposalID
    ) external onlyClient {

        if (_moderator == address(this)
            || _moderator == Client()
            || _amountToFund == 0
            || _minutesFundingPeriod == 0
            || fundings[_proposalID].totalWeiGiven != 0
            ) throw;
            
        fundings[_proposalID].moderator = _moderator;

        fundings[_proposalID].amountToFund = _amountToFund;
        fundings[_proposalID].fundedAmount = 0;

        if (_initialPriceMultiplier == 0) {
            if (now < fundings[0].closingTime) {
                fundings[_proposalID].initialPriceMultiplier = 100*priceMultiplier(lastProposalID)/actualPriceDivisor(lastProposalID);
            } else {
                fundings[_proposalID].initialPriceMultiplier = 100*priceMultiplier(lastFueledFundingID)/actualPriceDivisor(lastFueledFundingID);
            }
            fundings[0].initialPriceMultiplier = fundings[_proposalID].initialPriceMultiplier;
        }
        else {
            fundings[_proposalID].initialPriceMultiplier = _initialPriceMultiplier;
            fundings[0].initialPriceMultiplier = _initialPriceMultiplier;
        }
        
        if (_inflationRate == 0) fundings[_proposalID].inflationRate = fundings[0].inflationRate;
        else {
            fundings[_proposalID].inflationRate = _inflationRate;
            fundings[0].inflationRate = _inflationRate;
        }
        
        fundings[_proposalID].startTime = now;
        fundings[0].startTime = now;
        
        fundings[_proposalID].closingTime = now + _minutesFundingPeriod * 1 minutes;
        fundings[0].closingTime = fundings[_proposalID].closingTime;
        
        fundings[_proposalID].totalWeiGiven = 0;
        
        lastProposalID = _proposalID;
        
        FundingRulesSet(_moderator, _proposalID,  _amountToFund, fundings[_proposalID].startTime, fundings[_proposalID].closingTime);
    } 
    
    function sale(
        uint _proposalID,
        address _recipient, 
        uint _amount,
        uint _saleDate,
        bool _presale) internal returns (bool success) {

        if (_saleDate == 0) _saleDate = now;

        if (_saleDate > fundings[_proposalID].closingTime
            || _saleDate < fundings[_proposalID].startTime
            || fundings[_proposalID].totalWeiGiven + _amount > fundings[_proposalID].amountToFund) return;

        uint _tokenAmount = TokenAmount(_amount, priceMultiplier(_proposalID), priceDivisor(_proposalID, _saleDate));
        if (_tokenAmount == 0) return;
        
        addHolder(_recipient);
        if (_presale) {
            Given[_proposalID][_recipient].tokenAmount += _tokenAmount;
        }
        else createTokens(_recipient, _tokenAmount);

        return true;
    }

    function closeFunding(uint _proposalID) internal {
        fundings[_proposalID].fundedAmount = fundings[_proposalID].totalWeiGiven;
        lastFueledFundingID = _proposalID;
        fundings[_proposalID].closingTime = now;
        FundingFueled(_proposalID, fundings[_proposalID].fundedAmount);
    }

    function sendPendingAmounts(        
        uint _from,
        uint _to,
        address _buyer) returns (bool) {
        
        if (_from == 0) _from = 1;
        if (_to == 0) _to = lastProposalID;
        if (_buyer == 0) _buyer = msg.sender;

        uint _amount;
        uint _tokenAmount;
        
        for (uint i = _from; i <= _to; i++) {

            if (now > fundings[i].closingTime && Given[i][_buyer].weiAmount != 0) {
                
                if (fundings[i].fundedAmount == 0) _amount += Given[i][_buyer].weiAmount;
                else _tokenAmount += Given[i][_buyer].tokenAmount;

                fundings[i].totalWeiGiven -= Given[i][_buyer].weiAmount;
                Given[i][_buyer].tokenAmount = 0;
                Given[i][_buyer].weiAmount = 0;
            }
        }

        if (_tokenAmount > 0) {
            createTokens(_buyer, _tokenAmount);
            return true;
        }
        
        if (_amount > 0) {
            if (!_buyer.send(_amount)) throw;
            Refund(_buyer, _amount);
        } else return true;
    }
    

    function withdrawPendingAmounts() returns (bool) {
        
        return sendPendingAmounts(0, 0, msg.sender);
    }        

// Funding Moderator functions

    function setFundingStartTime(uint _proposalID, uint _startTime) external {
        if ((msg.sender !=  fundings[_proposalID].moderator) || now > fundings[_proposalID].closingTime) throw;
        fundings[_proposalID].startTime = _startTime;
    }

    function setFundingFueled(uint _proposalID) external {

        if ((msg.sender !=  fundings[_proposalID].moderator) || now > fundings[_proposalID].closingTime) throw;

        closeFunding(_proposalID);
    }
    
// Tokens transfer management    
    
    function ableTransfer() onlyClient {
        if (!transferable) {
            transferable = true;
            TransferAble();
        }
    }

    function disableTransfer() onlyClient {
        if (transferable) {
            transferable = false;
            TransferDisable();
        }
    }
    
    function blockTransfer(address _shareHolder, uint _deadLine) external onlyClient onlyShareManager {
        if (_deadLine > blockedDeadLine[_shareHolder]) {
            blockedDeadLine[_shareHolder] = _deadLine;
        }
    }
    
    function transferFromTo(
        address _from,
        address _to, 
        uint256 _value
        ) internal returns (bool success) {  

        if ((transferable)
            && now > blockedDeadLine[_from]
            && now > blockedDeadLine[_to]
            && _to != address(this)
            && balances[_from] >= _value
            && balances[_to] + _value > balances[_to]) {

            addHolder(_to);
            balances[_from] -= _value;
            balances[_to] += _value;
            Transfer(_from, _to, _value);
            return true;

        } else return false;
    }
    
    function transfer(address _to, uint256 _value) returns (bool success) {  
        if (!transferFromTo(msg.sender, _to, _value)) throw;
        return true;
    }

    function transferFrom(
        address _from, 
        address _to, 
        uint256 _value
        ) returns (bool success) { 
        
        if (allowed[_from][msg.sender] < _value
            || !transferFromTo(_from, _to, _value)) throw;
            
        allowed[_from][msg.sender] -= _value;
        return true;
    }

    function approve(address _spender, uint256 _value) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        return true;
    }
    
}
    


pragma solidity ^0.4.8;

/*
 *
 * This file is part of Pass DAO.
 *
 * The Manager smart contract is used for the management of the Dao account, shares and tokens.
 *
*/

/// @title Manager smart contract of the Pass Decentralized Autonomous Organisation
contract PassManager is PassTokenManager {
    
    struct order {
        address buyer;
        uint weiGiven;
    }
    // Orders to buy tokens
    order[] public orders;
    // Number or orders to buy tokens
    uint numberOfOrders;

    // Map to know if an order was cloned from the precedent manager after an upgrade
    mapping (uint => bool) orderCloned;
    
    function PassManager(
        PassDao _passDao,
        address _clonedFrom,
        string _tokenName,
        string _tokenSymbol,
        uint8 _tokenDecimals,
        bool _token,
        bool _transferable,
        uint _initialPriceMultiplier,
        uint _inflationRate) 
        PassTokenManager( _passDao, _clonedFrom, _tokenName, _tokenSymbol, _tokenDecimals, 
            _token, _transferable, _initialPriceMultiplier, _inflationRate) { }
    
    /// @notice Function to receive payments
    function () payable onlyShareManager { }
    
    /// @notice Function used by the client to send ethers
    /// @param _recipient The address to send to
    /// @param _amount The amount (in wei) to send
    /// @return Whether the transfer was successful or not
    function sendTo(
        address _recipient,
        uint _amount
    ) external onlyClient returns (bool) {

        if (_recipient.send(_amount)) return true;
        else return false;
    }

    /// @dev Internal function to buy tokens and promote a proposal 
    /// @param _proposalID The index of the proposal
    /// @param _buyer The address of the buyer
    /// @param _date The unix date to consider for the share or token price calculation
    /// @param _presale True if presale
    /// @return Whether the function was successful or not 
    function buyTokensFor(
        uint _proposalID,
        address _buyer, 
        uint _date,
        bool _presale) internal returns (bool) {

        if (_proposalID == 0 || !sale(_proposalID, _buyer, msg.value, _date, _presale)) throw;

        fundings[_proposalID].totalWeiGiven += msg.value;        
        if (fundings[_proposalID].totalWeiGiven == fundings[_proposalID].amountToFund) closeFunding(_proposalID);

        Given[_proposalID][_buyer].weiAmount += msg.value;
        
        return true;
    }
    
    /// @notice Function to buy tokens and promote a proposal 
    /// @param _proposalID The index of the proposal
    /// @param _buyer The address of the buyer (not mandatory, msg.sender if 0)
    /// @return Whether the function was successful or not 
    function buyTokensForProposal(
        uint _proposalID, 
        address _buyer) payable returns (bool) {

        if (_buyer == 0) _buyer = msg.sender;

        if (fundings[_proposalID].moderator != 0) throw;

        return buyTokensFor(_proposalID, _buyer, now, true);
    }

    /// @notice Function used by the moderator to buy shares or tokens
    /// @param _proposalID Index of the client proposal
    /// @param _buyer The address of the recipient of shares or tokens
    /// @param _date The unix date to consider for the share or token price calculation
    /// @param _presale True if presale
    /// @return Whether the function was successful or not 
    function buyTokenFromModerator(
        uint _proposalID,
        address _buyer, 
        uint _date,
        bool _presale) payable external returns (bool){

        if (msg.sender != fundings[_proposalID].moderator) throw;

        return buyTokensFor(_proposalID, _buyer, _date, _presale);
    }

    /// @dev Internal function to create a buy order
    /// @param _buyer The address of the buyer
    /// @param _weiGiven The amount in wei given by the buyer
    function addOrder(
        address _buyer, 
        uint _weiGiven) internal {

        uint i;
        numberOfOrders += 1;

        if (numberOfOrders > orders.length) i = orders.length++;
        else i = numberOfOrders - 1;
        
        orders[i].buyer = _buyer;
        orders[i].weiGiven = _weiGiven;
    }

    /// @dev Internal function to remove a buy order
    /// @param _order The index of the order to remove
    function removeOrder(uint _order) internal {
        
        if (numberOfOrders - 1 < _order) return;

        numberOfOrders -= 1;
        if (numberOfOrders > 0) {
            for (uint i = _order; i <= numberOfOrders - 1; i++) {
                orders[i].buyer = orders[i+1].buyer;
                orders[i].weiGiven = orders[i+1].weiGiven;
            }
        }
        orders[numberOfOrders].buyer = 0;
        orders[numberOfOrders].weiGiven = 0;
    }
    
    /// @notice Function to create orders to buy tokens
    /// @return Whether the function was successful or not
    function buyTokens() payable returns (bool) {

        if (!transferable || msg.value < 100 finney) throw;
        
        addOrder(msg.sender, msg.value);
        
        return true;
    }
    
    /// @notice Function to sell tokens
    /// @param _tokenAmount in tokens to sell
    /// @param _from Index of the first order
    /// @param _to Index of the last order
    /// @return the revenue in wei
    function sellTokens(
        uint _tokenAmount,
        uint _from,
        uint _to) returns (uint) {

        if (!transferable 
            || uint(balances[msg.sender]) < _amount 
            || numberOfOrders == 0) throw;
        
        if (_to == 0 || _to > numberOfOrders - 1) _to = numberOfOrders - 1;
        
        
        uint _tokenAmounto;
        uint _amount;
        uint _totalAmount;
        uint o = _from;

        for (uint i = _from; i <= _to; i++) {

            if (_tokenAmount > 0 && orders[o].buyer != msg.sender) {

                _tokenAmounto = TokenAmount(orders[o].weiGiven, priceMultiplier(0), actualPriceDivisor(0));

                if (_tokenAmount >= _tokenAmounto 
                    && transferFromTo(msg.sender, orders[o].buyer, _tokenAmounto)) {
                            
                    _tokenAmount -= _tokenAmounto;
                    _totalAmount += orders[o].weiGiven;
                    removeOrder(o);
                }
                else if (_tokenAmount < _tokenAmounto
                    && transferFromTo(msg.sender, orders[o].buyer, _tokenAmount)) {
                        
                    _amount = weiAmount(_tokenAmount, priceMultiplier(0), actualPriceDivisor(0));
                    orders[o].weiGiven -= _amount;
                    _totalAmount += _amount;
                    i = _to + 1;
                }
                else o += 1;
            } 
            else o += 1;
        }
        
        if (!msg.sender.send(_totalAmount)) throw;
        else return _totalAmount;
    }    

    /// @notice Function to remove your orders and refund
    /// @param _from Index of the first order
    /// @param _to Index of the last order
    /// @return Whether the function was successful or not
    function removeOrders(
        uint _from,
        uint _to) returns (bool) {

        if (_to == 0 || _to > numberOfOrders) _to = numberOfOrders -1;
        
        uint _totalAmount;
        uint o = _from;

        for (uint i = _from; i <= _to; i++) {

            if (orders[o].buyer == msg.sender) {
                
                _totalAmount += orders[o].weiGiven;
                removeOrder(o);

            } else o += 1;
        }

        if (!msg.sender.send(_totalAmount)) throw;
        else return true;
    }
    
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_buyer","type":"address"}],"name":"buyTokensForProposal","outputs":[{"name":"","type":"bool"}],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfHolders","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_quantity","type":"uint256"},{"name":"_last","type":"bool"}],"name":"initialTokenSupply","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"uint256"},{"name":"_to","type":"uint256"}],"name":"cloneTokens","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"Transferable","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"ableTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"}],"name":"setFundingFueled","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"}],"name":"rewardTokensForClient","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"LastProposalID","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_moderator","type":"address"},{"name":"_initialPriceMultiplier","type":"uint256"},{"name":"_amountToFund","type":"uint256"},{"name":"_minutesFundingPeriod","type":"uint256"},{"name":"_inflationRate","type":"uint256"},{"name":"_proposalID","type":"uint256"}],"name":"setFundingRules","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_shareHolder","type":"address"},{"name":"_deadLine","type":"uint256"}],"name":"blockTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_buyer","type":"address"},{"name":"_date","type":"uint256"},{"name":"_presale","type":"bool"}],"name":"buyTokenFromModerator","outputs":[{"name":"","type":"bool"}],"payable":true,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"Given","outputs":[{"name":"weiAmount","type":"uint256"},{"name":"tokenAmount","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"passDao","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_startTime","type":"uint256"}],"name":"setFundingStartTime","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"uint256"},{"name":"_to","type":"uint256"},{"name":"_buyer","type":"address"}],"name":"sendPendingAmounts","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_proposalID","type":"uint256"}],"name":"FundedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withdrawPendingAmounts","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenAmount","type":"uint256"},{"name":"_from","type":"uint256"},{"name":"_to","type":"uint256"}],"name":"sellTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"blockedDeadLine","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"lastFueledFundingID","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"uint256"},{"name":"_to","type":"uint256"}],"name":"removeOrders","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"Client","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"}],"name":"sendTo","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"orders","outputs":[{"name":"buyer","type":"address"},{"name":"weiGiven","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"disableTransfer","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"HolderAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_tokenAmount","type":"uint256"},{"name":"_proposalID","type":"uint256"}],"name":"TokenPriceInWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_proposalID","type":"uint256"}],"name":"AmountToFund","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[{"name":"","type":"bool"}],"payable":true,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"fundings","outputs":[{"name":"moderator","type":"address"},{"name":"amountToFund","type":"uint256"},{"name":"fundedAmount","type":"uint256"},{"name":"startTime","type":"uint256"},{"name":"closingTime","type":"uint256"},{"name":"initialPriceMultiplier","type":"uint256"},{"name":"inflationRate","type":"uint256"},{"name":"totalWeiGiven","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"clonedFrom","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_passDao","type":"address"},{"name":"_clonedFrom","type":"address"},{"name":"_tokenName","type":"string"},{"name":"_tokenSymbol","type":"string"},{"name":"_tokenDecimals","type":"uint8"},{"name":"_token","type":"bool"},{"name":"_transferable","type":"bool"},{"name":"_initialPriceMultiplier","type":"uint256"},{"name":"_inflationRate","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"Sender","type":"address"},{"indexed":true,"name":"TokenHolder","type":"address"},{"indexed":false,"name":"TokenAmount","type":"uint256"}],"name":"TokensCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"Moderator","type":"address"},{"indexed":true,"name":"ProposalId","type":"uint256"},{"indexed":false,"name":"AmountToFund","type":"uint256"},{"indexed":true,"name":"StartTime","type":"uint256"},{"indexed":false,"name":"ClosingTime","type":"uint256"}],"name":"FundingRulesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ProposalID","type":"uint256"},{"indexed":false,"name":"FundedAmount","type":"uint256"}],"name":"FundingFueled","type":"event"},{"anonymous":false,"inputs":[],"name":"TransferAble","type":"event"},{"anonymous":false,"inputs":[],"name":"TransferDisable","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"Buyer","type":"address"},{"indexed":false,"name":"Amount","type":"uint256"}],"name":"Refund","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052346200000057604051620027673803806200276783398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015196989586019694909501949293919290915b8888888888888888885b60008054600160a060020a03808c16600160a060020a031992831617835560018054338316931692909217825560068054918c1662010000026201000060b060020a031990921691909117905588516002805493819052926020601f93821615610100026000190190911684900483018190047f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9081019390918c01908390106200011e57805160ff19168380011785556200014e565b828001600101855582156200014e579182015b828111156200014e57825182559160200191906001019062000131565b5b50620001729291505b808211156200016e576000815560010162000158565b5090565b50508560039080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001c257805160ff1916838001178555620001f2565b82800160010185558215620001f2579182015b82811115620001f2578251825591602001919060010190620001d5565b5b50620002169291505b808211156200016e576000815560010162000158565b5090565b50506004805460ff1990811660ff881617909155600680549091168515151761ff0019166101008515150217905560008052600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7b8290557fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7c819055600780546001808355919082908015829011620002da57600083815260209020620002da9181019083015b808211156200016e576000815560010162000158565b5090565b5b505050505b5050505050505050505b5050505050505050505b61246380620003046000396000f300606060405236156101dc5763ffffffff60e060020a600035041662b172d781146101f65780630199c7b21461022157806306fdde0314610240578063095ea7b3146102cd5780630d7519a9146102fd5780630fc4af531461033257806318160ddd146103595780631bf9def014610378578063207bd99d1461039957806323b872dd146103a857806327e07647146103de578063313ce567146103f057806332990ad2146104135780633d18c6151461044157806347ad396b1461046057806348d9a3741461048a5780634913732e146104a85780634bdfa999146104db578063515635271461051057806358ce4b4814610539578063606224f81461054e57806364cb5338146105815780636dcd6eb9146105a3578063709ef231146105c457806370a08231146105ec5780637e86f8e51461061757806381ef93ae14610642578063868eb6bf146106615780638eaa9c911461068857806395d89b41146106b15780639e1a00aa1461073e578063a85c38ef1461076e578063a9059cbb146107a1578063b187984f146107d1578063b1a1318a146107e0578063c1e6c5061461080c578063cef24cac14610831578063d0febe4c14610853578063d13cb1fb1461086f578063d179eb71146108ca578063dd62ed3e146108f3575b6101f45b60065460ff16156101f057610000565b5b5b565b005b61020d600435600160a060020a0360243516610924565b604080519115158252519081900360200190f35b346100005761022e610972565b60408051918252519081900360200190f35b346100005761024d61097d565b604080516020808252835181830152835191928392908301918501908083838215610293575b80518252602083111561029357601f199092019160209182019101610273565b505050905090810190601f1680156102bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b346100005761020d600160a060020a0360043516602435610a08565b604080519115158252519081900360200190f35b346100005761020d600160a060020a03600435166024356044351515610a39565b604080519115158252519081900360200190f35b346100005761020d600435602435610aab565b604080519115158252519081900360200190f35b346100005761022e610c88565b60408051918252519081900360200190f35b346100005761020d610c8f565b604080519115158252519081900360200190f35b34610000576101f4610c9e565b005b346100005761020d600160a060020a0360043581169060243516604435610d13565b604080519115158252519081900360200190f35b34610000576101f4600435610d94565b005b34610000576103fd610de5565b6040805160ff9092168252519081900360200190f35b346100005761022e600160a060020a0360043516602435610dee565b60408051918252519081900360200190f35b346100005761022e610e63565b60408051918252519081900360200190f35b34610000576101f4600160a060020a036004351660243560443560643560843560a435610e6a565b005b34610000576101f4600160a060020a036004351660243561119c565b005b61020d600435600160a060020a03602435166044356064351515611216565b604080519115158252519081900360200190f35b34610000576104f7600435600160a060020a0360243516611254565b6040805192835260208301919091528051918290030190f35b346100005761051d611278565b60408051600160a060020a039092168252519081900360200190f35b34610000576101f4600435602435611287565b005b346100005761020d600435602435600160a060020a03604435166112e4565b604080519115158252519081900360200190f35b346100005761022e6004356114d3565b60408051918252519081900360200190f35b346100005761020d6114eb565b604080519115158252519081900360200190f35b346100005761022e600435602435604435611500565b60408051918252519081900360200190f35b346100005761022e600160a060020a036004351661177b565b60408051918252519081900360200190f35b346100005761022e600160a060020a036004351661179a565b60408051918252519081900360200190f35b346100005761022e6117ac565b60408051918252519081900360200190f35b346100005761020d6004356024356117b2565b604080519115158252519081900360200190f35b346100005761051d61189b565b60408051600160a060020a039092168252519081900360200190f35b346100005761024d611911565b604080516020808252835181830152835191928392908301918501908083838215610293575b80518252602083111561029357601f199092019160209182019101610273565b505050905090810190601f1680156102bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b346100005761020d600160a060020a036004351660243561199f565b604080519115158252519081900360200190f35b346100005761077e600435611a0a565b60408051600160a060020a03909316835260208301919091528051918290030190f35b346100005761020d600160a060020a0360043516602435611a40565b604080519115158252519081900360200190f35b34610000576101f4611a62565b005b346100005761051d600435611ad2565b60408051600160a060020a039092168252519081900360200190f35b346100005761022e600435602435611b08565b60408051918252519081900360200190f35b346100005761022e600435611b2e565b60408051918252519081900360200190f35b61020d611b88565b604080519115158252519081900360200190f35b346100005761087f600435611bc4565b60408051600160a060020a0390991689526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b346100005761051d611c11565b60408051600160a060020a039092168252519081900360200190f35b346100005761022e600160a060020a0360043581169060243516611c26565b60408051918252519081900360200190f35b6000600160a060020a038216151561093a573391505b6000838152600b6020526040902054600160a060020a03161561095c57610000565b6109698383426001611c53565b90505b92915050565b600754600019015b90565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610a005780601f106109d557610100808354040283529160200191610a00565b820191906000526020600020905b8154815290600101906020018083116109e357829003601f168201915b505050505081565b600160a060020a033381166000908152600a6020908152604080832093861683529290522081905560015b92915050565b60065460009060b060020a900460ff1615610a5357610000565b610a5c84611cda565b600160a060020a03841615801590610a7357508215155b15610a8257610a828484611d94565b5b8115610aa0576006805460b060020a60ff02191660b060020a1790555b5060015b9392505050565b6006805460b060020a60ff02191660b060020a17905560008080808080871515610ad457600197505b600660029054906101000a9004600160a060020a0316945084600160a060020a0316630199c7b26000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151945050861580610b4e57508387115b15610b57578396505b50865b868111610c7c5784600160a060020a031663b1a1318a826000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b156100005760325a03f1156100005750505060405180519050925084600160a060020a03166370a08231846000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b156100005760325a03f1156100005750506040805151600160a060020a0386166000908152600960205291909120549093501590508015610c5a57508115155b15610c7257610c6883611cda565b610c728383611d94565b5b5b600101610b5a565b5b505050505092915050565b6005545b90565b600654610100900460ff165b90565b610ca661189b565b600160a060020a031633600160a060020a0316141515610cc557610000565b600654610100900460ff1615156101f0576006805461ff0019166101001790556040517fefda599ce099c9bb0830c891a11114c6fd27a279c7e15e1e1989f3839e75230090600090a15b5b5b565b600160a060020a038084166000908152600a602090815260408083203390941683529290529081205482901080610d525750610d50848484611dfa565b155b15610d5c57610000565b50600160a060020a038084166000908152600a60209081526040808320339094168352929052208054829003905560015b9392505050565b6000818152600b602052604090205433600160a060020a039081169116141580610dce57506000818152600b602052604090206004015442115b15610dd857610000565b610de181611f43565b5b50565b60045460ff1681565b60006000610dfa61189b565b600160a060020a031633600160a060020a0316141515610e1957610000565b610e3683610e276000611fa7565b610e316000611fbf565b611fd3565b9050801515610e4457610000565b610e4d84611cda565b610e578482611d94565b8091505b5b5092915050565b600c545b90565b610e7261189b565b600160a060020a031633600160a060020a0316141515610e9157610000565b30600160a060020a031686600160a060020a03161480610ec95750610eb461189b565b600160a060020a031686600160a060020a0316145b80610ed2575083155b80610edb575082155b80610ef657506000818152600b602052604090206007015415155b15610f0057610000565b6000818152600b602052604081208054600160a060020a031916600160a060020a03891617815560018101869055600201558415156110195760008052600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7a54421015610fa657610f76600c54611fbf565b610f81600c54611fa7565b6064028115610000576000838152600b60205260409020919004600590910155610fdd565b610fb1600d54611fbf565b610fbc600d54611fa7565b6064028115610000576000838152600b602052604090209190046005909101555b6000818152600b60205260408120600501549080527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7b55611054565b6000818152600b6020526040812060050186905580527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7b8590555b81151561109457600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7c54600082815260409020600601556110cf565b6000818152600b6020526040812060060183905580527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7c8290555b6000818152600b6020908152604080832042600382018181557fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f79829055603c8902909101600483018181557fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7a91909155600790920194909455600c8590559254925481518881529283015280518492600160a060020a038b16927f0557df9989d7678468fdf90f634aebe3d8a7a5b0c721621745cc9b91a910b93092918290030190a45b5b505050505050565b6111a461189b565b600160a060020a031633600160a060020a03161415156111c357610000565b60065460ff16156111d357610000565b600160a060020a0382166000908152600f602052604090205481111561120f57600160a060020a0382166000908152600f602052604090208190555b5b5b5b5050565b6000848152600b602052604081205433600160a060020a0390811691161461123d57610000565b61124985858585611c53565b90505b949350505050565b600e6020908152600092835260408084209091529082529020805460019091015482565b600054600160a060020a031681565b6000828152600b602052604090205433600160a060020a0390811691161415806112c157506000828152600b602052604090206004015442115b156112cb57610000565b6000828152600b602052604090206003018190555b5050565b60008080808615156112f557600196505b85151561130257600c5495505b600160a060020a0385161515611316573394505b50855b85811161142a576000818152600b60205260409020600401544211801561136157506000818152600e60209081526040808320600160a060020a038916845290915290205415155b15611421576000818152600b602052604090206002015415156113ab576000818152600e60209081526040808320600160a060020a038916845290915290205492909201916113d7565b6000818152600e60209081526040808320600160a060020a038916845290915290206001015491909101905b6000818152600e60209081526040808320600160a060020a0389168085528184528285208054878752600b8652938620600701805494909403909355600183018590558452909152555b5b600101611319565b60008211156114465761143d8583611d94565b600193506114c8565b600083111561143d57604051600160a060020a0386169084156108fc029085906000818181858888f19350505050151561147f57610000565b604080518481529051600160a060020a038716917fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d919081900360200190a26114c8565b600193505b5b5050509392505050565b6000818152600b60205260409020600201545b919050565b60006114fa60006000336112e4565b90505b90565b600060006000600060006000600660019054906101000a900460ff1615806115405750600160a060020a0333166000908152600960205260409020548490105b8061154b5750601154155b1561155557610000565b861580611566575060016011540387115b156115745760016011540396505b50869050805b86811161173a576000891180156115c1575033600160a060020a0316601083815481101561000057906000526020600020906002020160005b5054600160a060020a031614155b1561172a57611604601083815481101561000057906000526020600020906002020160005b5060010154610e276000611fa7565b610e316000611fbf565b611fd3565b9450848910158015611643575061164333601084815481101561000057906000526020600020906002020160005b5054600160a060020a031687611dfa565b5b15611682578489039850601082815481101561000057906000526020600020906002020160005b50600101548301925061167d8261201e565b611724565b84891080156116be57506116be33601084815481101561000057906000526020600020906002020160005b5054600160a060020a03168b611dfa565b5b1561171d576116e1896116d26000611fa7565b6116dc6000611fbf565b612181565b935083601083815481101561000057906000526020600020906002020160005b5060019081018054929092039091559284019287019050611724565b6001820191505b5b611731565b6001820191505b5b60010161157a565b604051600160a060020a0333169084156108fc029085906000818181858888f19350505050151561176a57610000565b8295505b5b50505050509392505050565b600160a060020a0381166000908152600960205260409020545b919050565b600f6020526000908152604090205481565b600d5481565b60008080808415806117c5575060115485115b156117d35760016011540394505b50849050805b84811161185c5733600160a060020a0316601083815481101561000057906000526020600020906002020160005b5054600160a060020a0316141561184c57601082815481101561000057906000526020600020906002020160005b5060010154830192506118478261201e565b611853565b6001820191505b5b6001016117d9565b604051600160a060020a0333169084156108fc029085906000818181858888f19350505050151561188c57610000565b600193505b5b50505092915050565b6000805460408051602090810184905281517fe934ab0c0000000000000000000000000000000000000000000000000000000081529151600160a060020a039093169263e934ab0c92600480820193929182900301818787803b156100005760325a03f115610000575050604051519150505b90565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a005780601f106109d557610100808354040283529160200191610a00565b820191906000526020600020905b8154815290600101906020018083116109e357829003601f168201915b505050505081565b60006119a961189b565b600160a060020a031633600160a060020a03161415156119c857610000565b604051600160a060020a0384169083156108fc029084906000818181858888f19350505050156119fa5750600161096c565b50600061096c565b5b5b92915050565b601081815481101561000057906000526020600020906002020160005b508054600190910154600160a060020a03909116915082565b6000611a4d338484611dfa565b1515611a5857610000565b5060015b92915050565b611a6a61189b565b600160a060020a031633600160a060020a0316141515611a8957610000565b600654610100900460ff16156101f0576006805461ff00191690556040517fd38e5ab7b9af65a1ec71c885bbc984cb5bffc7e03481124e73b038b7f0bc5aad90600090a15b5b5b565b6000600782815481101561000057906000526020600020900160005b9054906101000a9004600160a060020a031690505b919050565b600061096983611b1784611fa7565b6116dc85611fbf565b612181565b90505b92915050565b6000818152600b6020526040812060040154421180611b5d57506000828152600b602052604090206003015442105b15611b6a575060006114e6565b506000818152600b60205260409020600101546114e6565b5b919050565b600654600090610100900460ff161580611ba9575067016345785d8a000034105b15611bb357610000565b611bbd33346121cc565b5060015b90565b600b6020526000908152604090208054600182015460028301546003840154600485015460058601546006870154600790970154600160a060020a03909616969495939492939192909188565b600654620100009004600160a060020a031681565b600160a060020a038083166000908152600a60209081526040808320938516835292905220545b92915050565b6000841580611c6c5750611c6a85853486866122bb565b155b15611c7657610000565b6000858152600b602052604090206007810180543401908190556001909101541415611ca557611ca585611f43565b5b506000848152600e60209081526040808320600160a060020a0387168452909152902080543401905560015b949350505050565b600160a060020a038116600090815260086020526040812054151561120f5760078054809190600101815481835581811511611d3b57600083815260209020611d3b9181019083015b80821115611d375760008155600101611d23565b5090565b5b505050905081600782815481101561000057906000526020600020900160005b8154600160a060020a039384166101009290920a9182029184021916179055821660009081526008602052604090208190555b5b5050565b600160a060020a0380831660008181526009602090815260409182902080548601905560058054860190558151858152915192933316927f44191d9d88938653f01b311b729bd73496afd8b6a29d9e2657604c7df387c9c39281900390910190a35b5050565b600654600090610100900460ff168015611e2b5750600160a060020a0384166000908152600f602052604090205442115b8015611e4e5750600160a060020a0383166000908152600f602052604090205442115b8015611e6c575030600160a060020a031683600160a060020a031614155b8015611e915750600160a060020a038416600090815260096020526040902054829010155b8015611eb65750600160a060020a038316600090815260096020526040902054828101115b15611f3357611ec483611cda565b600160a060020a03808516600081815260096020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610aa4565b506000610aa4565b5b9392505050565b6000818152600b6020908152604091829020600781015460028201908155600d85905542600490920191909155548251908152915183927f103728a3545155be65825de25e9aa020695253efc8f66899223a060b471d5ea092908290030190a25b50565b6000818152600b60205260409020600501545b919050565b6000611fcb82426123a8565b90505b919050565b600083830260648102828482811561000057049050858784811561000057041415806120025750826064830414155b1561201057600093506114c8565b8093505b5050509392505050565b60008160016011540310156120325761120f565b60118054600019019081905560009011156121135750805b60115460001901811161211357601081600101815481101561000057906000526020600020906002020160005b505460108054600160a060020a0390921691839081101561000057906000526020600020906002020160005b508054600160a060020a031916600160a060020a039290921691909117905560108054600183019081101561000057906000526020600020906002020160005b5060010154601082815481101561000057906000526020600020906002020160005b50600101555b60010161204a565b5b60006010601154815481101561000057906000526020600020906002020160005b508054600160a060020a031916600160a060020a0392909216919091179055601154601080546000929081101561000057906000526020600020906002020160005b50600101555b5050565b600083820260648402828183811561000057049050848784811561000057041415806120025750856064830414155b1561201057600093506114c8565b8093505b5050509392505050565b60118054600101908190556010546000911115612249576010805480919060010181548183558181151161223e5760020281600202836000526020600020918201910161223e91905b80821115611d37578054600160a060020a031916815560006001820155600201612215565b5090565b5b5050509050612252565b50601154600019015b82601082815481101561000057906000526020600020906002020160005b508054600160a060020a031916600160a060020a039290921691909117905560108054839190839081101561000057906000526020600020906002020160005b50600101555b505050565b6000808315156122c9574293505b6000878152600b60205260409020600401548411806122f857506000878152600b602052604090206003015484105b8061231b57506000878152600b6020526040902060018101546007909101548601115b156123255761239e565b6123418561233289611fa7565b610e318a886123a8565b611fd3565b905080151561234f5761239e565b61235886611cda565b821561238e576000878152600e60209081526040808320600160a060020a038a1684529091529020600101805482019055612398565b6123988682611d94565b5b600191505b5095945050505050565b6000828152600b602052604081206004015482908111156123d757506000838152600b60205260409020600401545b6000848152600b602052604090206003015483101561240457506000838152600b60205260409020600301545b6000848152600b60205260409020600381015460069091015463bbf81e00918303026064020460640191505b50929150505600a165627a7a723058204af547fcf6feffe959a8bb0639fe882a3b7f71da6fdea3759ac76fbd6d4335380029

    Constructor Arguments (ABI-encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ad2d970edff30d8f166989470aaf4be3ff6375ae000000000000000000000000687b8760ffdc4b6649f457173647b855fcb322680000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000000a5061737320546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045041535300000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Found 13 constructor arguments :
Arg [0] : 000000000000000000000000ad2d970edff30d8f166989470aaf4be3ff6375ae
Arg [1] : 000000000000000000000000687b8760ffdc4b6649f457173647b855fcb32268
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [7] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [8] : 000000000000000000000000000000000000000000000000000000000000016d
Arg [9] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [10] : 5061737320546f6b656e00000000000000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [12] : 5041535300000000000000000000000000000000000000000000000000000000


   Swarm Source:
bzzr://4af547fcf6feffe959a8bb0639fe882a3b7f71da6fdea3759ac76fbd6d433538

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.