Contract 0x584af734A101538cAd9b9522D1B9C87f1c08F9c4

 
Txn Hash Method
Block
From
To
Value
0x6398c84f3069b8ddb7141dc20d9640c25cb4ce1e418a63bcbf592941f447b48eApply And Lock S...50207102018-02-03 2:35:171331 days 22 hrs agoBlockbits: Deployer IN  0x584af734a101538cad9b9522d1b9c87f1c08f9c40 Ether0.0002982110
0x02794025571e1ccd3b99f4e79aeea99f12741a788058676ddb2eb328f158889cAdd Settings50205082018-02-03 1:48:161331 days 23 hrs agoBlockbits: Deployer IN  0x584af734a101538cad9b9522d1b9c87f1c08f9c40 Ether0.0008745610
0x4eb4caae95e06d6113f5ab637246f3b5bae671e33cb2ec1926a5cc4b2701b6dcSet Initial Appl...50154092018-02-02 5:03:241332 days 19 hrs agoBlockbits: Deployer IN  0x584af734a101538cad9b9522d1b9c87f1c08f9c40 Ether0.0004427910
0xe5ca23540d116a8c013d55610b12de09284ac31a984bc538b0a21f3ec8e7f93f0x6060604050151932018-02-02 4:12:221332 days 20 hrs agoBlockbits: Deployer IN  Create: TokenManager0 Ether0.0121528910
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenManager

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        Application Asset Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

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

*/




contract ApplicationAsset {

    event EventAppAssetOwnerSet(bytes32 indexed _name, address indexed _owner);
    event EventRunBeforeInit(bytes32 indexed _name);
    event EventRunBeforeApplyingSettings(bytes32 indexed _name);


    mapping (bytes32 => uint8) public EntityStates;
    mapping (bytes32 => uint8) public RecordStates;
    uint8 public CurrentEntityState;

    event EventEntityProcessor(bytes32 indexed _assetName, uint8 indexed _current, uint8 indexed _required);
    event DebugEntityRequiredChanges( bytes32 _assetName, uint8 indexed _current, uint8 indexed _required );

    bytes32 public assetName;

    /* Asset records */
    uint8 public RecordNum = 0;

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

    /* Asset settings present or not */
    bool public _settingsApplied = false;

    /* Asset owner ( ApplicationEntity address ) */
    address public owner = address(0x0) ;
    address public deployerAddress;

    function ApplicationAsset() public {
        deployerAddress = msg.sender;
    }

    function setInitialApplicationAddress(address _ownerAddress) public onlyDeployer requireNotInitialised {
        owner = _ownerAddress;
    }

    function setInitialOwnerAndName(bytes32 _name) external
        requireNotInitialised
        onlyOwner
        returns (bool)
    {
        // init states
        setAssetStates();
        assetName = _name;
        // set initial state
        CurrentEntityState = getEntityState("NEW");
        runBeforeInitialization();
        _initialized = true;
        EventAppAssetOwnerSet(_name, owner);
        return true;
    }

    function setAssetStates() internal {
        // Asset States
        EntityStates["__IGNORED__"]     = 0;
        EntityStates["NEW"]             = 1;
        // Funding Stage States
        RecordStates["__IGNORED__"]     = 0;
    }

    function getRecordState(bytes32 name) public view returns (uint8) {
        return RecordStates[name];
    }

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

    function runBeforeInitialization() internal requireNotInitialised  {
        EventRunBeforeInit(assetName);
    }

    function applyAndLockSettings()
        public
        onlyDeployer
        requireInitialised
        requireSettingsNotApplied
        returns(bool)
    {
        runBeforeApplyingSettings();
        _settingsApplied = true;
        return true;
    }

    function runBeforeApplyingSettings() internal requireInitialised requireSettingsNotApplied  {
        EventRunBeforeApplyingSettings(assetName);
    }

    function transferToNewOwner(address _newOwner) public requireInitialised onlyOwner returns (bool) {
        require(owner != address(0x0) && _newOwner != address(0x0));
        owner = _newOwner;
        EventAppAssetOwnerSet(assetName, owner);
        return true;
    }

    function getApplicationAssetAddressByName(bytes32 _name)
        public
        view
        returns(address)
    {
        address asset = ApplicationEntityABI(owner).getAssetAddressByName(_name);
        if( asset != address(0x0) ) {
            return asset;
        } else {
            revert();
        }
    }

    function getApplicationState() public view returns (uint8) {
        return ApplicationEntityABI(owner).CurrentEntityState();
    }

    function getApplicationEntityState(bytes32 name) public view returns (uint8) {
        return ApplicationEntityABI(owner).getEntityState(name);
    }

    function getAppBylawUint256(bytes32 name) public view requireInitialised returns (uint256) {
        ApplicationEntityABI CurrentApp = ApplicationEntityABI(owner);
        return CurrentApp.getBylawUint256(name);
    }

    function getAppBylawBytes32(bytes32 name) public view requireInitialised returns (bytes32) {
        ApplicationEntityABI CurrentApp = ApplicationEntityABI(owner);
        return CurrentApp.getBylawBytes32(name);
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    modifier onlyApplicationEntity() {
        require(msg.sender == owner);
        _;
    }

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

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

    modifier requireSettingsApplied() {
        require(_settingsApplied == true);
        _;
    }

    modifier requireSettingsNotApplied() {
        require(_settingsApplied == false);
        _;
    }

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

    modifier onlyAsset(bytes32 _name) {
        address AssetAddress = getApplicationAssetAddressByName(_name);
        require( msg.sender == AssetAddress);
        _;
    }

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


}

/*

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

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

 Zeppelin ERC20 Standard Token

*/



contract ABIToken {

    string public  symbol;
    string public  name;
    uint8 public   decimals;
    uint256 public totalSupply;
    string public  version;
    mapping (address => uint256) public balances;
    mapping (address => mapping (address => uint256)) allowed;
    address public manager;
    address public deployer;
    bool public mintingFinished = false;
    bool public initialized = false;

    function transfer(address _to, uint256 _value) public returns (bool);
    function balanceOf(address _owner) public view returns (uint256 balance);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
    function approve(address _spender, uint256 _value) public returns (bool);
    function allowance(address _owner, address _spender) public view returns (uint256 remaining);
    function increaseApproval(address _spender, uint _addedValue) public returns (bool success);
    function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool success);
    function mint(address _to, uint256 _amount) public returns (bool);
    function finishMinting() public returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 indexed value);
    event Approval(address indexed owner, address indexed spender, uint256 indexed value);
    event Mint(address indexed to, uint256 amount);
    event MintFinished();
}

