Contract 0x29632C10D76bd1AeD6b1524bf5bDE4C992610670

 
Txn Hash Method
Block
From
To
Value
0xdfdbcb04fc90c67ab126d4a3a2d5415765de6a9fbb6d93b9a17ccb967e4dae87Do State Changes55564652018-05-04 19:40:361241 days 5 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0014471310
0xa968f02bc9006128a881150be0825708b64c8f77af7a4c59f80d3742938bba19Do State Changes55564552018-05-04 19:38:261241 days 5 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0038120310
0x7a3dd40cd7a3a69a372ceb6a56fedc3e8b8191fe5c1e55a50a36a10df796133dDo State Changes55564362018-05-04 19:34:501241 days 5 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.001805410
0xd622b8275f3d546d3c1f7678bbde4c4a4817e0e59fdb4d5b06532eb9261668b3Do State Changes52272812018-03-10 0:25:451297 days 40 mins agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.001319710
0xeac92815ecf4a6e237847d8d5127a903afa24ea6d5b6e6e6aba45ade38ea956bDo State Changes52272702018-03-10 0:21:461297 days 44 mins agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0013842710
0xdbc188f825360af0a94265c001b55778a4046acd0fdf1f806c633c689c9faefbDo State Changes50208562018-02-03 3:07:471331 days 21 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0005841310
0x0293416ed476849b1173d2a0dac4050406c32a8c53eff9fa74c6d7b1b045fc2bDo State Changes50208332018-02-03 3:01:241331 days 22 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0020636110
0x7f1112ee1ac2397166484388b033bb63baeb028d0a4551fdd40f5045d9d079edLink To Gateway50156872018-02-02 6:10:521332 days 18 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.020817410
0x981f53b8bedaa3e3fa5c9ed38dfe2097a2cb4f943be18ba945c5d95070ea84c4Add Asset Bounty...50156472018-02-02 5:59:061332 days 19 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0009270210
0x2cad9116ae3688e9042ef91ee629458d110af2581ce698983dfd1b53fe9dc6ffAdd Asset Meetin...50156412018-02-02 5:57:501332 days 19 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0009217410
0xf95307663644da2bd926d09ea38ced919bc5d4b5aa042dd4a564814116251cefAdd Asset Milest...50156352018-02-02 5:56:261332 days 19 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.000928810
0x3d42ae534e28dc801fd4513605d35f5e6de4ab8e229eb8f14846c85452336437Add Asset Fundin...50156312018-02-02 5:55:401332 days 19 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.000927910
0x0597214f0ee6fc0f87b971a9710618a56ea26011ce4f58518c7148d32e62a31aAdd Asset Fundin...50156262018-02-02 5:54:161332 days 19 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0009296810
0xec64d768cff56db3b012b1d4ab562f6290caef4a2053f01cb69c23bc87c5f9d8Add Asset Propos...50156182018-02-02 5:52:351332 days 19 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0009237210
0x1a987e27969fdeb356333bfa1689c8179f4a9fd4fb95642d9899966117c21460Add Asset Token ...50156142018-02-02 5:51:581332 days 19 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0009276810
0x7b36f485b8ce66da6ae42fce7a7a6a62260595aba3719a5ac3c7fdf5eea45d0fAdd Asset News C...50156112018-02-02 5:51:181332 days 19 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0009274610
0xf64796001b01f4478f5741bae6f1656bee145bdbd393f56f3ad1b9230d0254d9Add Asset Listin...50155872018-02-02 5:45:451332 days 19 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0009296610
0xea63fe817bf2348c3d867bda9c75a925bddb786510a2cb36c4468dfcd35ac476Set Bylaw Uint25...50151682018-02-02 4:06:501332 days 20 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0002938610
0x7a927765dcc2179b1dd43d0fcc04e771516d2957c43b0195f45d3905d5308fb2Set Bylaw Uint25...50151332018-02-02 3:57:381332 days 21 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0004489810
0xeb66a64e0e0c6003141eaf3e9cc601ad9f6489546b4cbadd204353e650878106Set Bylaw Uint25...50151172018-02-02 3:53:021332 days 21 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.000447710
0xd5566dca945ba8118af976811a95f743692fa4e2479b0c083f642f69ea635755Set Bylaw Uint25...50151062018-02-02 3:50:511332 days 21 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0004496210
0x66ea19261c8794fd30304a4c31beaa81e7fd3c9b745e90b08fa6b028d34be9d3Set Bylaw Uint25...50151022018-02-02 3:50:171332 days 21 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0004432210
0xd6180984eb439d54a91cb784c4aceefeb087144acaf714c733044a0312fcde4cSet Bylaw Uint25...50150892018-02-02 3:48:001332 days 21 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0004438610
0x89ff05cfac0900a2342b741196d0a93a77b43ae9b6bca1a1512b0cf6af7a0fdfSet Bylaw Uint25...50150612018-02-02 3:40:591332 days 21 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.0004464210
0x19e898314a97ef2e192419d7aca435e3ea7db4fc8bd2cbd6434941ddf936272aSet Bylaw Uint25...50150472018-02-02 3:38:281332 days 21 hrs agoBlockbits: Deployer IN  0x29632c10d76bd1aed6b1524bf5bde4c9926106700 Ether0.000447710
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ApplicationEntity

Compiler Version
v0.4.17+commit.bdeb9e52

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.17;

/*

 * source       https://github.com/blockbitsio/

 * @name        Application Entity Generic Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

    Used for the ABI interface when assets need to call Application Entity.

    This is required, otherwise we end up loading the assets themselves when we load the ApplicationEntity contract
    and end up in a loop
*/



contract ApplicationEntityABI {

    address public ProposalsEntity;
    address public FundingEntity;
    address public MilestonesEntity;
    address public MeetingsEntity;
    address public BountyManagerEntity;
    address public TokenManagerEntity;
    address public ListingContractEntity;
    address public FundingManagerEntity;
    address public NewsContractEntity;

    bool public _initialized = false;
    bool public _locked = false;
    uint8 public CurrentEntityState;
    uint8 public AssetCollectionNum;
    address public GatewayInterfaceAddress;
    address public deployerAddress;
    address testAddressAllowUpgradeFrom;
    mapping (bytes32 => uint8) public EntityStates;
    mapping (bytes32 => address) public AssetCollection;
    mapping (uint8 => bytes32) public AssetCollectionIdToName;
    mapping (bytes32 => uint256) public BylawsUint256;
    mapping (bytes32 => bytes32) public BylawsBytes32;

    function ApplicationEntity() public;
    function getEntityState(bytes32 name) public view returns (uint8);
    function linkToGateway( address _GatewayInterfaceAddress, bytes32 _sourceCodeUrl ) external;
    function setUpgradeState(uint8 state) public ;
    function addAssetProposals(address _assetAddresses) external;
    function addAssetFunding(address _assetAddresses) external;
    function addAssetMilestones(address _assetAddresses) external;
    function addAssetMeetings(address _assetAddresses) external;
    function addAssetBountyManager(address _assetAddresses) external;
    function addAssetTokenManager(address _assetAddresses) external;
    function addAssetFundingManager(address _assetAddresses) external;
    function addAssetListingContract(address _assetAddresses) external;
    function addAssetNewsContract(address _assetAddresses) external;
    function getAssetAddressByName(bytes32 _name) public view returns (address);
    function setBylawUint256(bytes32 name, uint256 value) public;
    function getBylawUint256(bytes32 name) public view returns (uint256);
    function setBylawBytes32(bytes32 name, bytes32 value) public;
    function getBylawBytes32(bytes32 name) public view returns (bytes32);
    function initialize() external returns (bool);
    function getParentAddress() external view returns(address);
    function createCodeUpgradeProposal( address _newAddress, bytes32 _sourceCodeUrl ) external returns (uint256);
    function acceptCodeUpgradeProposal(address _newAddress) external;
    function initializeAssetsToThisApplication() external returns (bool);
    function transferAssetsToNewApplication(address _newAddress) external returns (bool);
    function lock() external returns (bool);
    function canInitiateCodeUpgrade(address _sender) public view returns(bool);
    function doStateChanges() public;
    function hasRequiredStateChanges() public view returns (bool);
    function anyAssetHasChanges() public view returns (bool);
    function extendedAnyAssetHasChanges() internal view returns (bool);
    function getRequiredStateChanges() public view returns (uint8, uint8);
    function getTimestamp() view public returns (uint256);

}

/*

 * source       https://github.com/blockbitsio/

 * @name        Gateway Interface Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Used as a resolver to retrieve the latest deployed version of the Application

 ENS: gateway.main.blockbits.eth will point directly to this contract.

    ADD ENS domain ownership / transfer methods

*/





