ETH Price: $3,097.17 (+3.74%)
Gas: 39 Gwei

Contract

0x85bC00724203D53536072b000C44A2cc16CD12C5
 

Overview

ETH Balance

0.2 ETH

Eth Value

$619.43 (@ $3,097.17/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Remove Orders183211492023-10-10 16:08:23138 days 4 hrs ago1696954103IN
0x85bC00...16CD12C5
0 ETH0.0003774514.95533785
Withdraw Pending...104729462020-07-16 21:27:181318 days 23 hrs ago1594934838IN
0x85bC00...16CD12C5
0 ETH0.0007791434
Transfer82019612019-07-22 18:06:251679 days 2 hrs ago1563818785IN
0x85bC00...16CD12C5
0.001 ETH0.00056164.8
Withdraw Pending...78363542019-05-26 16:42:111736 days 4 hrs ago1558888931IN
0x85bC00...16CD12C5
0 ETH0.000033781.5
Withdraw Pending...52567952018-03-15 0:55:412173 days 20 hrs ago1521075341IN
0x85bC00...16CD12C5
0 ETH0.0009234841
Withdraw Pending...52286542018-03-10 5:55:162178 days 15 hrs ago1520661316IN
0x85bC00...16CD12C5
0 ETH0.00047321
Withdraw Pending...51292222018-02-21 8:31:362195 days 12 hrs ago1519201896IN
0x85bC00...16CD12C5
0 ETH0.0004504820
Sell Tokens49403452018-01-20 11:50:502227 days 9 hrs ago1516449050IN
0x85bC00...16CD12C5
0 ETH0.000191057
Withdraw Pending...49319722018-01-19 0:47:082228 days 20 hrs ago1516322828IN
0x85bC00...16CD12C5
0 ETH0.0004504820
Withdraw Pending...47594012017-12-19 10:13:382259 days 10 hrs ago1513678418IN
0x85bC00...16CD12C5
0 ETH0.00047321
Sell Tokens45447352017-11-13 11:57:152295 days 9 hrs ago1510574235IN
0x85bC00...16CD12C5
0 ETH0.0005234221
Buy Tokens45343192017-11-11 19:57:282297 days 1 hr ago1510430248IN
0x85bC00...16CD12C5
0 ETH0.00073521
Buy Tokens45343102017-11-11 19:56:082297 days 1 hr ago1510430168IN
0x85bC00...16CD12C5
0.00001 ETH0.0006321
Withdraw Pending...44644512017-10-31 14:22:112308 days 6 hrs ago1509459731IN
0x85bC00...16CD12C5
0.01 ETH0.0018921
Setup Token41913702017-08-22 20:03:062378 days 59 mins ago1503432186IN
0x85bC00...16CD12C5
0 ETH0.004221
Sell Tokens40706502017-07-25 7:36:282406 days 13 hrs ago1500968188IN
0x85bC00...16CD12C5
0 ETH0.0005234221
Withdraw Pending...39152422017-06-22 23:13:052438 days 21 hrs ago1498173185IN
0x85bC00...16CD12C5
0 ETH0.0013514460
Withdraw Pending...37950232017-05-30 22:35:192461 days 22 hrs ago1496183719IN
0x85bC00...16CD12C5
0 ETH0.00047321
Buy Tokens37635372017-05-25 5:10:132467 days 15 hrs ago1495689013IN
0x85bC00...16CD12C5
0.2 ETH0.0017700921
Withdraw Pending...36942492017-05-12 12:07:042480 days 8 hrs ago1494590824IN
0x85bC00...16CD12C5
0.1 ETH0.0005818220
Withdraw Pending...36430022017-05-03 11:21:272489 days 9 hrs ago1493810487IN
0x85bC00...16CD12C5
0 ETH0.0005818220
Withdraw Pending...35199322017-04-12 2:26:272510 days 18 hrs ago1491963987IN
0x85bC00...16CD12C5
0.01 ETH0.0005818220
Withdraw Pending...35121582017-04-10 18:22:322512 days 2 hrs ago1491848552IN
0x85bC00...16CD12C5
0 ETH0.0004504820
Buy Tokens For P...32248632017-02-21 15:42:132560 days 5 hrs ago1487691733IN
0x85bC00...16CD12C5
0 ETH0.0011927341
Sell Tokens31478282017-02-08 21:30:212572 days 23 hrs ago1486589421IN
0x85bC00...16CD12C5
0 ETH0.0013921141
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Txn Hash Block From To Value
31478282017-02-08 21:30:212572 days 23 hrs ago1486589421
0x85bC00...16CD12C5
0.1 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PassManager

Compiler Version
v0.4.8+commit.60cc1668

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-02-08
*/

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 Security Audit

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"}]

6060604052346200000057604051620027673803806200276783398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015196989586019694909501949293919290915b8888888888888888885b60008054600160a060020a03808c16600160a060020a031992831617835560018054338316931692909217825560068054918c1662010000026201000060b060020a031990921691909117905588516002805493819052926020601f93821615610100026000190190911684900483018190047f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9081019390918c01908390106200011e57805160ff19168380011785556200014e565b828001600101855582156200014e579182015b828111156200014e57825182559160200191906001019062000131565b5b50620001729291505b808211156200016e576000815560010162000158565b5090565b50508560039080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001c257805160ff1916838001178555620001f2565b82800160010185558215620001f2579182015b82811115620001f2578251825591602001919060010190620001d5565b5b50620002169291505b808211156200016e576000815560010162000158565b5090565b50506004805460ff1990811660ff881617909155600680549091168515151761ff0019166101008515150217905560008052600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7b8290557fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7c819055600780546001808355919082908015829011620002da57600083815260209020620002da9181019083015b808211156200016e576000815560010162000158565b5090565b5b505050505b5050505050505050505b5050505050505050505b61246380620003046000396000f300606060405236156101dc5763ffffffff60e060020a600035041662b172d781146101f65780630199c7b21461022157806306fdde0314610240578063095ea7b3146102cd5780630d7519a9146102fd5780630fc4af531461033257806318160ddd146103595780631bf9def014610378578063207bd99d1461039957806323b872dd146103a857806327e07647146103de578063313ce567146103f057806332990ad2146104135780633d18c6151461044157806347ad396b1461046057806348d9a3741461048a5780634913732e146104a85780634bdfa999146104db578063515635271461051057806358ce4b4814610539578063606224f81461054e57806364cb5338146105815780636dcd6eb9146105a3578063709ef231146105c457806370a08231146105ec5780637e86f8e51461061757806381ef93ae14610642578063868eb6bf146106615780638eaa9c911461068857806395d89b41146106b15780639e1a00aa1461073e578063a85c38ef1461076e578063a9059cbb146107a1578063b187984f146107d1578063b1a1318a146107e0578063c1e6c5061461080c578063cef24cac14610831578063d0febe4c14610853578063d13cb1fb1461086f578063d179eb71146108ca578063dd62ed3e146108f3575b6101f45b60065460ff16156101f057610000565b5b5b565b005b61020d600435600160a060020a0360243516610924565b604080519115158252519081900360200190f35b346100005761022e610972565b60408051918252519081900360200190f35b346100005761024d61097d565b604080516020808252835181830152835191928392908301918501908083838215610293575b80518252602083111561029357601f199092019160209182019101610273565b505050905090810190601f1680156102bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b346100005761020d600160a060020a0360043516602435610a08565b604080519115158252519081900360200190f35b346100005761020d600160a060020a03600435166024356044351515610a39565b604080519115158252519081900360200190f35b346100005761020d600435602435610aab565b604080519115158252519081900360200190f35b346100005761022e610c88565b60408051918252519081900360200190f35b346100005761020d610c8f565b604080519115158252519081900360200190f35b34610000576101f4610c9e565b005b346100005761020d600160a060020a0360043581169060243516604435610d13565b604080519115158252519081900360200190f35b34610000576101f4600435610d94565b005b34610000576103fd610de5565b6040805160ff9092168252519081900360200190f35b346100005761022e600160a060020a0360043516602435610dee565b60408051918252519081900360200190f35b346100005761022e610e63565b60408051918252519081900360200190f35b34610000576101f4600160a060020a036004351660243560443560643560843560a435610e6a565b005b34610000576101f4600160a060020a036004351660243561119c565b005b61020d600435600160a060020a03602435166044356064351515611216565b604080519115158252519081900360200190f35b34610000576104f7600435600160a060020a0360243516611254565b6040805192835260208301919091528051918290030190f35b346100005761051d611278565b60408051600160a060020a039092168252519081900360200190f35b34610000576101f4600435602435611287565b005b346100005761020d600435602435600160a060020a03604435166112e4565b604080519115158252519081900360200190f35b346100005761022e6004356114d3565b60408051918252519081900360200190f35b346100005761020d6114eb565b604080519115158252519081900360200190f35b346100005761022e600435602435604435611500565b60408051918252519081900360200190f35b346100005761022e600160a060020a036004351661177b565b60408051918252519081900360200190f35b346100005761022e600160a060020a036004351661179a565b60408051918252519081900360200190f35b346100005761022e6117ac565b60408051918252519081900360200190f35b346100005761020d6004356024356117b2565b604080519115158252519081900360200190f35b346100005761051d61189b565b60408051600160a060020a039092168252519081900360200190f35b346100005761024d611911565b604080516020808252835181830152835191928392908301918501908083838215610293575b80518252602083111561029357601f199092019160209182019101610273565b505050905090810190601f1680156102bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b346100005761020d600160a060020a036004351660243561199f565b604080519115158252519081900360200190f35b346100005761077e600435611a0a565b60408051600160a060020a03909316835260208301919091528051918290030190f35b346100005761020d600160a060020a0360043516602435611a40565b604080519115158252519081900360200190f35b34610000576101f4611a62565b005b346100005761051d600435611ad2565b60408051600160a060020a039092168252519081900360200190f35b346100005761022e600435602435611b08565b60408051918252519081900360200190f35b346100005761022e600435611b2e565b60408051918252519081900360200190f35b61020d611b88565b604080519115158252519081900360200190f35b346100005761087f600435611bc4565b60408051600160a060020a0390991689526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b346100005761051d611c11565b60408051600160a060020a039092168252519081900360200190f35b346100005761022e600160a060020a0360043581169060243516611c26565b60408051918252519081900360200190f35b6000600160a060020a038216151561093a573391505b6000838152600b6020526040902054600160a060020a03161561095c57610000565b6109698383426001611c53565b90505b92915050565b600754600019015b90565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610a005780601f106109d557610100808354040283529160200191610a00565b820191906000526020600020905b8154815290600101906020018083116109e357829003601f168201915b505050505081565b600160a060020a033381166000908152600a6020908152604080832093861683529290522081905560015b92915050565b60065460009060b060020a900460ff1615610a5357610000565b610a5c84611cda565b600160a060020a03841615801590610a7357508215155b15610a8257610a828484611d94565b5b8115610aa0576006805460b060020a60ff02191660b060020a1790555b5060015b9392505050565b6006805460b060020a60ff02191660b060020a17905560008080808080871515610ad457600197505b600660029054906101000a9004600160a060020a0316945084600160a060020a0316630199c7b26000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151945050861580610b4e57508387115b15610b57578396505b50865b868111610c7c5784600160a060020a031663b1a1318a826000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b156100005760325a03f1156100005750505060405180519050925084600160a060020a03166370a08231846000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b156100005760325a03f1156100005750506040805151600160a060020a0386166000908152600960205291909120549093501590508015610c5a57508115155b15610c7257610c6883611cda565b610c728383611d94565b5b5b600101610b5a565b5b505050505092915050565b6005545b90565b600654610100900460ff165b90565b610ca661189b565b600160a060020a031633600160a060020a0316141515610cc557610000565b600654610100900460ff1615156101f0576006805461ff0019166101001790556040517fefda599ce099c9bb0830c891a11114c6fd27a279c7e15e1e1989f3839e75230090600090a15b5b5b565b600160a060020a038084166000908152600a602090815260408083203390941683529290529081205482901080610d525750610d50848484611dfa565b155b15610d5c57610000565b50600160a060020a038084166000908152600a60209081526040808320339094168352929052208054829003905560015b9392505050565b6000818152600b602052604090205433600160a060020a039081169116141580610dce57506000818152600b602052604090206004015442115b15610dd857610000565b610de181611f43565b5b50565b60045460ff1681565b60006000610dfa61189b565b600160a060020a031633600160a060020a0316141515610e1957610000565b610e3683610e276000611fa7565b610e316000611fbf565b611fd3565b9050801515610e4457610000565b610e4d84611cda565b610e578482611d94565b8091505b5b5092915050565b600c545b90565b610e7261189b565b600160a060020a031633600160a060020a0316141515610e9157610000565b30600160a060020a031686600160a060020a03161480610ec95750610eb461189b565b600160a060020a031686600160a060020a0316145b80610ed2575083155b80610edb575082155b80610ef657506000818152600b602052604090206007015415155b15610f0057610000565b6000818152600b602052604081208054600160a060020a031916600160a060020a03891617815560018101869055600201558415156110195760008052600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7a54421015610fa657610f76600c54611fbf565b610f81600c54611fa7565b6064028115610000576000838152600b60205260409020919004600590910155610fdd565b610fb1600d54611fbf565b610fbc600d54611fa7565b6064028115610000576000838152600b602052604090209190046005909101555b6000818152600b60205260408120600501549080527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7b55611054565b6000818152600b6020526040812060050186905580527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7b8590555b81151561109457600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7c54600082815260409020600601556110cf565b6000818152600b6020526040812060060183905580527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7c8290555b6000818152600b6020908152604080832042600382018181557fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f79829055603c8902909101600483018181557fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7a91909155600790920194909455600c8590559254925481518881529283015280518492600160a060020a038b16927f0557df9989d7678468fdf90f634aebe3d8a7a5b0c721621745cc9b91a910b93092918290030190a45b5b505050505050565b6111a461189b565b600160a060020a031633600160a060020a03161415156111c357610000565b60065460ff16156111d357610000565b600160a060020a0382166000908152600f602052604090205481111561120f57600160a060020a0382166000908152600f602052604090208190555b5b5b5b5050565b6000848152600b602052604081205433600160a060020a0390811691161461123d57610000565b61124985858585611c53565b90505b949350505050565b600e6020908152600092835260408084209091529082529020805460019091015482565b600054600160a060020a031681565b6000828152600b602052604090205433600160a060020a0390811691161415806112c157506000828152600b602052604090206004015442115b156112cb57610000565b6000828152600b602052604090206003018190555b5050565b60008080808615156112f557600196505b85151561130257600c5495505b600160a060020a0385161515611316573394505b50855b85811161142a576000818152600b60205260409020600401544211801561136157506000818152600e60209081526040808320600160a060020a038916845290915290205415155b15611421576000818152600b602052604090206002015415156113ab576000818152600e60209081526040808320600160a060020a038916845290915290205492909201916113d7565b6000818152600e60209081526040808320600160a060020a038916845290915290206001015491909101905b6000818152600e60209081526040808320600160a060020a0389168085528184528285208054878752600b8652938620600701805494909403909355600183018590558452909152555b5b600101611319565b60008211156114465761143d8583611d94565b600193506114c8565b600083111561143d57604051600160a060020a0386169084156108fc029085906000818181858888f19350505050151561147f57610000565b604080518481529051600160a060020a038716917fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d919081900360200190a26114c8565b600193505b5b5050509392505050565b6000818152600b60205260409020600201545b919050565b60006114fa60006000336112e4565b90505b90565b600060006000600060006000600660019054906101000a900460ff1615806115405750600160a060020a0333166000908152600960205260409020548490105b8061154b5750601154155b1561155557610000565b861580611566575060016011540387115b156115745760016011540396505b50869050805b86811161173a576000891180156115c1575033600160a060020a0316601083815481101561000057906000526020600020906002020160005b5054600160a060020a031614155b1561172a57611604601083815481101561000057906000526020600020906002020160005b5060010154610e276000611fa7565b610e316000611fbf565b611fd3565b9450848910158015611643575061164333601084815481101561000057906000526020600020906002020160005b5054600160a060020a031687611dfa565b5b15611682578489039850601082815481101561000057906000526020600020906002020160005b50600101548301925061167d8261201e565b611724565b84891080156116be57506116be33601084815481101561000057906000526020600020906002020160005b5054600160a060020a03168b611dfa565b5b1561171d576116e1896116d26000611fa7565b6116dc6000611fbf565b612181565b935083601083815481101561000057906000526020600020906002020160005b5060019081018054929092039091559284019287019050611724565b6001820191505b5b611731565b6001820191505b5b60010161157a565b604051600160a060020a0333169084156108fc029085906000818181858888f19350505050151561176a57610000565b8295505b5b50505050509392505050565b600160a060020a0381166000908152600960205260409020545b919050565b600f6020526000908152604090205481565b600d5481565b60008080808415806117c5575060115485115b156117d35760016011540394505b50849050805b84811161185c5733600160a060020a0316601083815481101561000057906000526020600020906002020160005b5054600160a060020a0316141561184c57601082815481101561000057906000526020600020906002020160005b5060010154830192506118478261201e565b611853565b6001820191505b5b6001016117d9565b604051600160a060020a0333169084156108fc029085906000818181858888f19350505050151561188c57610000565b600193505b5b50505092915050565b6000805460408051602090810184905281517fe934ab0c0000000000000000000000000000000000000000000000000000000081529151600160a060020a039093169263e934ab0c92600480820193929182900301818787803b156100005760325a03f115610000575050604051519150505b90565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a005780601f106109d557610100808354040283529160200191610a00565b820191906000526020600020905b8154815290600101906020018083116109e357829003601f168201915b505050505081565b60006119a961189b565b600160a060020a031633600160a060020a03161415156119c857610000565b604051600160a060020a0384169083156108fc029084906000818181858888f19350505050156119fa5750600161096c565b50600061096c565b5b5b92915050565b601081815481101561000057906000526020600020906002020160005b508054600190910154600160a060020a03909116915082565b6000611a4d338484611dfa565b1515611a5857610000565b5060015b92915050565b611a6a61189b565b600160a060020a031633600160a060020a0316141515611a8957610000565b600654610100900460ff16156101f0576006805461ff00191690556040517fd38e5ab7b9af65a1ec71c885bbc984cb5bffc7e03481124e73b038b7f0bc5aad90600090a15b5b5b565b6000600782815481101561000057906000526020600020900160005b9054906101000a9004600160a060020a031690505b919050565b600061096983611b1784611fa7565b6116dc85611fbf565b612181565b90505b92915050565b6000818152600b6020526040812060040154421180611b5d57506000828152600b602052604090206003015442105b15611b6a575060006114e6565b506000818152600b60205260409020600101546114e6565b5b919050565b600654600090610100900460ff161580611ba9575067016345785d8a000034105b15611bb357610000565b611bbd33346121cc565b5060015b90565b600b6020526000908152604090208054600182015460028301546003840154600485015460058601546006870154600790970154600160a060020a03909616969495939492939192909188565b600654620100009004600160a060020a031681565b600160a060020a038083166000908152600a60209081526040808320938516835292905220545b92915050565b6000841580611c6c5750611c6a85853486866122bb565b155b15611c7657610000565b6000858152600b602052604090206007810180543401908190556001909101541415611ca557611ca585611f43565b5b506000848152600e60209081526040808320600160a060020a0387168452909152902080543401905560015b949350505050565b600160a060020a038116600090815260086020526040812054151561120f5760078054809190600101815481835581811511611d3b57600083815260209020611d3b9181019083015b80821115611d375760008155600101611d23565b5090565b5b505050905081600782815481101561000057906000526020600020900160005b8154600160a060020a039384166101009290920a9182029184021916179055821660009081526008602052604090208190555b5b5050565b600160a060020a0380831660008181526009602090815260409182902080548601905560058054860190558151858152915192933316927f44191d9d88938653f01b311b729bd73496afd8b6a29d9e2657604c7df387c9c39281900390910190a35b5050565b600654600090610100900460ff168015611e2b5750600160a060020a0384166000908152600f602052604090205442115b8015611e4e5750600160a060020a0383166000908152600f602052604090205442115b8015611e6c575030600160a060020a031683600160a060020a031614155b8015611e915750600160a060020a038416600090815260096020526040902054829010155b8015611eb65750600160a060020a038316600090815260096020526040902054828101115b15611f3357611ec483611cda565b600160a060020a03808516600081815260096020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610aa4565b506000610aa4565b5b9392505050565b6000818152600b6020908152604091829020600781015460028201908155600d85905542600490920191909155548251908152915183927f103728a3545155be65825de25e9aa020695253efc8f66899223a060b471d5ea092908290030190a25b50565b6000818152600b60205260409020600501545b919050565b6000611fcb82426123a8565b90505b919050565b600083830260648102828482811561000057049050858784811561000057041415806120025750826064830414155b1561201057600093506114c8565b8093505b5050509392505050565b60008160016011540310156120325761120f565b60118054600019019081905560009011156121135750805b60115460001901811161211357601081600101815481101561000057906000526020600020906002020160005b505460108054600160a060020a0390921691839081101561000057906000526020600020906002020160005b508054600160a060020a031916600160a060020a039290921691909117905560108054600183019081101561000057906000526020600020906002020160005b5060010154601082815481101561000057906000526020600020906002020160005b50600101555b60010161204a565b5b60006010601154815481101561000057906000526020600020906002020160005b508054600160a060020a031916600160a060020a0392909216919091179055601154601080546000929081101561000057906000526020600020906002020160005b50600101555b5050565b600083820260648402828183811561000057049050848784811561000057041415806120025750856064830414155b1561201057600093506114c8565b8093505b5050509392505050565b60118054600101908190556010546000911115612249576010805480919060010181548183558181151161223e5760020281600202836000526020600020918201910161223e91905b80821115611d37578054600160a060020a031916815560006001820155600201612215565b5090565b5b5050509050612252565b50601154600019015b82601082815481101561000057906000526020600020906002020160005b508054600160a060020a031916600160a060020a039290921691909117905560108054839190839081101561000057906000526020600020906002020160005b50600101555b505050565b6000808315156122c9574293505b6000878152600b60205260409020600401548411806122f857506000878152600b602052604090206003015484105b8061231b57506000878152600b6020526040902060018101546007909101548601115b156123255761239e565b6123418561233289611fa7565b610e318a886123a8565b611fd3565b905080151561234f5761239e565b61235886611cda565b821561238e576000878152600e60209081526040808320600160a060020a038a1684529091529020600101805482019055612398565b6123988682611d94565b5b600191505b5095945050505050565b6000828152600b602052604081206004015482908111156123d757506000838152600b60205260409020600401545b6000848152600b602052604090206003015483101561240457506000838152600b60205260409020600301545b6000848152600b60205260409020600381015460069091015463bbf81e00918303026064020460640191505b50929150505600a165627a7a723058204af547fcf6feffe959a8bb0639fe882a3b7f71da6fdea3759ac76fbd6d4335380029

Deployed Bytecode

0x606060405236156101dc5763ffffffff60e060020a600035041662b172d781146101f65780630199c7b21461022157806306fdde0314610240578063095ea7b3146102cd5780630d7519a9146102fd5780630fc4af531461033257806318160ddd146103595780631bf9def014610378578063207bd99d1461039957806323b872dd146103a857806327e07647146103de578063313ce567146103f057806332990ad2146104135780633d18c6151461044157806347ad396b1461046057806348d9a3741461048a5780634913732e146104a85780634bdfa999146104db578063515635271461051057806358ce4b4814610539578063606224f81461054e57806364cb5338146105815780636dcd6eb9146105a3578063709ef231146105c457806370a08231146105ec5780637e86f8e51461061757806381ef93ae14610642578063868eb6bf146106615780638eaa9c911461068857806395d89b41146106b15780639e1a00aa1461073e578063a85c38ef1461076e578063a9059cbb146107a1578063b187984f146107d1578063b1a1318a146107e0578063c1e6c5061461080c578063cef24cac14610831578063d0febe4c14610853578063d13cb1fb1461086f578063d179eb71146108ca578063dd62ed3e146108f3575b6101f45b60065460ff16156101f057610000565b5b5b565b005b61020d600435600160a060020a0360243516610924565b604080519115158252519081900360200190f35b346100005761022e610972565b60408051918252519081900360200190f35b346100005761024d61097d565b604080516020808252835181830152835191928392908301918501908083838215610293575b80518252602083111561029357601f199092019160209182019101610273565b505050905090810190601f1680156102bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b346100005761020d600160a060020a0360043516602435610a08565b604080519115158252519081900360200190f35b346100005761020d600160a060020a03600435166024356044351515610a39565b604080519115158252519081900360200190f35b346100005761020d600435602435610aab565b604080519115158252519081900360200190f35b346100005761022e610c88565b60408051918252519081900360200190f35b346100005761020d610c8f565b604080519115158252519081900360200190f35b34610000576101f4610c9e565b005b346100005761020d600160a060020a0360043581169060243516604435610d13565b604080519115158252519081900360200190f35b34610000576101f4600435610d94565b005b34610000576103fd610de5565b6040805160ff9092168252519081900360200190f35b346100005761022e600160a060020a0360043516602435610dee565b60408051918252519081900360200190f35b346100005761022e610e63565b60408051918252519081900360200190f35b34610000576101f4600160a060020a036004351660243560443560643560843560a435610e6a565b005b34610000576101f4600160a060020a036004351660243561119c565b005b61020d600435600160a060020a03602435166044356064351515611216565b604080519115158252519081900360200190f35b34610000576104f7600435600160a060020a0360243516611254565b6040805192835260208301919091528051918290030190f35b346100005761051d611278565b60408051600160a060020a039092168252519081900360200190f35b34610000576101f4600435602435611287565b005b346100005761020d600435602435600160a060020a03604435166112e4565b604080519115158252519081900360200190f35b346100005761022e6004356114d3565b60408051918252519081900360200190f35b346100005761020d6114eb565b604080519115158252519081900360200190f35b346100005761022e600435602435604435611500565b60408051918252519081900360200190f35b346100005761022e600160a060020a036004351661177b565b60408051918252519081900360200190f35b346100005761022e600160a060020a036004351661179a565b60408051918252519081900360200190f35b346100005761022e6117ac565b60408051918252519081900360200190f35b346100005761020d6004356024356117b2565b604080519115158252519081900360200190f35b346100005761051d61189b565b60408051600160a060020a039092168252519081900360200190f35b346100005761024d611911565b604080516020808252835181830152835191928392908301918501908083838215610293575b80518252602083111561029357601f199092019160209182019101610273565b505050905090810190601f1680156102bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b346100005761020d600160a060020a036004351660243561199f565b604080519115158252519081900360200190f35b346100005761077e600435611a0a565b60408051600160a060020a03909316835260208301919091528051918290030190f35b346100005761020d600160a060020a0360043516602435611a40565b604080519115158252519081900360200190f35b34610000576101f4611a62565b005b346100005761051d600435611ad2565b60408051600160a060020a039092168252519081900360200190f35b346100005761022e600435602435611b08565b60408051918252519081900360200190f35b346100005761022e600435611b2e565b60408051918252519081900360200190f35b61020d611b88565b604080519115158252519081900360200190f35b346100005761087f600435611bc4565b60408051600160a060020a0390991689526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b346100005761051d611c11565b60408051600160a060020a039092168252519081900360200190f35b346100005761022e600160a060020a0360043581169060243516611c26565b60408051918252519081900360200190f35b6000600160a060020a038216151561093a573391505b6000838152600b6020526040902054600160a060020a03161561095c57610000565b6109698383426001611c53565b90505b92915050565b600754600019015b90565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610a005780601f106109d557610100808354040283529160200191610a00565b820191906000526020600020905b8154815290600101906020018083116109e357829003601f168201915b505050505081565b600160a060020a033381166000908152600a6020908152604080832093861683529290522081905560015b92915050565b60065460009060b060020a900460ff1615610a5357610000565b610a5c84611cda565b600160a060020a03841615801590610a7357508215155b15610a8257610a828484611d94565b5b8115610aa0576006805460b060020a60ff02191660b060020a1790555b5060015b9392505050565b6006805460b060020a60ff02191660b060020a17905560008080808080871515610ad457600197505b600660029054906101000a9004600160a060020a0316945084600160a060020a0316630199c7b26000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151945050861580610b4e57508387115b15610b57578396505b50865b868111610c7c5784600160a060020a031663b1a1318a826000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b156100005760325a03f1156100005750505060405180519050925084600160a060020a03166370a08231846000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b156100005760325a03f1156100005750506040805151600160a060020a0386166000908152600960205291909120549093501590508015610c5a57508115155b15610c7257610c6883611cda565b610c728383611d94565b5b5b600101610b5a565b5b505050505092915050565b6005545b90565b600654610100900460ff165b90565b610ca661189b565b600160a060020a031633600160a060020a0316141515610cc557610000565b600654610100900460ff1615156101f0576006805461ff0019166101001790556040517fefda599ce099c9bb0830c891a11114c6fd27a279c7e15e1e1989f3839e75230090600090a15b5b5b565b600160a060020a038084166000908152600a602090815260408083203390941683529290529081205482901080610d525750610d50848484611dfa565b155b15610d5c57610000565b50600160a060020a038084166000908152600a60209081526040808320339094168352929052208054829003905560015b9392505050565b6000818152600b602052604090205433600160a060020a039081169116141580610dce57506000818152600b602052604090206004015442115b15610dd857610000565b610de181611f43565b5b50565b60045460ff1681565b60006000610dfa61189b565b600160a060020a031633600160a060020a0316141515610e1957610000565b610e3683610e276000611fa7565b610e316000611fbf565b611fd3565b9050801515610e4457610000565b610e4d84611cda565b610e578482611d94565b8091505b5b5092915050565b600c545b90565b610e7261189b565b600160a060020a031633600160a060020a0316141515610e9157610000565b30600160a060020a031686600160a060020a03161480610ec95750610eb461189b565b600160a060020a031686600160a060020a0316145b80610ed2575083155b80610edb575082155b80610ef657506000818152600b602052604090206007015415155b15610f0057610000565b6000818152600b602052604081208054600160a060020a031916600160a060020a03891617815560018101869055600201558415156110195760008052600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7a54421015610fa657610f76600c54611fbf565b610f81600c54611fa7565b6064028115610000576000838152600b60205260409020919004600590910155610fdd565b610fb1600d54611fbf565b610fbc600d54611fa7565b6064028115610000576000838152600b602052604090209190046005909101555b6000818152600b60205260408120600501549080527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7b55611054565b6000818152600b6020526040812060050186905580527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7b8590555b81151561109457600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7c54600082815260409020600601556110cf565b6000818152600b6020526040812060060183905580527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7c8290555b6000818152600b6020908152604080832042600382018181557fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f79829055603c8902909101600483018181557fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7a91909155600790920194909455600c8590559254925481518881529283015280518492600160a060020a038b16927f0557df9989d7678468fdf90f634aebe3d8a7a5b0c721621745cc9b91a910b93092918290030190a45b5b505050505050565b6111a461189b565b600160a060020a031633600160a060020a03161415156111c357610000565b60065460ff16156111d357610000565b600160a060020a0382166000908152600f602052604090205481111561120f57600160a060020a0382166000908152600f602052604090208190555b5b5b5b5050565b6000848152600b602052604081205433600160a060020a0390811691161461123d57610000565b61124985858585611c53565b90505b949350505050565b600e6020908152600092835260408084209091529082529020805460019091015482565b600054600160a060020a031681565b6000828152600b602052604090205433600160a060020a0390811691161415806112c157506000828152600b602052604090206004015442115b156112cb57610000565b6000828152600b602052604090206003018190555b5050565b60008080808615156112f557600196505b85151561130257600c5495505b600160a060020a0385161515611316573394505b50855b85811161142a576000818152600b60205260409020600401544211801561136157506000818152600e60209081526040808320600160a060020a038916845290915290205415155b15611421576000818152600b602052604090206002015415156113ab576000818152600e60209081526040808320600160a060020a038916845290915290205492909201916113d7565b6000818152600e60209081526040808320600160a060020a038916845290915290206001015491909101905b6000818152600e60209081526040808320600160a060020a0389168085528184528285208054878752600b8652938620600701805494909403909355600183018590558452909152555b5b600101611319565b60008211156114465761143d8583611d94565b600193506114c8565b600083111561143d57604051600160a060020a0386169084156108fc029085906000818181858888f19350505050151561147f57610000565b604080518481529051600160a060020a038716917fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d919081900360200190a26114c8565b600193505b5b5050509392505050565b6000818152600b60205260409020600201545b919050565b60006114fa60006000336112e4565b90505b90565b600060006000600060006000600660019054906101000a900460ff1615806115405750600160a060020a0333166000908152600960205260409020548490105b8061154b5750601154155b1561155557610000565b861580611566575060016011540387115b156115745760016011540396505b50869050805b86811161173a576000891180156115c1575033600160a060020a0316601083815481101561000057906000526020600020906002020160005b5054600160a060020a031614155b1561172a57611604601083815481101561000057906000526020600020906002020160005b5060010154610e276000611fa7565b610e316000611fbf565b611fd3565b9450848910158015611643575061164333601084815481101561000057906000526020600020906002020160005b5054600160a060020a031687611dfa565b5b15611682578489039850601082815481101561000057906000526020600020906002020160005b50600101548301925061167d8261201e565b611724565b84891080156116be57506116be33601084815481101561000057906000526020600020906002020160005b5054600160a060020a03168b611dfa565b5b1561171d576116e1896116d26000611fa7565b6116dc6000611fbf565b612181565b935083601083815481101561000057906000526020600020906002020160005b5060019081018054929092039091559284019287019050611724565b6001820191505b5b611731565b6001820191505b5b60010161157a565b604051600160a060020a0333169084156108fc029085906000818181858888f19350505050151561176a57610000565b8295505b5b50505050509392505050565b600160a060020a0381166000908152600960205260409020545b919050565b600f6020526000908152604090205481565b600d5481565b60008080808415806117c5575060115485115b156117d35760016011540394505b50849050805b84811161185c5733600160a060020a0316601083815481101561000057906000526020600020906002020160005b5054600160a060020a0316141561184c57601082815481101561000057906000526020600020906002020160005b5060010154830192506118478261201e565b611853565b6001820191505b5b6001016117d9565b604051600160a060020a0333169084156108fc029085906000818181858888f19350505050151561188c57610000565b600193505b5b50505092915050565b6000805460408051602090810184905281517fe934ab0c0000000000000000000000000000000000000000000000000000000081529151600160a060020a039093169263e934ab0c92600480820193929182900301818787803b156100005760325a03f115610000575050604051519150505b90565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a005780601f106109d557610100808354040283529160200191610a00565b820191906000526020600020905b8154815290600101906020018083116109e357829003601f168201915b505050505081565b60006119a961189b565b600160a060020a031633600160a060020a03161415156119c857610000565b604051600160a060020a0384169083156108fc029084906000818181858888f19350505050156119fa5750600161096c565b50600061096c565b5b5b92915050565b601081815481101561000057906000526020600020906002020160005b508054600190910154600160a060020a03909116915082565b6000611a4d338484611dfa565b1515611a5857610000565b5060015b92915050565b611a6a61189b565b600160a060020a031633600160a060020a0316141515611a8957610000565b600654610100900460ff16156101f0576006805461ff00191690556040517fd38e5ab7b9af65a1ec71c885bbc984cb5bffc7e03481124e73b038b7f0bc5aad90600090a15b5b5b565b6000600782815481101561000057906000526020600020900160005b9054906101000a9004600160a060020a031690505b919050565b600061096983611b1784611fa7565b6116dc85611fbf565b612181565b90505b92915050565b6000818152600b6020526040812060040154421180611b5d57506000828152600b602052604090206003015442105b15611b6a575060006114e6565b506000818152600b60205260409020600101546114e6565b5b919050565b600654600090610100900460ff161580611ba9575067016345785d8a000034105b15611bb357610000565b611bbd33346121cc565b5060015b90565b600b6020526000908152604090208054600182015460028301546003840154600485015460058601546006870154600790970154600160a060020a03909616969495939492939192909188565b600654620100009004600160a060020a031681565b600160a060020a038083166000908152600a60209081526040808320938516835292905220545b92915050565b6000841580611c6c5750611c6a85853486866122bb565b155b15611c7657610000565b6000858152600b602052604090206007810180543401908190556001909101541415611ca557611ca585611f43565b5b506000848152600e60209081526040808320600160a060020a0387168452909152902080543401905560015b949350505050565b600160a060020a038116600090815260086020526040812054151561120f5760078054809190600101815481835581811511611d3b57600083815260209020611d3b9181019083015b80821115611d375760008155600101611d23565b5090565b5b505050905081600782815481101561000057906000526020600020900160005b8154600160a060020a039384166101009290920a9182029184021916179055821660009081526008602052604090208190555b5b5050565b600160a060020a0380831660008181526009602090815260409182902080548601905560058054860190558151858152915192933316927f44191d9d88938653f01b311b729bd73496afd8b6a29d9e2657604c7df387c9c39281900390910190a35b5050565b600654600090610100900460ff168015611e2b5750600160a060020a0384166000908152600f602052604090205442115b8015611e4e5750600160a060020a0383166000908152600f602052604090205442115b8015611e6c575030600160a060020a031683600160a060020a031614155b8015611e915750600160a060020a038416600090815260096020526040902054829010155b8015611eb65750600160a060020a038316600090815260096020526040902054828101115b15611f3357611ec483611cda565b600160a060020a03808516600081815260096020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610aa4565b506000610aa4565b5b9392505050565b6000818152600b6020908152604091829020600781015460028201908155600d85905542600490920191909155548251908152915183927f103728a3545155be65825de25e9aa020695253efc8f66899223a060b471d5ea092908290030190a25b50565b6000818152600b60205260409020600501545b919050565b6000611fcb82426123a8565b90505b919050565b600083830260648102828482811561000057049050858784811561000057041415806120025750826064830414155b1561201057600093506114c8565b8093505b5050509392505050565b60008160016011540310156120325761120f565b60118054600019019081905560009011156121135750805b60115460001901811161211357601081600101815481101561000057906000526020600020906002020160005b505460108054600160a060020a0390921691839081101561000057906000526020600020906002020160005b508054600160a060020a031916600160a060020a039290921691909117905560108054600183019081101561000057906000526020600020906002020160005b5060010154601082815481101561000057906000526020600020906002020160005b50600101555b60010161204a565b5b60006010601154815481101561000057906000526020600020906002020160005b508054600160a060020a031916600160a060020a0392909216919091179055601154601080546000929081101561000057906000526020600020906002020160005b50600101555b5050565b600083820260648402828183811561000057049050848784811561000057041415806120025750856064830414155b1561201057600093506114c8565b8093505b5050509392505050565b60118054600101908190556010546000911115612249576010805480919060010181548183558181151161223e5760020281600202836000526020600020918201910161223e91905b80821115611d37578054600160a060020a031916815560006001820155600201612215565b5090565b5b5050509050612252565b50601154600019015b82601082815481101561000057906000526020600020906002020160005b508054600160a060020a031916600160a060020a039290921691909117905560108054839190839081101561000057906000526020600020906002020160005b50600101555b505050565b6000808315156122c9574293505b6000878152600b60205260409020600401548411806122f857506000878152600b602052604090206003015484105b8061231b57506000878152600b6020526040902060018101546007909101548601115b156123255761239e565b6123418561233289611fa7565b610e318a886123a8565b611fd3565b905080151561234f5761239e565b61235886611cda565b821561238e576000878152600e60209081526040808320600160a060020a038a1684529091529020600101805482019055612398565b6123988682611d94565b5b600191505b5095945050505050565b6000828152600b602052604081206004015482908111156123d757506000838152600b60205260409020600401545b6000848152600b602052604090206003015483101561240457506000838152600b60205260409020600301545b6000848152600b60205260409020600381015460069091015463bbf81e00918303026064020460640191505b50929150505600a165627a7a723058204af547fcf6feffe959a8bb0639fe882a3b7f71da6fdea3759ac76fbd6d4335380029

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

000000000000000000000000ad2d970edff30d8f166989470aaf4be3ff6375ae000000000000000000000000687b8760ffdc4b6649f457173647b855fcb322680000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000000a5061737320546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045041535300000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _passDao (address): 0xad2D970EDFF30d8f166989470aaF4BE3Ff6375aE
Arg [1] : _clonedFrom (address): 0x687B8760ffdc4b6649f457173647B855fCb32268
Arg [2] : _tokenName (string): Pass Token
Arg [3] : _tokenSymbol (string): PASS
Arg [4] : _tokenDecimals (uint8): 18
Arg [5] : _token (bool): True
Arg [6] : _transferable (bool): True
Arg [7] : _initialPriceMultiplier (uint256): 1000
Arg [8] : _inflationRate (uint256): 365

-----Encoded View---------------
13 Constructor Arguments found :
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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.