/*

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

 * @name        Token Stake Calculation And Distribution Algorithm - Type 3 - Sell a variable amount of tokens for a fixed price
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>


    Inputs:

    Defined number of tokens per wei ( X Tokens = 1 wei )
    Received amount of ETH
    Generates:

    Total Supply of tokens available in Funding Phase respectively Project
    Observations:

    Will sell the whole supply of Tokens available to Current Funding Phase
    Use cases:

    Any Funding Phase where you want the first Funding Phase to determine the token supply of the whole Project

*/




contract ABITokenSCADAVariable {
    bool public SCADA_requires_hard_cap = true;
    bool public initialized;
    address public deployerAddress;
    function addSettings(address _fundingContract) public;
    function requiresHardCap() public view returns (bool);
    function getTokensForValueInCurrentStage(uint256 _value) public view returns (uint256);
    function getTokensForValueInStage(uint8 _stage, uint256 _value) public view returns (uint256);
    function getBoughtTokens( address _vaultAddress, bool _direct ) public view returns (uint256);
}

/*

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

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

*/







contract TokenManager is ApplicationAsset {

    ABITokenSCADAVariable public TokenSCADAEntity;
    ABIToken public TokenEntity;
    address public MarketingMethodAddress;

    function addSettings(address _scadaAddress, address _tokenAddress, address _marketing ) onlyDeployer public {
        TokenSCADAEntity = ABITokenSCADAVariable(_scadaAddress);
        TokenEntity = ABIToken(_tokenAddress);
        MarketingMethodAddress = _marketing;
    }

    function getTokenSCADARequiresHardCap() public view returns (bool) {
        return TokenSCADAEntity.requiresHardCap();
    }

    function mint(address _to, uint256 _amount)
        onlyAsset('FundingManager')
        public
        returns (bool)
    {
        return TokenEntity.mint(_to, _amount);
    }

    function finishMinting()
        onlyAsset('FundingManager')
        public
        returns (bool)
    {
        return TokenEntity.finishMinting();
    }

    function mintForMarketingPool(address _to, uint256 _amount)
        onlyMarketingPoolAsset
        requireSettingsApplied
        external
        returns (bool)
    {
        return TokenEntity.mint(_to, _amount);
    }

    modifier onlyMarketingPoolAsset() {
        require(msg.sender == MarketingMethodAddress);
        _;
    }

    // Development stage complete, release tokens to Project Owners
    event EventOwnerTokenBalancesReleased(address _addr, uint256 _value);
    bool OwnerTokenBalancesReleased = false;

    function ReleaseOwnersLockedTokens(address _multiSigOutputAddress)
        public
        onlyAsset('FundingManager')
        returns (bool)
    {
        require(OwnerTokenBalancesReleased == false);
        uint256 lockedBalance = TokenEntity.balanceOf(address(this));
        TokenEntity.transfer( _multiSigOutputAddress, lockedBalance );
        EventOwnerTokenBalancesReleased(_multiSigOutputAddress, lockedBalance);
        OwnerTokenBalancesReleased = true;
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"getTokenSCADARequiresHardCap","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"bytes32"}],"name":"getRecordState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MarketingMethodAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mintForMarketingPool","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":"TokenEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"RecordNum","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TokenSCADAEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"RecordStates","outputs":[{"name":"","type":"uint8"}],"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":false,"inputs":[{"name":"_multiSigOutputAddress","type":"address"}],"name":"ReleaseOwnersLockedTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getApplicationState","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":"_newOwner","type":"address"}],"name":"transferToNewOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"bytes32"}],"name":"getApplicationAssetAddressByName","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"applyAndLockSettings","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"}],"name":"setInitialOwnerAndName","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ownerAddress","type":"address"}],"name":"setInitialApplicationAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"assetName","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_settingsApplied","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"bytes32"}],"name":"getAppBylawBytes32","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","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":"_scadaAddress","type":"address"},{"name":"_tokenAddress","type":"address"},{"name":"_marketing","type":"address"}],"name":"addSettings","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"bytes32"}],"name":"getAppBylawUint256","outputs":[{"name":"","type":"uint256"}],"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":"name","type":"bytes32"}],"name":"getApplicationEntityState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_addr","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"EventOwnerTokenBalancesReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_name","type":"bytes32"},{"indexed":true,"name":"_owner","type":"address"}],"name":"EventAppAssetOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_name","type":"bytes32"}],"name":"EventRunBeforeInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_name","type":"bytes32"}],"name":"EventRunBeforeApplyingSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_assetName","type":"bytes32"},{"indexed":true,"name":"_current","type":"uint8"},{"indexed":true,"name":"_required","type":"uint8"}],"name":"EventEntityProcessor","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_assetName","type":"bytes32"},{"indexed":true,"name":"_current","type":"uint8"},{"indexed":true,"name":"_required","type":"uint8"}],"name":"DebugEntityRequiredChanges","type":"event"}]