contract ABIGatewayInterface {
    address public currentApplicationEntityAddress;
    ApplicationEntityABI private currentApp;
    address public deployerAddress;

    function getApplicationAddress() external view returns (address);
    function requestCodeUpgrade( address _newAddress, bytes32 _sourceCodeUrl ) external returns (bool);
    function approveCodeUpgrade( address _newAddress ) external returns (bool);
    function link( address _newAddress ) internal returns (bool);
    function getNewsContractAddress() external view returns (address);
    function getListingContractAddress() external view returns (address);
}

/*

 * source       https://github.com/blockbitsio/

 * @name        Application Asset Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Any contract inheriting this will be usable as an Asset in the Application Entity

*/



contract ABIApplicationAsset {

    bytes32 public assetName;
    uint8 public CurrentEntityState;
    uint8 public RecordNum;
    bool public _initialized;
    bool public _settingsApplied;
    address public owner;
    address public deployerAddress;
    mapping (bytes32 => uint8) public EntityStates;
    mapping (bytes32 => uint8) public RecordStates;

    function setInitialApplicationAddress(address _ownerAddress) public;
    function setInitialOwnerAndName(bytes32 _name) external returns (bool);
    function getRecordState(bytes32 name) public view returns (uint8);
    function getEntityState(bytes32 name) public view returns (uint8);
    function applyAndLockSettings() public returns(bool);
    function transferToNewOwner(address _newOwner) public returns (bool);
    function getApplicationAssetAddressByName(bytes32 _name) public returns(address);
    function getApplicationState() public view returns (uint8);
    function getApplicationEntityState(bytes32 name) public view returns (uint8);
    function getAppBylawUint256(bytes32 name) public view returns (uint256);
    function getAppBylawBytes32(bytes32 name) public view returns (bytes32);
    function getTimestamp() view public returns (uint256);


}

/*

 * source       https://github.com/blockbitsio/

 * @name        Proposals Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Contains the Proposals Contract code deployed and linked to the Application Entity

*/





contract ABIProposals is ABIApplicationAsset {

    address public Application;
    address public ListingContractEntity;
    address public FundingEntity;
    address public FundingManagerEntity;
    address public TokenManagerEntity;
    address public TokenEntity;
    address public MilestonesEntity;

    struct ProposalRecord {
        address creator;
        bytes32 name;
        uint8 actionType;
        uint8 state;
        bytes32 hash;                       // action name + args hash
        address addr;
        bytes32 sourceCodeUrl;
        uint256 extra;
        uint256 time_start;
        uint256 time_end;
        uint256 index;
    }

    struct VoteStruct {
        address voter;
        uint256 time;
        bool    vote;
        uint256 power;
        bool    annulled;
        uint256 index;
    }

    struct ResultRecord {
        uint256 totalAvailable;
        uint256 requiredForResult;
        uint256 totalSoFar;
        uint256 yes;
        uint256 no;
        bool    requiresCounting;
    }

    uint8 public ActiveProposalNum;
    uint256 public VoteCountPerProcess;
    bool public EmergencyFundingReleaseApproved;

    mapping (bytes32 => uint8) public ActionTypes;
    mapping (uint8 => uint256) public ActiveProposalIds;
    mapping (uint256 => bool) public ExpiredProposalIds;
    mapping (uint256 => ProposalRecord) public ProposalsById;
    mapping (bytes32 => uint256) public ProposalIdByHash;
    mapping (uint256 => mapping (uint256 => VoteStruct) ) public VotesByProposalId;
    mapping (uint256 => mapping (address => VoteStruct) ) public VotesByCaster;
    mapping (uint256 => uint256) public VotesNumByProposalId;
    mapping (uint256 => ResultRecord ) public ResultsByProposalId;
    mapping (uint256 => uint256) public lastProcessedVoteIdByProposal;
    mapping (uint256 => uint256) public ProcessedVotesByProposal;
    mapping (uint256 => uint256) public VoteCountAtProcessingStartByProposal;

    function getRecordState(bytes32 name) public view returns (uint8);
    function getActionType(bytes32 name) public view returns (uint8);
    function getProposalState(uint256 _proposalId) public view returns (uint8);
    function getBylawsProposalVotingDuration() public view returns (uint256);
    function getBylawsMilestoneMinPostponing() public view returns (uint256);
    function getBylawsMilestoneMaxPostponing() public view returns (uint256);
    function getHash(uint8 actionType, bytes32 arg1, bytes32 arg2) public pure returns ( bytes32 );
    function process() public;
    function hasRequiredStateChanges() public view returns (bool);
    function getRequiredStateChanges() public view returns (uint8);
    function addCodeUpgradeProposal(address _addr, bytes32 _sourceCodeUrl) external returns (uint256);
    function createMilestoneAcceptanceProposal() external returns (uint256);
    function createMilestonePostponingProposal(uint256 _duration) external returns (uint256);
    function getCurrentMilestonePostponingProposalDuration() public view returns (uint256);
    function getCurrentMilestoneProposalStatusForType(uint8 _actionType ) public view returns (uint8);
    function createEmergencyFundReleaseProposal() external returns (uint256);
    function createDelistingProposal(uint256 _projectId) external returns (uint256);
    function RegisterVote(uint256 _proposalId, bool _myVote) public;
    function hasPreviousVote(uint256 _proposalId, address _voter) public view returns (bool);
    function getTotalTokenVotingPower(address _voter) public view returns ( uint256 );
    function getVotingPower(uint256 _proposalId, address _voter) public view returns ( uint256 );
    function setVoteCountPerProcess(uint256 _perProcess) external;
    function ProcessVoteTotals(uint256 _proposalId, uint256 length) public;
    function canEndVoting(uint256 _proposalId) public view returns (bool);
    function getProposalType(uint256 _proposalId) public view returns (uint8);
    function expiryChangesState(uint256 _proposalId) public view returns (bool);
    function needsProcessing(uint256 _proposalId) public view returns (bool);
    function getMyVoteForCurrentMilestoneRelease(address _voter) public view returns (bool);
    function getHasVoteForCurrentMilestoneRelease(address _voter) public view returns (bool);
    function getMyVote(uint256 _proposalId, address _voter) public view returns (bool);

}

/*

 * source       https://github.com/blockbitsio/

 * @name        Funding Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Contains the Funding Contract code deployed and linked to the Application Entity


    !!! Links directly to Milestones

*/





contract ABIFunding is ABIApplicationAsset {

    address public multiSigOutputAddress;
    address public DirectInput;
    address public MilestoneInput;
    address public TokenManagerEntity;
    address public FundingManagerEntity;

    struct FundingStage {
        bytes32 name;
        uint8   state;
        uint256 time_start;
        uint256 time_end;
        uint256 amount_cap_soft;            // 0 = not enforced
        uint256 amount_cap_hard;            // 0 = not enforced
        uint256 amount_raised;              // 0 = not enforced
        // funding method settings
        uint256 minimum_entry;
        uint8   methods;                    // FundingMethodIds
        // token settings
        uint256 fixed_tokens;
        uint8   price_addition_percentage;  //
        uint8   token_share_percentage;
        uint8   index;
    }

    mapping (uint8 => FundingStage) public Collection;
    uint8 public FundingStageNum;
    uint8 public currentFundingStage;
    uint256 public AmountRaised;
    uint256 public MilestoneAmountRaised;
    uint256 public GlobalAmountCapSoft;
    uint256 public GlobalAmountCapHard;
    uint8 public TokenSellPercentage;
    uint256 public Funding_Setting_funding_time_start;
    uint256 public Funding_Setting_funding_time_end;
    uint256 public Funding_Setting_cashback_time_start;
    uint256 public Funding_Setting_cashback_time_end;
    uint256 public Funding_Setting_cashback_before_start_wait_duration;
    uint256 public Funding_Setting_cashback_duration;


    function addFundingStage(
        bytes32 _name,
        uint256 _time_start,
        uint256 _time_end,
        uint256 _amount_cap_soft,
        uint256 _amount_cap_hard,   // required > 0
        uint8   _methods,
        uint256 _minimum_entry,
        uint256 _fixed_tokens,
        uint8   _price_addition_percentage,
        uint8   _token_share_percentage
    )
    public;

    function addSettings(address _outputAddress, uint256 soft_cap, uint256 hard_cap, uint8 sale_percentage, address _direct, address _milestone ) public;
    function getStageAmount(uint8 StageId) public view returns ( uint256 );
    function allowedPaymentMethod(uint8 _payment_method) public pure returns (bool);
    function receivePayment(address _sender, uint8 _payment_method) payable public returns(bool);
    function canAcceptPayment(uint256 _amount) public view returns (bool);
    function getValueOverCurrentCap(uint256 _amount) public view returns (uint256);
    function isFundingStageUpdateAllowed(uint8 _new_state ) public view returns (bool);
    function getRecordStateRequiredChanges() public view returns (uint8);
    function doStateChanges() public;
    function hasRequiredStateChanges() public view returns (bool);
    function getRequiredStateChanges() public view returns (uint8, uint8, uint8);

}

/*

 * source       https://github.com/blockbitsio/

 * @name        Meetings Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Contains the Meetings Contract code deployed and linked to the Application Entity

*/





contract ABIMeetings is ABIApplicationAsset {
    struct Record {
        bytes32 hash;
        bytes32 name;
        uint8 state;
        uint256 time_start;                     // start at unixtimestamp
        uint256 duration;
        uint8 index;
    }
    mapping (uint8 => Record) public Collection;
}

/*

 * source       https://github.com/blockbitsio/

 * @name        Milestones Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Contains the Milestones Contract code deployed and linked to the Application Entity

*/





contract ABIMilestones is ABIApplicationAsset {

    struct Record {
        bytes32 name;
        string description;                     // will change to hash pointer ( external storage )
        uint8 state;
        uint256 duration;
        uint256 time_start;                     // start at unixtimestamp
        uint256 last_state_change_time;         // time of last state change
        uint256 time_end;                       // estimated end time >> can be increased by proposal
        uint256 time_ended;                     // actual end time
        uint256 meeting_time;
        uint8 funding_percentage;
        uint8 index;
    }

    uint8 public currentRecord;
    uint256 public MilestoneCashBackTime = 0;
    mapping (uint8 => Record) public Collection;
    mapping (bytes32 => bool) public MilestonePostponingHash;
    mapping (bytes32 => uint256) public ProposalIdByHash;

    function getBylawsProjectDevelopmentStart() public view returns (uint256);
    function getBylawsMinTimeInTheFutureForMeetingCreation() public view returns (uint256);
    function getBylawsCashBackVoteRejectedDuration() public view returns (uint256);
    function addRecord( bytes32 _name, string _description, uint256 _duration, uint8 _perc ) public;
    function getMilestoneFundingPercentage(uint8 recordId) public view returns (uint8);
    function doStateChanges() public;
    function getRecordStateRequiredChanges() public view returns (uint8);
    function hasRequiredStateChanges() public view returns (bool);
    function afterVoteNoCashBackTime() public view returns ( bool );
    function getHash(uint8 actionType, bytes32 arg1, bytes32 arg2) public pure returns ( bytes32 );
    function getCurrentHash() public view returns ( bytes32 );
    function getCurrentProposalId() internal view returns ( uint256 );
    function setCurrentMilestoneMeetingTime(uint256 _meeting_time) public;
    function isRecordUpdateAllowed(uint8 _new_state ) public view returns (bool);
    function getRequiredStateChanges() public view returns (uint8, uint8, uint8);
    function ApplicationIsInDevelopment() public view returns(bool);
    function MeetingTimeSetFailure() public view returns (bool);

}

/*

 * source       https://github.com/blockbitsio/

 * @name        Bounty Program Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

  Bounty program contract that holds and distributes tokens upon successful funding.

*/





contract ABIBountyManager is ABIApplicationAsset {
    function sendBounty( address _receiver, uint256 _amount ) public;
}

/*

 * source       https://github.com/blockbitsio/

 * @name        Token Manager Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

*/





contract ABITokenManager is ABIApplicationAsset {

    address public TokenSCADAEntity;
    address public TokenEntity;
    address public MarketingMethodAddress;
    bool OwnerTokenBalancesReleased = false;

    function addSettings(address _scadaAddress, address _tokenAddress, address _marketing ) public;
    function getTokenSCADARequiresHardCap() public view returns (bool);
    function mint(address _to, uint256 _amount) public returns (bool);
    function finishMinting() public returns (bool);
    function mintForMarketingPool(address _to, uint256 _amount) external returns (bool);
    function ReleaseOwnersLockedTokens(address _multiSigOutputAddress) public returns (bool);

}

/*

 * source       https://github.com/blockbitsio/

 * @name        Funding Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Contains the Funding Contract code deployed and linked to the Application Entity

*/





contract ABIFundingManager is ABIApplicationAsset {

    bool public fundingProcessed;
    bool FundingPoolBalancesAllocated;
    uint8 public VaultCountPerProcess;
    uint256 public lastProcessedVaultId;
    uint256 public vaultNum;
    uint256 public LockedVotingTokens;
    bytes32 public currentTask;
    mapping (bytes32 => bool) public taskByHash;
    mapping  (address => address) public vaultList;
    mapping  (uint256 => address) public vaultById;

    function receivePayment(address _sender, uint8 _payment_method, uint8 _funding_stage) payable public returns(bool);
    function getMyVaultAddress(address _sender) public view returns (address);
    function setVaultCountPerProcess(uint8 _perProcess) external;
    function getHash(bytes32 actionType, bytes32 arg1) public pure returns ( bytes32 );
    function getCurrentMilestoneProcessed() public view returns (bool);
    function processFundingFailedFinished() public view returns (bool);
    function processFundingSuccessfulFinished() public view returns (bool);
    function getCurrentMilestoneIdHash() internal view returns (bytes32);
    function processMilestoneFinished() public view returns (bool);
    function processEmergencyFundReleaseFinished() public view returns (bool);
    function getAfterTransferLockedTokenBalances(address vaultAddress, bool excludeCurrent) public view returns (uint256);
    function VaultRequestedUpdateForLockedVotingTokens(address owner) public;
    function doStateChanges() public;
    function hasRequiredStateChanges() public view returns (bool);
    function getRequiredStateChanges() public view returns (uint8, uint8);
    function ApplicationInFundingOrDevelopment() public view returns(bool);

}

/*

 * source       https://github.com/blockbitsio/

 * @name        Listing Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

*/





contract ABIListingContract is ABIApplicationAsset {

    address public managerAddress;
    // child items
    struct item {
        bytes32 name;
        address itemAddress;
        bool    status;
        uint256 index;
    }

    mapping ( uint256 => item ) public items;
    uint256 public itemNum;

    function setManagerAddress(address _manager) public;
    function addItem(bytes32 _name, address _address) public;
    function getNewsContractAddress(uint256 _childId) external view returns (address);
    function canBeDelisted(uint256 _childId) public view returns (bool);
    function getChildStatus( uint256 _childId ) public view returns (bool);
    function delistChild( uint256 _childId ) public;

}

/*

 * source       https://github.com/blockbitsio/

 * @name        News Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

*/





contract ABINewsContract is ABIApplicationAsset {

    struct item {
        string hash;
        uint8 itemType;
        uint256 length;
    }

    uint256 public itemNum = 0;
    mapping ( uint256 => item ) public items;

    function addInternalMessage(uint8 state) public;
    function addItem(string _hash, uint256 _length) public;
}

/*

 * source       https://github.com/blockbitsio/

 * @name        Application Entity Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Contains the main company Entity Contract code deployed and linked to the Gateway Interface.

*/