606060405260048054600160b860020a03191690556008805460a060020a60ff021916905560058054600160a060020a031916600160a060020a0333161790556110ba8061004e6000396000f300606060405236156101645763ffffffff60e060020a6000350416630fe1f5488114610169578063188ec356146101905780631af86866146101b557806322f0e6ae146101e157806328bc7dec146102105780633072cf6014610232578063314475b21461024557806340c10f19146102585780634a1a650d1461027a5780635b8315e41461028d57806362e2f994146102a05780636d0a11c3146102b65780636fc20053146102cc57806370c0f689146102eb5780637278d623146102fe5780637372e9be146103115780637c5c7845146103305780637d64bcb4146103465780638da5cb5b14610359578063af6538611461036c578063b84e183a1461037f578063bc9121cf14610395578063c9230c5d146103b6578063ddb9769c146103c9578063df077c74146103dc578063e490c513146103f2578063e970a51814610408578063ed031ae314610433578063efdee94f14610449578063f01b1dc11461045c575b600080fd5b341561017457600080fd5b61017c610472565b604051901515815260200160405180910390f35b341561019b57600080fd5b6101a36104db565b60405190815260200160405180910390f35b34156101c057600080fd5b6101cb6004356104df565b60405160ff909116815260200160405180910390f35b34156101ec57600080fd5b6101f46104f4565b604051600160a060020a03909116815260200160405180910390f35b341561021b57600080fd5b61017c600160a060020a0360043516602435610503565b341561023d57600080fd5b61017c6105bb565b341561025057600080fd5b6101f46105c9565b341561026357600080fd5b61017c600160a060020a03600435166024356105d8565b341561028557600080fd5b6101cb6106aa565b341561029857600080fd5b6101f46106b3565b34156102ab57600080fd5b6101cb6004356106c2565b34156102c157600080fd5b6101cb6004356106d7565b34156102d757600080fd5b61017c600160a060020a03600435166106ec565b34156102f657600080fd5b6101cb6108dc565b341561030957600080fd5b6101cb61092d565b341561031c57600080fd5b61017c600160a060020a0360043516610936565b341561033b57600080fd5b6101f4600435610a1c565b341561035157600080fd5b61017c610aa9565b341561036457600080fd5b6101f4610b62565b341561037757600080fd5b61017c610b78565b341561038a57600080fd5b61017c600435610be5565b34156103a057600080fd5b6103b4600160a060020a0360043516610cc8565b005b34156103c157600080fd5b6101a3610d31565b34156103d457600080fd5b61017c610d37565b34156103e757600080fd5b6101a3600435610d46565b34156103fd57600080fd5b6101cb600435610dbf565b341561041357600080fd5b6103b4600160a060020a0360043581169060243581169060443516610dd4565b341561043e57600080fd5b6101a3600435610e3b565b341561045457600080fd5b6101f4610eb4565b341561046757600080fd5b6101cb600435610ec3565b600654600090600160a060020a03166303f3cea182604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104bc57600080fd5b6102c65a03f115156104cd57600080fd5b505050604051805191505090565b4290565b60009081526001602052604090205460ff1690565b600854600160a060020a031681565b60085460009033600160a060020a0390811691161461052157600080fd5b60045462010000900460ff16151560011461053b57600080fd5b600754600160a060020a03166340c10f19848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561059a57600080fd5b6102c65a03f115156105ab57600080fd5b5050506040518051949350505050565b600454610100900460ff1681565b600754600160a060020a031681565b60007f46756e64696e674d616e61676572000000000000000000000000000000000000600061060682610a1c565b905080600160a060020a031633600160a060020a031614151561062857600080fd5b600754600160a060020a03166340c10f19868660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561068757600080fd5b6102c65a03f1151561069857600080fd5b50505060405180519695505050505050565b60045460ff1681565b600654600160a060020a031681565b60016020526000908152604090205460ff1681565b60006020819052908152604090205460ff1681565b6000807f46756e64696e674d616e61676572000000000000000000000000000000000000600061071b82610a1c565b905080600160a060020a031633600160a060020a031614151561073d57600080fd5b60085474010000000000000000000000000000000000000000900460ff161561076557600080fd5b600754600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156107be57600080fd5b6102c65a03f115156107cf57600080fd5b5050506040518051600754909450600160a060020a0316905063a9059cbb868560006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561083b57600080fd5b6102c65a03f1151561084c57600080fd5b50505060405180519050507fee23bfb82432ffe29fa29052aec19491a4750f9bf04ea771ed92fca571891fc48584604051600160a060020a03909216825260208201526040908101905180910390a16008805474ff000000000000000000000000000000000000000019167401000000000000000000000000000000000000000017905560019350505050919050565b60045460009063010000009004600160a060020a0316637278d62382604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104bc57600080fd5b60025460ff1681565b60045460009060ff61010090910416151560011461095357600080fd5b60045433600160a060020a039081166301000000909204161461097557600080fd5b60045463010000009004600160a060020a03161580159061099e5750600160a060020a03821615155b15156109a957600080fd5b6004805476ffffffffffffffffffffffffffffffffffffffff00000019166301000000600160a060020a0385811682029290921792839055600354920416907f6f7b0a882e7ac0b47fcdb9814cfdaef1622128fa5d29e3318c730c3a5301e8c460405160405180910390a3506001919050565b600454600090819063010000009004600160a060020a031663689216c784836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610a7857600080fd5b6102c65a03f11515610a8957600080fd5b5050506040518051915050600160a060020a038116156101645792915050565b60007f46756e64696e674d616e616765720000000000000000000000000000000000006000610ad782610a1c565b905080600160a060020a031633600160a060020a0316141515610af957600080fd5b600754600160a060020a0316637d64bcb46000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610b4157600080fd5b6102c65a03f11515610b5257600080fd5b5050506040518051935050505090565b60045463010000009004600160a060020a031681565b60055460009033600160a060020a03908116911614610b9657600080fd5b60045460ff610100909104161515600114610bb057600080fd5b60045462010000900460ff1615610bc657600080fd5b610bce610f3d565b506004805462ff0000191662010000179055600190565b600454600090610100900460ff1615610bfd57600080fd5b60045433600160a060020a0390811663010000009092041614610c1f57600080fd5b610c27610f9e565b6003829055610c557f4e45570000000000000000000000000000000000000000000000000000000000610dbf565b6002805460ff191660ff92909216919091179055610c71611048565b6004805461ff0019166101001790819055600160a060020a03630100000090910416827f6f7b0a882e7ac0b47fcdb9814cfdaef1622128fa5d29e3318c730c3a5301e8c460405160405180910390a3506001919050565b60055433600160a060020a03908116911614610ce357600080fd5b600454610100900460ff1615610cf857600080fd5b60048054600160a060020a0390921663010000000276ffffffffffffffffffffffffffffffffffffffff00000019909216919091179055565b60035481565b60045462010000900460ff1681565b600454600090819060ff610100909104161515600114610d6557600080fd5b5060045463010000009004600160a060020a03168063ee44da7e8460006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561059a57600080fd5b60009081526020819052604090205460ff1690565b60055433600160a060020a03908116911614610def57600080fd5b60068054600160a060020a0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600780549385169382169390931790925560088054919093169116179055565b600454600090819060ff610100909104161515600114610e5a57600080fd5b5060045463010000009004600160a060020a03168063b44ce8938460006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561059a57600080fd5b600554600160a060020a031681565b60045460009063010000009004600160a060020a031663e490c51383836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f1d57600080fd5b6102c65a03f11515610f2e57600080fd5b50505060405180519392505050565b60045460ff610100909104161515600114610f5757600080fd5b60045462010000900460ff1615610f6d57600080fd5b6003547fce50d83c2c178553c51fe8a83d1af61967b308e4ae48086d6526816b465e2f4960405160405180910390a2565b7f82aa092d4c801429a1fff0e42bdcbb41efc63176230d4f4542b13200afb562e8805460ff199081169091557f26c6da47b1522bc44b5826073c13ff8f683a2d7bcb3e45f089817656015efae98054821660019081179091557f5f5f49474e4f5245445f5f0000000000000000000000000000000000000000006000526020527fe4f12cd7531d4b60d6f694b938f9d161e42f7945d6c7e248621b398180482b7280549091169055565b600454610100900460ff161561105d57600080fd5b6003547f6bec69c1d4de72551859e2a42d5f8b4bbb7e6cde7f27a338ad426e098257dfba60405160405180910390a25600a165627a7a723058209aeefcae15f7aaf902886252a5cf865c7cdbace8d2e8b796fbe5f1bfa98059dc0029

Swarm Source

bzzr://9aeefcae15f7aaf902886252a5cf865c7cdbace8d2e8b796fbe5f1bfa98059dc
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.