contract ApplicationEntity {

    /* Source Code Url */
    bytes32 sourceCodeUrl;

    /* Entity initialised or not */
    bool public _initialized = false;

    /* Entity locked or not */
    bool public _locked = false;

    /* Current Entity State */
    uint8 public CurrentEntityState;

    /* Available Entity State */
    mapping (bytes32 => uint8) public EntityStates;

    /* GatewayInterface address */
    address public GatewayInterfaceAddress;

    /* Parent Entity Instance */
    ABIGatewayInterface GatewayInterfaceEntity;

    /* Asset Entities */
    ABIProposals public ProposalsEntity;
    ABIFunding public FundingEntity;
    ABIMilestones public MilestonesEntity;
    ABIMeetings public MeetingsEntity;
    ABIBountyManager public BountyManagerEntity;
    ABITokenManager public TokenManagerEntity;
    ABIListingContract public ListingContractEntity;
    ABIFundingManager public FundingManagerEntity;
    ABINewsContract public NewsContractEntity;

    /* Asset Collection */
    mapping (bytes32 => address) public AssetCollection;
    mapping (uint8 => bytes32) public AssetCollectionIdToName;
    uint8 public AssetCollectionNum = 0;

    event EventAppEntityReady ( address indexed _address );
    event EventAppEntityCodeUpgradeProposal ( address indexed _address, bytes32 indexed _sourceCodeUrl );
    event EventAppEntityInitAsset ( bytes32 indexed _name, address indexed _address );
    event EventAppEntityInitAssetsToThis ( uint8 indexed _assetNum );
    event EventAppEntityAssetsToNewApplication ( address indexed _address );
    event EventAppEntityLocked ( address indexed _address );

    address public deployerAddress;

    function ApplicationEntity() public {
        deployerAddress = msg.sender;
        setEntityStates();
        CurrentEntityState = getEntityState("NEW");
    }

    function setEntityStates() internal {

        // ApplicationEntity States
        EntityStates["__IGNORED__"]                 = 0;
        EntityStates["NEW"]                         = 1;
        EntityStates["WAITING"]                     = 2;

        EntityStates["IN_FUNDING"]                  = 3;

        EntityStates["IN_DEVELOPMENT"]              = 5;
        EntityStates["IN_CODE_UPGRADE"]             = 50;

        EntityStates["UPGRADED"]                    = 100;

        EntityStates["IN_GLOBAL_CASHBACK"]          = 150;
        EntityStates["LOCKED"]                      = 200;

        EntityStates["DEVELOPMENT_COMPLETE"]        = 250;
    }

    function getEntityState(bytes32 name) public view returns (uint8) {
        return EntityStates[name];
    }

    /*
    * Initialize Application and it's assets
    * If gateway is freshly deployed, just link
    * else, create a voting proposal that needs to be accepted for the linking
    *
    * @param        address _newAddress
    * @param        bytes32 _sourceCodeUrl
    *
    * @modifiers    requireNoParent, requireNotInitialised
    */
    function linkToGateway(
        address _GatewayInterfaceAddress,
        bytes32 _sourceCodeUrl
    )
        external
        requireNoParent
        requireNotInitialised
        onlyDeployer
    {
        GatewayInterfaceAddress = _GatewayInterfaceAddress;
        sourceCodeUrl = _sourceCodeUrl;

        // init gateway entity and set app address
        GatewayInterfaceEntity = ABIGatewayInterface(GatewayInterfaceAddress);
        GatewayInterfaceEntity.requestCodeUpgrade( address(this), sourceCodeUrl );
    }

    function setUpgradeState(uint8 state) public onlyGatewayInterface {
        CurrentEntityState = state;
    }

    /*
        For the sake of simplicity, and solidity warnings about "unknown gas usage" do this.. instead of sending
        an array of addresses
    */
    function addAssetProposals(address _assetAddresses) external requireNotInitialised onlyDeployer {
        ProposalsEntity = ABIProposals(_assetAddresses);
        assetInitialized("Proposals", _assetAddresses);
    }

    function addAssetFunding(address _assetAddresses) external requireNotInitialised onlyDeployer {
        FundingEntity = ABIFunding(_assetAddresses);
        assetInitialized("Funding", _assetAddresses);
    }

    function addAssetMilestones(address _assetAddresses) external requireNotInitialised onlyDeployer {
        MilestonesEntity = ABIMilestones(_assetAddresses);
        assetInitialized("Milestones", _assetAddresses);
    }

    function addAssetMeetings(address _assetAddresses) external requireNotInitialised onlyDeployer {
        MeetingsEntity = ABIMeetings(_assetAddresses);
        assetInitialized("Meetings", _assetAddresses);
    }

    function addAssetBountyManager(address _assetAddresses) external requireNotInitialised onlyDeployer {
        BountyManagerEntity = ABIBountyManager(_assetAddresses);
        assetInitialized("BountyManager", _assetAddresses);
    }

    function addAssetTokenManager(address _assetAddresses) external requireNotInitialised onlyDeployer {
        TokenManagerEntity = ABITokenManager(_assetAddresses);
        assetInitialized("TokenManager", _assetAddresses);
    }

    function addAssetFundingManager(address _assetAddresses) external requireNotInitialised onlyDeployer {
        FundingManagerEntity = ABIFundingManager(_assetAddresses);
        assetInitialized("FundingManager", _assetAddresses);
    }

    function addAssetListingContract(address _assetAddresses) external requireNotInitialised onlyDeployer {
        ListingContractEntity = ABIListingContract(_assetAddresses);
        assetInitialized("ListingContract", _assetAddresses);
    }

    function addAssetNewsContract(address _assetAddresses) external requireNotInitialised onlyDeployer {
        NewsContractEntity = ABINewsContract(_assetAddresses);
        assetInitialized("NewsContract", _assetAddresses);
    }

    function assetInitialized(bytes32 name, address _assetAddresses) internal {
        if(AssetCollection[name] == 0x0) {
            AssetCollectionIdToName[AssetCollectionNum] = name;
            AssetCollection[name] = _assetAddresses;
            AssetCollectionNum++;
        } else {
            // just replace
            AssetCollection[name] = _assetAddresses;
        }
        EventAppEntityInitAsset(name, _assetAddresses);
    }

    function getAssetAddressByName(bytes32 _name) public view returns (address) {
        return AssetCollection[_name];
    }

    /* Application Bylaws mapping */
    mapping (bytes32 => uint256) public BylawsUint256;
    mapping (bytes32 => bytes32) public BylawsBytes32;


    function setBylawUint256(bytes32 name, uint256 value) public requireNotInitialised onlyDeployer {
        BylawsUint256[name] = value;
    }

    function getBylawUint256(bytes32 name) public view requireInitialised returns (uint256) {
        return BylawsUint256[name];
    }

    function setBylawBytes32(bytes32 name, bytes32 value) public requireNotInitialised onlyDeployer {
        BylawsBytes32[name] = value;
    }

    function getBylawBytes32(bytes32 name) public view requireInitialised returns (bytes32) {
        return BylawsBytes32[name];
    }

    function initialize() external requireNotInitialised onlyGatewayInterface returns (bool) {
        _initialized = true;
        EventAppEntityReady( address(this) );
        return true;
    }

    function getParentAddress() external view returns(address) {
        return GatewayInterfaceAddress;
    }

    function createCodeUpgradeProposal(
        address _newAddress,
        bytes32 _sourceCodeUrl
    )
        external
        requireInitialised
        onlyGatewayInterface
        returns (uint256)
    {
        // proposals create new.. code upgrade proposal
        EventAppEntityCodeUpgradeProposal ( _newAddress, _sourceCodeUrl );

        // return true;
        return ProposalsEntity.addCodeUpgradeProposal(_newAddress, _sourceCodeUrl);
    }

    /*
    * Only a proposal can update the ApplicationEntity Contract address
    *
    * @param        address _newAddress
    * @modifiers    onlyProposalsAsset
    */
    function acceptCodeUpgradeProposal(address _newAddress) external onlyProposalsAsset  {
        GatewayInterfaceEntity.approveCodeUpgrade( _newAddress );
    }

    function initializeAssetsToThisApplication() external onlyGatewayInterface returns (bool) {

        for(uint8 i = 0; i < AssetCollectionNum; i++ ) {
            bytes32 _name = AssetCollectionIdToName[i];
            address current = AssetCollection[_name];
            if(current != address(0x0)) {
                if(!current.call(bytes4(keccak256("setInitialOwnerAndName(bytes32)")), _name) ) {
                    revert();
                }
            } else {
                revert();
            }
        }
        EventAppEntityInitAssetsToThis( AssetCollectionNum );

        return true;
    }

    function transferAssetsToNewApplication(address _newAddress) external onlyGatewayInterface returns (bool){
        for(uint8 i = 0; i < AssetCollectionNum; i++ ) {
            
            bytes32 _name = AssetCollectionIdToName[i];
            address current = AssetCollection[_name];
            if(current != address(0x0)) {
                if(!current.call(bytes4(keccak256("transferToNewOwner(address)")), _newAddress) ) {
                    revert();
                }
            } else {
                revert();
            }
        }
        EventAppEntityAssetsToNewApplication ( _newAddress );
        return true;
    }

    /*
    * Only the gateway interface can lock current app after a successful code upgrade proposal
    *
    * @modifiers    onlyGatewayInterface
    */
    function lock() external onlyGatewayInterface returns (bool) {
        _locked = true;
        CurrentEntityState = getEntityState("UPGRADED");
        EventAppEntityLocked(address(this));
        return true;
    }

    /*
        DUMMY METHOD, to be replaced in a future Code Upgrade with a check to determine if sender should be able to initiate a code upgrade
        specifically used after milestone development completes
    */
    address testAddressAllowUpgradeFrom;
    function canInitiateCodeUpgrade(address _sender) public view returns(bool) {
        // suppress warning
        if(testAddressAllowUpgradeFrom != 0x0 && testAddressAllowUpgradeFrom == _sender) {
            return true;
        }
        return false;
    }

    /*
    * Throws if called by any other entity except GatewayInterface
    */
    modifier onlyGatewayInterface() {
        require(GatewayInterfaceAddress != address(0) && msg.sender == GatewayInterfaceAddress);
        _;
    }

    /*
    * Throws if called by any other entity except Proposals Asset Contract
    */
    modifier onlyProposalsAsset() {
        require(msg.sender == address(ProposalsEntity));
        _;
    }

    modifier requireNoParent() {
        require(GatewayInterfaceAddress == address(0x0));
        _;
    }

    modifier requireNotInitialised() {
        require(_initialized == false && _locked == false);
        _;
    }

    modifier requireInitialised() {
        require(_initialized == true && _locked == false);
        _;
    }

    modifier onlyDeployer() {
        require(msg.sender == deployerAddress);
        _;
    }

    event DebugApplicationRequiredChanges( uint8 indexed _current, uint8 indexed _required );
    event EventApplicationEntityProcessor(uint8 indexed _current, uint8 indexed _required);

    /*
        We could create a generic method that iterates through all assets, and using assembly language get the return
        value of the "hasRequiredStateChanges" method on each asset. Based on return, run doStateChanges on them or not.

        Or we could be using a generic ABI contract that only defines the "hasRequiredStateChanges" and "doStateChanges"
        methods thus not requiring any assembly variable / memory management

        Problem with both cases is the fact that our application needs to change only specific asset states depending
        on it's own current state, thus making a generic call wasteful in gas usage.

        Let's stay away from that and follow the same approach as we do inside an asset.
        - view method: -> get required state changes
        - view method: -> has state changes
        - processor that does the actual changes.
        - doStateChanges recursive method that runs the processor if views require it to.

        // pretty similar to FundingManager
    */

    function doStateChanges() public {

        if(!_locked) {
            // process assets first so we can initialize them from NEW to WAITING
            AssetProcessor();

            var (returnedCurrentEntityState, EntityStateRequired) = getRequiredStateChanges();
            bool callAgain = false;

            DebugApplicationRequiredChanges( returnedCurrentEntityState, EntityStateRequired );

            if(EntityStateRequired != getEntityState("__IGNORED__") ) {
                EntityProcessor(EntityStateRequired);
                callAgain = true;
            }
        } else {
            revert();
        }
    }

    function hasRequiredStateChanges() public view returns (bool) {
        bool hasChanges = false;
        if(!_locked) {
            var (returnedCurrentEntityState, EntityStateRequired) = getRequiredStateChanges();
            // suppress unused local variable warning
            returnedCurrentEntityState = 0;
            if(EntityStateRequired != getEntityState("__IGNORED__") ) {
                hasChanges = true;
            }

            if(anyAssetHasChanges()) {
                hasChanges = true;
            }
        }
        return hasChanges;
    }

    function anyAssetHasChanges() public view returns (bool) {
        if( FundingEntity.hasRequiredStateChanges() ) {
            return true;
        }
        if( FundingManagerEntity.hasRequiredStateChanges() ) {
            return true;
        }
        if( MilestonesEntity.hasRequiredStateChanges() ) {
            return true;
        }
        if( ProposalsEntity.hasRequiredStateChanges() ) {
            return true;
        }

        return extendedAnyAssetHasChanges();
    }

    // use this when extending "has changes"
    function extendedAnyAssetHasChanges() internal view returns (bool) {
        if(_initialized) {}
        return false;
    }

    // use this when extending "asset state processor"
    function extendedAssetProcessor() internal  {
        // does not exist, but we check anyway to bypass compier warning about function state mutability
        if ( CurrentEntityState == 255 ) {
            ProposalsEntity.process();
        }
    }

    // view methods decide if changes are to be made
    // in case of tasks, we do them in the Processors.

    function AssetProcessor() internal {


        if ( CurrentEntityState == getEntityState("NEW") ) {

            // move all assets that have states to "WAITING"
            if(FundingEntity.hasRequiredStateChanges()) {
                FundingEntity.doStateChanges();
            }

            if(FundingManagerEntity.hasRequiredStateChanges()) {
                FundingManagerEntity.doStateChanges();
            }

            if( MilestonesEntity.hasRequiredStateChanges() ) {
                MilestonesEntity.doStateChanges();
            }

        } else if ( CurrentEntityState == getEntityState("WAITING") ) {

            if( FundingEntity.hasRequiredStateChanges() ) {
                FundingEntity.doStateChanges();
            }
        }
        else if ( CurrentEntityState == getEntityState("IN_FUNDING") ) {

            if( FundingEntity.hasRequiredStateChanges() ) {
                FundingEntity.doStateChanges();
            }

            if( FundingManagerEntity.hasRequiredStateChanges() ) {
                FundingManagerEntity.doStateChanges();
            }
        }
        else if ( CurrentEntityState == getEntityState("IN_DEVELOPMENT") ) {

            if( FundingManagerEntity.hasRequiredStateChanges() ) {
                FundingManagerEntity.doStateChanges();
            }

            if(MilestonesEntity.hasRequiredStateChanges()) {
                MilestonesEntity.doStateChanges();
            }

            if(ProposalsEntity.hasRequiredStateChanges()) {
                ProposalsEntity.process();
            }
        }
        else if ( CurrentEntityState == getEntityState("DEVELOPMENT_COMPLETE") ) {

            if(ProposalsEntity.hasRequiredStateChanges()) {
                ProposalsEntity.process();
            }
        }

        extendedAssetProcessor();
    }

    function EntityProcessor(uint8 EntityStateRequired) internal {

        EventApplicationEntityProcessor( CurrentEntityState, EntityStateRequired );

        // Update our Entity State
        CurrentEntityState = EntityStateRequired;

        // Do State Specific Updates

        if ( EntityStateRequired == getEntityState("IN_FUNDING") ) {
            // run Funding state changer
            // doStateChanges
        }

        // EntityStateRequired = getEntityState("IN_FUNDING");


        // Funding Failed
        /*
        if ( EntityStateRequired == getEntityState("FUNDING_FAILED_START") ) {
            // set ProcessVaultList Task
            currentTask = getHash("FUNDING_FAILED_START", "");
            CurrentEntityState = getEntityState("FUNDING_FAILED_PROGRESS");
        } else if ( EntityStateRequired == getEntityState("FUNDING_FAILED_PROGRESS") ) {
            ProcessVaultList(VaultCountPerProcess);

            // Funding Successful
        } else if ( EntityStateRequired == getEntityState("FUNDING_SUCCESSFUL_START") ) {

            // init SCADA variable cache.
            if(TokenSCADAEntity.initCacheForVariables()) {
                // start processing vaults
                currentTask = getHash("FUNDING_SUCCESSFUL_START", "");
                CurrentEntityState = getEntityState("FUNDING_SUCCESSFUL_PROGRESS");
            } else {
                // something went really wrong, just bail out for now
                CurrentEntityState = getEntityState("FUNDING_FAILED_START");
            }
        } else if ( EntityStateRequired == getEntityState("FUNDING_SUCCESSFUL_PROGRESS") ) {
            ProcessVaultList(VaultCountPerProcess);
            // Milestones
        } else if ( EntityStateRequired == getEntityState("MILESTONE_PROCESS_START") ) {
            currentTask = getHash("MILESTONE_PROCESS_START", getCurrentMilestoneId() );
            CurrentEntityState = getEntityState("MILESTONE_PROCESS_PROGRESS");
        } else if ( EntityStateRequired == getEntityState("MILESTONE_PROCESS_PROGRESS") ) {
            ProcessVaultList(VaultCountPerProcess);

            // Completion
        } else if ( EntityStateRequired == getEntityState("COMPLETE_PROCESS_START") ) {
            currentTask = getHash("COMPLETE_PROCESS_START", "");
            CurrentEntityState = getEntityState("COMPLETE_PROCESS_PROGRESS");
        } else if ( EntityStateRequired == getEntityState("COMPLETE_PROCESS_PROGRESS") ) {
            ProcessVaultList(VaultCountPerProcess);
        }
        */
    }

    /*
     * Method: Get Entity Required State Changes
     *
     * @access       public
     * @type         method
     *
     * @return       ( uint8 CurrentEntityState, uint8 EntityStateRequired )
     */
    function getRequiredStateChanges() public view returns (uint8, uint8) {

        uint8 EntityStateRequired = getEntityState("__IGNORED__");

        if( CurrentEntityState == getEntityState("NEW") ) {
            // general so we know we initialized
            EntityStateRequired = getEntityState("WAITING");

        } else if ( CurrentEntityState == getEntityState("WAITING") ) {

            // Funding Started
            if( FundingEntity.CurrentEntityState() == FundingEntity.getEntityState("IN_PROGRESS") ) {
                EntityStateRequired = getEntityState("IN_FUNDING");
            }

        } else if ( CurrentEntityState == getEntityState("IN_FUNDING") ) {

            if(FundingEntity.CurrentEntityState() == FundingEntity.getEntityState("SUCCESSFUL_FINAL")) {
                // SUCCESSFUL_FINAL means FUNDING was successful, and FundingManager has finished distributing tokens and ether
                EntityStateRequired = getEntityState("IN_DEVELOPMENT");

            } else if(FundingEntity.CurrentEntityState() == FundingEntity.getEntityState("FAILED_FINAL")) {
                // Funding failed..
                EntityStateRequired = getEntityState("IN_GLOBAL_CASHBACK");
            }

        } else if ( CurrentEntityState == getEntityState("IN_DEVELOPMENT") ) {

            // this is where most things happen
            // milestones get developed
            // code upgrades get initiated
            // proposals get created and voted

            /*
            if(ProposalsEntity.CurrentEntityState() == ProposalsEntity.getEntityState("CODE_UPGRADE_ACCEPTED")) {
                // check if we have an upgrade proposal that is accepted and move into said state
                EntityStateRequired = getEntityState("START_CODE_UPGRADE");
            }
            else
            */

            if(MilestonesEntity.CurrentEntityState() == MilestonesEntity.getEntityState("DEVELOPMENT_COMPLETE")) {
                // check if we finished developing all milestones .. and if so move state to complete.
                EntityStateRequired = getEntityState("DEVELOPMENT_COMPLETE");
            }

            if(MilestonesEntity.CurrentEntityState() == MilestonesEntity.getEntityState("DEADLINE_MEETING_TIME_FAILED")) {
                EntityStateRequired = getEntityState("IN_GLOBAL_CASHBACK");
            }

        } else if ( CurrentEntityState == getEntityState("START_CODE_UPGRADE") ) {

            // check stuff to move into IN_CODE_UPGRADE
            // EntityStateRequired = getEntityState("IN_CODE_UPGRADE");

        } else if ( CurrentEntityState == getEntityState("IN_CODE_UPGRADE") ) {

            // check stuff to finish
            // EntityStateRequired = getEntityState("FINISHED_CODE_UPGRADE");

        } else if ( CurrentEntityState == getEntityState("FINISHED_CODE_UPGRADE") ) {

            // move to IN_DEVELOPMENT or DEVELOPMENT_COMPLETE based on state before START_CODE_UPGRADE.
            // EntityStateRequired = getEntityState("DEVELOPMENT_COMPLETE");
            // EntityStateRequired = getEntityState("FINISHED_CODE_UPGRADE");

        }

        return (CurrentEntityState, EntityStateRequired);
    }

    function getTimestamp() view public returns (uint256) {
        return now;
    }

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_GatewayInterfaceAddress","type":"address"},{"name":"_sourceCodeUrl","type":"bytes32"}],"name":"linkToGateway","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BountyManagerEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetMeetings","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_locked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initializeAssetsToThisApplication","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_initialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MilestonesEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"transferAssetsToNewApplication","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ListingContractEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AssetCollectionNum","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"BylawsUint256","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetProposals","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TokenManagerEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"anyAssetHasChanges","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"},{"name":"_sourceCodeUrl","type":"bytes32"}],"name":"createCodeUpgradeProposal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"}],"name":"canInitiateCodeUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"bytes32"}],"name":"getAssetAddressByName","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"FundingManagerEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"EntityStates","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CurrentEntityState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"acceptCodeUpgradeProposal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getRequiredStateChanges","outputs":[{"name":"","type":"uint8"},{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"BylawsBytes32","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ProposalsEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getParentAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetBountyManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GatewayInterfaceAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetNewsContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetTokenManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetFunding","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"bytes32"},{"name":"value","type":"uint256"}],"name":"setBylawUint256","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"FundingEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"bytes32"}],"name":"getBylawUint256","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"AssetCollectionIdToName","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MeetingsEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"state","type":"uint8"}],"name":"setUpgradeState","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetMilestones","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetListingContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"bytes32"}],"name":"getEntityState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"bytes32"},{"name":"value","type":"bytes32"}],"name":"setBylawBytes32","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetFundingManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"NewsContractEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"bytes32"}],"name":"getBylawBytes32","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"deployerAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"AssetCollection","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"doStateChanges","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hasRequiredStateChanges","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"}],"name":"EventAppEntityReady","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":true,"name":"_sourceCodeUrl","type":"bytes32"}],"name":"EventAppEntityCodeUpgradeProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_name","type":"bytes32"},{"indexed":true,"name":"_address","type":"address"}],"name":"EventAppEntityInitAsset","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_assetNum","type":"uint8"}],"name":"EventAppEntityInitAssetsToThis","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"}],"name":"EventAppEntityAssetsToNewApplication","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"}],"name":"EventAppEntityLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_current","type":"uint8"},{"indexed":true,"name":"_required","type":"uint8"}],"name":"DebugApplicationRequiredChanges","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_current","type":"uint8"},{"indexed":true,"name":"_required","type":"uint8"}],"name":"EventApplicationEntityProcessor","type":"event"}]

60606040526001805461ffff191690556010805460ff1916905534156200002557600080fd5b6010805461010060a860020a03191661010033600160a060020a0316021790556200005d640100000000620000b6810262002a721704565b620000967f4e4557000000000000000000000000000000000000000000000000000000000064010000000062001d1e6200028b82021704565b600160026101000a81548160ff021916908360ff160217905550620002a0565b600260208190527f1571986cac29001408d5a805c092732b69d7a2216aa6d86673291f293368b4a9805460ff199081169091557f4367277135fbef6cf87fb14e9d47ade1482960dbbf00c01d394375f71771e0398054821660011790557f7913a6fa19726024782ef7a148e7db550dcbc51eb470d6242b931c402bba5c2f805482169092179091557f83c8fefbd7946a8864cd202d80b5778d5ba4cb2cb1fbdac017c1f6f04cef78b18054821660031790557fdae2bb7674ae32f749b72990d8a1a5e569be40c6cc43ccfc4bb3c21bc01431108054821660051790557f8d094966231befeec3e4d0db8e3587cc64b69e454adeea48d0e9db708a6eef068054821660321790557feb7b095427e081bad6c442176766b1258143508dc792040caa37d33c61addf458054821660641790557f1e7629750ed71ff73b296b8f7616be8ecba180eaef985f975be8a8a674e5088a8054821660961790557f4ae593bd57a2b32aef0e06cd62e50b8d9de58ff7fc66306c5146ad26355869798054821660c81790557f444556454c4f504d454e545f434f4d504c4554450000000000000000000000006000527f840289b0cf7cf1c971b6bfea7a0360d02581332e68ee0335db345f3c99c0fef6805490911660fa179055565b60009081526002602052604090205460ff1690565b612ca180620002b06000396000f300606060405236156102405763ffffffff60e060020a600035041663093e461c8114610245578063188ec3561461026957806319ee5bca1461028e5780631c0933c8146102bd578063223fcbc9146102dc57806322b01343146103035780633072cf601461031657806330f7589014610329578063361821271461033c578063385fbe241461035b5780634073002e1461036e5780634646b9b9146103975780634b630b93146103ad57806351fc6f59146103cc57806357945e3e146103df578063584ae175146103f25780635d13394514610414578063689216c7146104335780636ad49245146104495780636d0a11c31461045c5780637278d623146104725780638129fc1c14610485578063885acb6a1461049857806388db84bc146104b75780638f93668c146104e8578063919baade146104fe57806391fa0555146105115780639258b19514610524578063961ffc6814610543578063a079f58b14610556578063a2b09d9b14610575578063a32a626d14610594578063a871d86d146105b3578063b37edb66146105cc578063b44ce893146105df578063b5072dc9146105f5578063b8109e1a1461060e578063cf70c6c714610621578063d079db0a1461063a578063dc7a9aea14610659578063e490c51314610678578063e4deeb4f1461068e578063e55b4ed0146106a7578063e8be2e8e146106c6578063ee44da7e146106d9578063efdee94f146106ef578063f5a049e814610702578063f83d08ba14610718578063f86282da1461072b578063fa9d23521461073e575b600080fd5b341561025057600080fd5b610267600160a060020a0360043516602435610751565b005b341561027457600080fd5b61027c610859565b60405190815260200160405180910390f35b341561029957600080fd5b6102a161085e565b604051600160a060020a03909116815260200160405180910390f35b34156102c857600080fd5b610267600160a060020a036004351661086d565b34156102e757600080fd5b6102ef6108fb565b604051901515815260200160405180910390f35b341561030e57600080fd5b6102ef610909565b341561032157600080fd5b6102ef610a56565b341561033457600080fd5b6102a1610a5f565b341561034757600080fd5b6102ef600160a060020a0360043516610a6e565b341561036657600080fd5b6102a1610bc8565b341561037957600080fd5b610381610bd7565b60405160ff909116815260200160405180910390f35b34156103a257600080fd5b61027c600435610be0565b34156103b857600080fd5b610267600160a060020a0360043516610bf2565b34156103d757600080fd5b6102a1610c7d565b34156103ea57600080fd5b6102ef610c8c565b34156103fd57600080fd5b61027c600160a060020a0360043516602435610e5b565b341561041f57600080fd5b6102ef600160a060020a0360043516610f73565b341561043e57600080fd5b6102a1600435610fb3565b341561045457600080fd5b6102a1610fce565b341561046757600080fd5b610381600435610fdd565b341561047d57600080fd5b610381610ff2565b341561049057600080fd5b6102ef611001565b34156104a357600080fd5b610267600160a060020a03600435166110a5565b34156104c257600080fd5b6104ca611137565b60405160ff9283168152911660208201526040908101905180910390f35b34156104f357600080fd5b61027c600435611883565b341561050957600080fd5b6102a1611895565b341561051c57600080fd5b6102a16118a4565b341561052f57600080fd5b610267600160a060020a03600435166118b3565b341561054e57600080fd5b6102a161193e565b341561056157600080fd5b610267600160a060020a036004351661194d565b341561058057600080fd5b610267600160a060020a03600435166119d8565b341561059f57600080fd5b610267600160a060020a0360043516611a63565b34156105be57600080fd5b610267600435602435611aee565b34156105d757600080fd5b6102a1611b46565b34156105ea57600080fd5b61027c600435611b55565b341561060057600080fd5b61027c60ff60043516611b96565b341561061957600080fd5b6102a1611ba8565b341561062c57600080fd5b61026760ff60043516611bb7565b341561064557600080fd5b610267600160a060020a0360043516611c08565b341561066457600080fd5b610267600160a060020a0360043516611c93565b341561068357600080fd5b610381600435611d1e565b341561069957600080fd5b610267600435602435611d33565b34156106b257600080fd5b610267600160a060020a0360043516611d8b565b34156106d157600080fd5b6102a1611e16565b34156106e457600080fd5b61027c600435611e25565b34156106fa57600080fd5b6102a1611e66565b341561070d57600080fd5b6102a1600435611e7a565b341561072357600080fd5b6102ef611e95565b341561073657600080fd5b610267611f59565b341561074957600080fd5b6102ef612006565b600354600160a060020a03161561076757600080fd5b60015460ff161580156107825750600154610100900460ff16155b151561078d57600080fd5b60105433600160a060020a0390811661010090920416146107ad57600080fd5b60038054600160a060020a03808516600160a060020a0319928316179283905560008481556004805490931693821693909317918290551690637913c46590309084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561083a57600080fd5b6102c65a03f1151561084b57600080fd5b505050604051805150505050565b425b90565b600954600160a060020a031681565b60015460ff161580156108885750600154610100900460ff16155b151561089357600080fd5b60105433600160a060020a0390811661010090920416146108b357600080fd5b60088054600160a060020a031916600160a060020a0383161790556108f87f4d656574696e677300000000000000000000000000000000000000000000000082612084565b50565b600154610100900460ff1681565b600354600090819081908190600160a060020a03161580159061093a575060035433600160a060020a039081169116145b151561094557600080fd5b600092505b60105460ff9081169084161015610a1a57505060ff81166000908152600f6020908152604080832054808452600e90925290912054600160a060020a031680156102405780600160a060020a03166040517f736574496e697469616c4f776e6572416e644e616d65286279746573333229008152601f01604051809103902060e060020a90048360405160e060020a63ffffffff8416028152600481019190915260240160006040518083038160008761646e5a03f1925050501515610a0f57600080fd5b60019092019161094a565b60105460ff167f4447098c49983e6ce7df34228d2fb3ee1e206320dafca142ce333703fd424d0660405160405180910390a26001935050505090565b60015460ff1681565b600754600160a060020a031681565b600354600090819081908190600160a060020a031615801590610a9f575060035433600160a060020a039081169116145b1515610aaa57600080fd5b600092505b60105460ff9081169084161015610b8757505060ff81166000908152600f6020908152604080832054808452600e90925290912054600160a060020a031680156102405780600160a060020a03166040517f7472616e73666572546f4e65774f776e657228616464726573732900000000008152601b01604051809103902060e060020a90048660405160e060020a63ffffffff8416028152600160a060020a03909116600482015260240160006040518083038160008761646e5a03f1925050501515610b7c57600080fd5b600190920191610aaf565b84600160a060020a03167fd29ca17da27937497e29787c151a78fc285933f2efa462df2d244adf8c70731b60405160405180910390a2506001949350505050565b600b54600160a060020a031681565b60105460ff1681565b60116020526000908152604090205481565b60015460ff16158015610c0d5750600154610100900460ff16155b1515610c1857600080fd5b60105433600160a060020a039081166101009092041614610c3857600080fd5b60058054600160a060020a031916600160a060020a0383161790556108f87f50726f706f73616c73000000000000000000000000000000000000000000000082612084565b600a54600160a060020a031681565b600654600090600160a060020a031663fa9d235282604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610cd657600080fd5b6102c65a03f11515610ce757600080fd5b5050506040518051905015610cfe5750600161085b565b600c54600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610d4657600080fd5b6102c65a03f11515610d5757600080fd5b5050506040518051905015610d6e5750600161085b565b600754600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610db657600080fd5b6102c65a03f11515610dc757600080fd5b5050506040518051905015610dde5750600161085b565b600554600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e2657600080fd5b6102c65a03f11515610e3757600080fd5b5050506040518051905015610e4e5750600161085b565b610e5661215d565b905090565b6001805460009160ff9091161515148015610e7e5750600154610100900460ff16155b1515610e8957600080fd5b600354600160a060020a031615801590610eb1575060035433600160a060020a039081169116145b1515610ebc57600080fd5b81600160a060020a0384167f713af27b8f37c676c63b76fd228c9ddd248ba45e410ec95807aad46d5b4b65c260405160405180910390a3600554600160a060020a03166366ea495d848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f5257600080fd5b6102c65a03f11515610f6357600080fd5b5050506040518051949350505050565b601354600090600160a060020a031615801590610f9d5750601354600160a060020a038381169116145b15610faa57506001610fae565b5060005b919050565b6000908152600e6020526040902054600160a060020a031690565b600c54600160a060020a031681565b60026020526000908152604090205460ff1681565b60015462010000900460ff1681565b60015460009060ff1615801561101f5750600154610100900460ff16155b151561102a57600080fd5b600354600160a060020a031615801590611052575060035433600160a060020a039081169116145b151561105d57600080fd5b6001805460ff191681179055600160a060020a0330167fac323ab32ca3474d93de997e67214e5e099848e5034ed2e5cbf21be4b8995cf160405160405180910390a250600190565b60055433600160a060020a039081169116146110c057600080fd5b600454600160a060020a0316630e09461d8260006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561111957600080fd5b6102c65a03f1151561112a57600080fd5b5050506040518051505050565b60008060006111657f5f5f49474e4f5245445f5f000000000000000000000000000000000000000000611d1e565b90506111907f4e45570000000000000000000000000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156111d6576111cf7f57414954494e4700000000000000000000000000000000000000000000000000611d1e565b905061186f565b6111ff7f57414954494e4700000000000000000000000000000000000000000000000000611d1e565b60015462010000900460ff9081169116141561132b57600654600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff83160281527f494e5f50524f47524553530000000000000000000000000000000000000000006004820152602401602060405180830381600087803b151561128357600080fd5b6102c65a03f1151561129457600080fd5b505050604051805160065460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156112eb57600080fd5b6102c65a03f115156112fc57600080fd5b5050506040518051905060ff161415611326576111cf600080516020612c36833981519152611d1e565b61186f565b611342600080516020612c36833981519152611d1e565b60015462010000900460ff908116911614156115a557600654600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff83160281527f5355434345535346554c5f46494e414c000000000000000000000000000000006004820152602401602060405180830381600087803b15156113c657600080fd5b6102c65a03f115156113d757600080fd5b505050604051805160065460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561142e57600080fd5b6102c65a03f1151561143f57600080fd5b5050506040518051905060ff1614156114825761147b7f494e5f444556454c4f504d454e54000000000000000000000000000000000000611d1e565b9050611326565b600654600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff83160281527f4641494c45445f46494e414c00000000000000000000000000000000000000006004820152602401602060405180830381600087803b15156114f057600080fd5b6102c65a03f1151561150157600080fd5b505050604051805160065460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561155857600080fd5b6102c65a03f1151561156957600080fd5b5050506040518051905060ff161415611326576111cf7f494e5f474c4f42414c5f434153484241434b0000000000000000000000000000611d1e565b6115ce7f494e5f444556454c4f504d454e54000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156117bc57600754600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff8316028152600080516020612c568339815191526004820152602401602060405180830381600087803b151561164057600080fd5b6102c65a03f1151561165157600080fd5b505050604051805160075460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156116a857600080fd5b6102c65a03f115156116b957600080fd5b5050506040518051905060ff1614156116e6576116e3600080516020612c56833981519152611d1e565b90505b600754600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff83160281527f444541444c494e455f4d454554494e475f54494d455f4641494c4544000000006004820152602401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b505050604051805160075460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561155857600080fd5b6117e57f53544152545f434f44455f555047524144450000000000000000000000000000611d1e565b60015462010000900460ff908116911614156118005761186f565b6118297f494e5f434f44455f555047524144450000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156118445761186f565b61186d7f46494e49534845445f434f44455f555047524144450000000000000000000000611d1e565b505b60015462010000900460ff16939092509050565b60126020526000908152604090205481565b600554600160a060020a031681565b600354600160a060020a031690565b60015460ff161580156118ce5750600154610100900460ff16155b15156118d957600080fd5b60105433600160a060020a0390811661010090920416146118f957600080fd5b60098054600160a060020a031916600160a060020a0383161790556108f87f426f756e74794d616e616765720000000000000000000000000000000000000082612084565b600354600160a060020a031681565b60015460ff161580156119685750600154610100900460ff16155b151561197357600080fd5b60105433600160a060020a03908116610100909204161461199357600080fd5b600d8054600160a060020a031916600160a060020a0383161790556108f87f4e657773436f6e7472616374000000000000000000000000000000000000000082612084565b60015460ff161580156119f35750600154610100900460ff16155b15156119fe57600080fd5b60105433600160a060020a039081166101009092041614611a1e57600080fd5b600a8054600160a060020a031916600160a060020a0383161790556108f87f546f6b656e4d616e61676572000000000000000000000000000000000000000082612084565b60015460ff16158015611a7e5750600154610100900460ff16155b1515611a8957600080fd5b60105433600160a060020a039081166101009092041614611aa957600080fd5b60068054600160a060020a031916600160a060020a0383161790556108f87f46756e64696e670000000000000000000000000000000000000000000000000082612084565b60015460ff16158015611b095750600154610100900460ff16155b1515611b1457600080fd5b60105433600160a060020a039081166101009092041614611b3457600080fd5b60009182526011602052604090912055565b600654600160a060020a031681565b6001805460009160ff9091161515148015611b785750600154610100900460ff16155b1515611b8357600080fd5b5060009081526011602052604090205490565b600f6020526000908152604090205481565b600854600160a060020a031681565b600354600160a060020a031615801590611bdf575060035433600160a060020a039081169116145b1515611bea57600080fd5b6001805460ff909216620100000262ff000019909216919091179055565b60015460ff16158015611c235750600154610100900460ff16155b1515611c2e57600080fd5b60105433600160a060020a039081166101009092041614611c4e57600080fd5b60078054600160a060020a031916600160a060020a0383161790556108f87f4d696c6573746f6e65730000000000000000000000000000000000000000000082612084565b60015460ff16158015611cae5750600154610100900460ff16155b1515611cb957600080fd5b60105433600160a060020a039081166101009092041614611cd957600080fd5b600b8054600160a060020a031916600160a060020a0383161790556108f87f4c697374696e67436f6e7472616374000000000000000000000000000000000082612084565b60009081526002602052604090205460ff1690565b60015460ff16158015611d4e5750600154610100900460ff16155b1515611d5957600080fd5b60105433600160a060020a039081166101009092041614611d7957600080fd5b60009182526012602052604090912055565b60015460ff16158015611da65750600154610100900460ff16155b1515611db157600080fd5b60105433600160a060020a039081166101009092041614611dd157600080fd5b600c8054600160a060020a031916600160a060020a0383161790556108f87f46756e64696e674d616e6167657200000000000000000000000000000000000082612084565b600d54600160a060020a031681565b6001805460009160ff9091161515148015611e485750600154610100900460ff16155b1515611e5357600080fd5b5060009081526012602052604090205490565b6010546101009004600160a060020a031681565b600e60205260009081526040902054600160a060020a031681565b600354600090600160a060020a031615801590611ec0575060035433600160a060020a039081169116145b1515611ecb57600080fd5b6001805461ff001916610100179055611f037f5550475241444544000000000000000000000000000000000000000000000000611d1e565b600160026101000a81548160ff021916908360ff16021790555030600160a060020a03167f9235fcc46e6304061bb597b82120f4254379ad41518bdabfe6a5aadf2bbd984460405160405180910390a250600190565b60008060006001809054906101000a900460ff16151561024057611f7b612162565b611f83611137565b92509250600090508160ff168360ff167f2f71aa01b3777c5ebd2c43bf8751a4ba245c9aba8350c804264cdaeed3ff0e4660405160405180910390a3611fe87f5f5f49474e4f5245445f5f000000000000000000000000000000000000000000611d1e565b60ff83811691161461200157611ffd826129a1565b5060015b505050565b600154600090819081908190610100900460ff16151561207c57612028611137565b91509150600091506120597f5f5f49474e4f5245445f5f000000000000000000000000000000000000000000611d1e565b60ff82811691161461206a57600192505b612072610c8c565b1561207c57600192505b509092915050565b6000828152600e6020526040902054600160a060020a031615156120fa576010805460ff9081166000908152600f60209081526040808320879055868352600e90915290208054600160a060020a031916600160a060020a038516179055815460ff198116908216600101909116179055612122565b6000828152600e602052604090208054600160a060020a031916600160a060020a0383161790555b600160a060020a038116827f9bcd2a1903ecb0fa792d8f80f3afd4b828fc813aa3713585baf4e78f8b9adcd760405160405180910390a35050565b600090565b61218b7f4e45570000000000000000000000000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156123da57600654600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156121e957600080fd5b6102c65a03f115156121fa57600080fd5b505050604051805190501561225d57600654600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561224857600080fd5b6102c65a03f1151561225957600080fd5b5050505b600c54600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156122a557600080fd5b6102c65a03f115156122b657600080fd5b505050604051805190501561231957600c54600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561230457600080fd5b6102c65a03f1151561231557600080fd5b5050505b600754600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561236157600080fd5b6102c65a03f1151561237257600080fd5b50505060405180519050156123d557600754600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156123c057600080fd5b6102c65a03f115156123d157600080fd5b5050505b612997565b6124037f57414954494e4700000000000000000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156124c057600654600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561246157600080fd5b6102c65a03f1151561247257600080fd5b50505060405180519050156123d557600654600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156123c057600080fd5b6124d7600080516020612c36833981519152611d1e565b60015462010000900460ff9081169116141561265057600654600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561253557600080fd5b6102c65a03f1151561254657600080fd5b50505060405180519050156125a957600654600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561259457600080fd5b6102c65a03f115156125a557600080fd5b5050505b600c54600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156125f157600080fd5b6102c65a03f1151561260257600080fd5b50505060405180519050156123d557600c54600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156123c057600080fd5b6126797f494e5f444556454c4f504d454e54000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156128ae57600c54600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156126d757600080fd5b6102c65a03f115156126e857600080fd5b505050604051805190501561274b57600c54600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561273657600080fd5b6102c65a03f1151561274757600080fd5b5050505b600754600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561279357600080fd5b6102c65a03f115156127a457600080fd5b505050604051805190501561280757600754600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156127f257600080fd5b6102c65a03f1151561280357600080fd5b5050505b600554600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561284f57600080fd5b6102c65a03f1151561286057600080fd5b50505060405180519050156123d557600554600160a060020a031663c33fb8776040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156123c057600080fd5b6128c5600080516020612c56833981519152611d1e565b60015462010000900460ff9081169116141561299757600554600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561292357600080fd5b6102c65a03f1151561293457600080fd5b505050604051805190501561299757600554600160a060020a031663c33fb8776040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561298257600080fd5b6102c65a03f1151561299357600080fd5b5050505b61299f612a0e565b565b60015460ff80831691620100009004167f5b95f0f469049848050d0240c5c05f2803667833231a58c81d6100d5a684891260405160405180910390a36001805462ff000019166201000060ff841602179055612a0a600080516020612c36833981519152611d1e565b5050565b60015460ff620100009091048116141561299f57600554600160a060020a031663c33fb8776040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515612a6157600080fd5b6102c65a03f1151561200157600080fd5b600260208190527f1571986cac29001408d5a805c092732b69d7a2216aa6d86673291f293368b4a9805460ff199081169091557f4367277135fbef6cf87fb14e9d47ade1482960dbbf00c01d394375f71771e0398054821660011790557f7913a6fa19726024782ef7a148e7db550dcbc51eb470d6242b931c402bba5c2f805482169092179091557f83c8fefbd7946a8864cd202d80b5778d5ba4cb2cb1fbdac017c1f6f04cef78b18054821660031790557fdae2bb7674ae32f749b72990d8a1a5e569be40c6cc43ccfc4bb3c21bc01431108054821660051790557f8d094966231befeec3e4d0db8e3587cc64b69e454adeea48d0e9db708a6eef068054821660321790557feb7b095427e081bad6c442176766b1258143508dc792040caa37d33c61addf458054821660641790557f1e7629750ed71ff73b296b8f7616be8ecba180eaef985f975be8a8a674e5088a8054821660961790557f4ae593bd57a2b32aef0e06cd62e50b8d9de58ff7fc66306c5146ad26355869798054821660c8179055600080516020612c568339815191526000527f840289b0cf7cf1c971b6bfea7a0360d02581332e68ee0335db345f3c99c0fef6805490911660fa1790555600494e5f46554e44494e4700000000000000000000000000000000000000000000444556454c4f504d454e545f434f4d504c455445000000000000000000000000a165627a7a723058202d817e64af6b8957e9bbd4b19125be99bd840aec25bfa2feb8291c4428f98fa60029

Swarm Source

bzzr://2d817e64af6b8957e9bbd4b19125be99bd840aec25bfa2feb8291c4428f98fa6
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.