Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 317 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 4237383 | 2643 days ago | IN | 0.5 ETH | 0.01 | ||||
Transfer | 4236903 | 2644 days ago | IN | 0.85 ETH | 0.00042002 | ||||
Finalize | 4236842 | 2644 days ago | IN | 0 ETH | 0.0019313 | ||||
Transfer | 4236694 | 2644 days ago | IN | 1 ETH | 0.004 | ||||
Transfer | 4236621 | 2644 days ago | IN | 1 ETH | 0.008 | ||||
Transfer | 4236615 | 2644 days ago | IN | 2 ETH | 0.006 | ||||
Transfer | 4236610 | 2644 days ago | IN | 1 ETH | 0.004 | ||||
Transfer | 4236599 | 2644 days ago | IN | 2 ETH | 0.0011 | ||||
Transfer | 4236594 | 2644 days ago | IN | 2 ETH | 0.0024 | ||||
Transfer | 4236502 | 2644 days ago | IN | 1 ETH | 0.0198 | ||||
Transfer | 4236500 | 2644 days ago | IN | 2.4 ETH | 0.005 | ||||
Transfer | 4236489 | 2644 days ago | IN | 1.8 ETH | 0.00400002 | ||||
Transfer | 4236478 | 2644 days ago | IN | 1.9 ETH | 0.04 | ||||
Transfer | 4236463 | 2644 days ago | IN | 1.9 ETH | 0.004 | ||||
Transfer | 4236461 | 2644 days ago | IN | 15 ETH | 0.0042 | ||||
Transfer | 4236443 | 2644 days ago | IN | 1.8 ETH | 0.004002 | ||||
Transfer | 4236429 | 2644 days ago | IN | 2 ETH | 0.002 | ||||
Transfer | 4236420 | 2644 days ago | IN | 2 ETH | 0.00105005 | ||||
Transfer | 4236419 | 2644 days ago | IN | 1.9 ETH | 0.04 | ||||
Transfer | 4236410 | 2644 days ago | IN | 1.9 ETH | 0.004 | ||||
Transfer | 4236401 | 2644 days ago | IN | 1.9 ETH | 0.004 | ||||
Transfer | 4236397 | 2644 days ago | IN | 1.09 ETH | 0.002079 | ||||
Transfer | 4236371 | 2644 days ago | IN | 0.1 ETH | 0.0024 | ||||
Transfer | 4236371 | 2644 days ago | IN | 1.88 ETH | 0.0042 | ||||
Transfer | 4236367 | 2644 days ago | IN | 1 ETH | 0.002079 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
4236343 | 2644 days ago | 0.45 ETH | ||||
4236318 | 2644 days ago | 0.5 ETH | ||||
4236307 | 2644 days ago | 5.5 ETH | ||||
4236305 | 2644 days ago | 2.5 ETH | ||||
4236295 | 2644 days ago | 14.02 ETH | ||||
4236271 | 2644 days ago | 2.5 ETH | ||||
4236264 | 2644 days ago | 2 ETH | ||||
4236235 | 2644 days ago | 5 ETH | ||||
4236232 | 2644 days ago | 0.3 ETH | ||||
4236189 | 2644 days ago | 3 ETH | ||||
4236185 | 2644 days ago | 0.09 ETH | ||||
4236125 | 2644 days ago | 5 ETH | ||||
4236119 | 2644 days ago | 1.38 ETH | ||||
4236109 | 2644 days ago | 0.5 ETH | ||||
4236109 | 2644 days ago | 0.98 ETH | ||||
4236106 | 2644 days ago | 0.5 ETH | ||||
4236103 | 2644 days ago | 1 ETH | ||||
4236103 | 2644 days ago | 0.22 ETH | ||||
4236066 | 2644 days ago | 2 ETH | ||||
4236063 | 2644 days ago | 1.989 ETH | ||||
4236063 | 2644 days ago | 6 ETH | ||||
4236054 | 2644 days ago | 4 ETH | ||||
4236043 | 2644 days ago | 2 ETH | ||||
4236021 | 2644 days ago | 10 ETH | ||||
4236020 | 2644 days ago | 0.05 ETH |
Loading...
Loading
Contract Name:
PFCContribution
Compiler Version
v0.4.13+commit.fb4cb1a
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-09-02 */ pragma solidity ^0.4.11; library SafeMath { function mul(uint a, uint b) internal returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint a, uint b) internal returns (uint) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint a, uint b) internal returns (uint) { assert(b <= a); return a - b; } function add(uint a, uint b) internal returns (uint) { uint c = a + b; assert(c >= a); return c; } function max64(uint64 a, uint64 b) internal constant returns (uint64) { return a >= b ? a : b; } function min64(uint64 a, uint64 b) internal constant returns (uint64) { return a < b ? a : b; } function max256(uint256 a, uint256 b) internal constant returns (uint256) { return a >= b ? a : b; } function min256(uint256 a, uint256 b) internal constant returns (uint256) { return a < b ? a : b; } } /// @dev `Owned` is a base level contract that assigns an `owner` that can be /// later changed contract Owned { /// @dev `owner` is the only address that can call a function with this /// modifier modifier onlyOwner() { if(msg.sender != owner) throw; _; } address public owner; /// @notice The Constructor assigns the message sender to be `owner` function Owned() { owner = msg.sender; } address public newOwner; /// @notice `owner` can step down and assign some other address to this role /// @param _newOwner The address of the new owner. 0x0 can be used to create /// an unowned neutral vault, however that cannot be undone function changeOwner(address _newOwner) onlyOwner { newOwner = _newOwner; } function acceptOwnership() { if (msg.sender == newOwner) { owner = newOwner; } } } contract ERC20Token { /* This is a slight change to the ERC20 base standard. function totalSupply() constant returns (uint256 supply); is replaced with: uint256 public totalSupply; This automatically creates a getter function for the totalSupply. This is moved to the base contract since public getter functions are not currently recognised as an implementation of the matching abstract function by the compiler. */ /// total amount of tokens uint256 public totalSupply; /// @param _owner The address from which the balance will be retrieved /// @return The balance function balanceOf(address _owner) constant returns (uint256 balance); /// @notice send `_value` token to `_to` from `msg.sender` /// @param _to The address of the recipient /// @param _value The amount of token to be transferred /// @return Whether the transfer was successful or not function transfer(address _to, uint256 _value) returns (bool success); /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from` /// @param _from The address of the sender /// @param _to The address of the recipient /// @param _value The amount of token to be transferred /// @return Whether the transfer was successful or not function transferFrom(address _from, address _to, uint256 _value) returns (bool success); /// @notice `msg.sender` approves `_spender` to spend `_value` tokens /// @param _spender The address of the account able to transfer the tokens /// @param _value The amount of tokens to be approved for transfer /// @return Whether the approval was successful or not function approve(address _spender, uint256 _value) returns (bool success); /// @param _owner The address of the account owning tokens /// @param _spender The address of the account able to transfer the tokens /// @return Amount of remaining tokens allowed to spent function allowance(address _owner, address _spender) constant returns (uint256 remaining); event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); } contract Controlled { /// @notice The address of the controller is the only address that can call /// a function with this modifier modifier onlyController { if (msg.sender != controller) throw; _; } address public controller; function Controlled() { controller = msg.sender;} /// @notice Changes the controller of the contract /// @param _newController The new controller of the contract function changeController(address _newController) onlyController { controller = _newController; } } contract StandardToken is ERC20Token ,Controlled{ bool public showValue=true; // Flag that determines if the token is transferable or not. bool public transfersEnabled; function transfer(address _to, uint256 _value) returns (bool success) { if(!transfersEnabled) throw; if (balances[msg.sender] >= _value && _value > 0) { balances[msg.sender] -= _value; balances[_to] += _value; Transfer(msg.sender, _to, _value); return true; } else { return false; } } function transferFrom(address _from, address _to, uint256 _value) returns (bool success) { if(!transfersEnabled) throw; if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) { balances[_to] += _value; balances[_from] -= _value; allowed[_from][msg.sender] -= _value; Transfer(_from, _to, _value); return true; } else { return false; } } function balanceOf(address _owner) constant returns (uint256 balance) { if(!showValue) return 0; return balances[_owner]; } function approve(address _spender, uint256 _value) returns (bool success) { if(!transfersEnabled) throw; allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } function allowance(address _owner, address _spender) constant returns (uint256 remaining) { if(!transfersEnabled) throw; return allowed[_owner][_spender]; } /// @notice Enables token holders to transfer their tokens freely if true /// @param _transfersEnabled True if transfers are allowed in the clone function enableTransfers(bool _transfersEnabled) onlyController { transfersEnabled = _transfersEnabled; } function enableShowValue(bool _showValue) onlyController { showValue = _showValue; } function generateTokens(address _owner, uint _amount ) onlyController returns (bool) { uint curTotalSupply = totalSupply; if (curTotalSupply + _amount < curTotalSupply) throw; // Check for overflow totalSupply=curTotalSupply + _amount; balances[_owner]+=_amount; Transfer(0, _owner, _amount); return true; } mapping (address => uint256) balances; mapping (address => mapping (address => uint256)) allowed; } contract MiniMeTokenSimple is StandardToken { string public name; //The Token's name: e.g. DigixDAO Tokens uint8 public decimals; //Number of decimals of the smallest unit string public symbol; //An identifier: e.g. REP string public version = 'MMT_0.1'; //An arbitrary versioning scheme // `parentToken` is the Token address that was cloned to produce this token; // it will be 0x0 for a token that was not cloned address public parentToken; // `parentSnapShotBlock` is the block number from the Parent Token that was // used to determine the initial distribution of the Clone Token uint public parentSnapShotBlock; // `creationBlock` is the block number that the Clone Token was created uint public creationBlock; // The factory used to create new clone tokens address public tokenFactory; //////////////// // Constructor //////////////// /// @notice Constructor to create a MiniMeTokenSimple /// @param _tokenFactory The address of the MiniMeTokenFactory contract that /// will create the Clone token contracts, the token factory needs to be /// deployed first /// @param _parentToken Address of the parent token, set to 0x0 if it is a /// new token /// @param _parentSnapShotBlock Block of the parent token that will /// determine the initial distribution of the clone token, set to 0 if it /// is a new token /// @param _tokenName Name of the new token /// @param _decimalUnits Number of decimals of the new token /// @param _tokenSymbol Token Symbol for the new token /// @param _transfersEnabled If true, tokens will be able to be transferred function MiniMeTokenSimple( address _tokenFactory, address _parentToken, uint _parentSnapShotBlock, string _tokenName, uint8 _decimalUnits, string _tokenSymbol, bool _transfersEnabled ) { tokenFactory = _tokenFactory; name = _tokenName; // Set the name decimals = _decimalUnits; // Set the decimals symbol = _tokenSymbol; // Set the symbol parentToken = _parentToken; parentSnapShotBlock = _parentSnapShotBlock; transfersEnabled = _transfersEnabled; creationBlock = block.number; } ////////// // Safety Methods ////////// /// @notice This method can be used by the controller to extract mistakenly /// sent tokens to this contract. /// @param _token The address of the token contract that you want to recover /// set to 0 in case you want to extract ether. function claimTokens(address _token) onlyController { if (_token == 0x0) { controller.transfer(this.balance); return; } ERC20Token token = ERC20Token(_token); uint balance = token.balanceOf(this); token.transfer(controller, balance); ClaimedTokens(_token, controller, balance); } event ClaimedTokens(address indexed _token, address indexed _controller, uint _amount); } contract PFCContribution is Owned { using SafeMath for uint256; MiniMeTokenSimple public PFC; uint256 public ratio=25000; uint256 public constant MIN_FUND = (0.001 ether); uint256 public startTime=0 ; uint256 public endTime =0; uint256 public finalizedBlock=0; uint256 public finalizedTime=0; bool public isFinalize = false; uint256 public totalContributedETH = 0; uint256 public totalTokenSaled=0; uint256 public MaxEth=15000 ether; address public pfcController; address public destEthFoundation; bool public paused; modifier initialized() { require(address(PFC) != 0x0); _; } modifier contributionOpen() { require(time() >= startTime && time() <= endTime && finalizedBlock == 0 && address(PFC) != 0x0); _; } modifier notPaused() { require(!paused); _; } function PFCCContribution() { paused = false; } /// @notice This method should be called by the owner before the contribution /// period starts This initializes most of the parameters /// @param _pfc Address of the PFC token contract /// @param _pfcController Token controller for the PFC that will be transferred after /// the contribution finalizes. /// @param _startTime Time when the contribution period starts /// @param _endTime The time that the contribution period ends /// @param _destEthFoundation Destination address where the contribution ether is sent function initialize( address _pfc, address _pfcController, uint256 _startTime, uint256 _endTime, address _destEthFoundation, uint256 _maxEth ) public onlyOwner { // Initialize only once require(address(PFC) == 0x0); PFC = MiniMeTokenSimple(_pfc); require(PFC.totalSupply() == 0); require(PFC.controller() == address(this)); require(PFC.decimals() == 18); // Same amount of decimals as ETH startTime = _startTime; endTime = _endTime; assert(startTime < endTime); require(_pfcController != 0x0); pfcController = _pfcController; require(_destEthFoundation != 0x0); destEthFoundation = _destEthFoundation; require(_maxEth >1 ether); MaxEth=_maxEth; } /// @notice If anybody sends Ether directly to this contract, consider he is /// getting PFCs. function () public payable notPaused { if(totalContributedETH>=MaxEth) throw; proxyPayment(msg.sender); } ////////// // MiniMe Controller functions ////////// /// @notice This method will generally be called by the PFC token contract to /// acquire PFCs. Or directly from third parties that want to acquire PFCs in /// behalf of a token holder. /// @param _account PFC holder where the PFC will be minted. function proxyPayment(address _account) public payable initialized contributionOpen returns (bool) { require(_account != 0x0); require( msg.value >= MIN_FUND ); uint256 tokenSaling; uint256 rValue; uint256 t_totalContributedEth=totalContributedETH+msg.value; uint256 reFund=0; if(t_totalContributedEth>MaxEth) { reFund=t_totalContributedEth-MaxEth; } rValue=msg.value-reFund; tokenSaling=rValue.mul(ratio); if(reFund>0) msg.sender.transfer(reFund); assert(PFC.generateTokens(_account,tokenSaling)); destEthFoundation.transfer(rValue); totalContributedETH +=rValue; totalTokenSaled+=tokenSaling; NewSale(msg.sender, rValue,tokenSaling); } function setMaxEth(uint256 _maxEth) onlyOwner initialized{ MaxEth=_maxEth; } function setRatio(uint256 _ratio) onlyOwner initialized{ ratio=_ratio; } function issueTokenToAddress(address _account, uint256 _amount) onlyOwner initialized { assert(PFC.generateTokens(_account, _amount)); totalTokenSaled +=_amount; NewIssue(_account, _amount); } function finalize() public onlyOwner initialized { require(time() >= startTime); require(finalizedBlock == 0); finalizedBlock = getBlockNumber(); finalizedTime = now; PFC.changeController(pfcController); isFinalize=true; Finalized(); } function time() constant returns (uint) { return block.timestamp; } ////////// // Constant functions ////////// /// @return Total tokens issued in weis. function tokensIssued() public constant returns (uint256) { return PFC.totalSupply(); } ////////// // Testing specific methods ////////// /// @notice This function is overridden by the test Mocks. function getBlockNumber() internal constant returns (uint256) { return block.number; } ////////// // Safety Methods ////////// /// @notice This method can be used by the controller to extract mistakenly /// sent tokens to this contract. /// @param _token The address of the token contract that you want to recover /// set to 0 in case you want to extract ether. function claimTokens(address _token) public onlyOwner { if (PFC.controller() == address(this)) { PFC.claimTokens(_token); } if (_token == 0x0) { owner.transfer(this.balance); return; } ERC20Token token = ERC20Token(_token); uint256 balance = token.balanceOf(this); token.transfer(owner, balance); ClaimedTokens(_token, owner, balance); } /// @notice Pauses the contribution if there is any issue function pauseContribution() onlyOwner { paused = true; } /// @notice Resumes the contribution function resumeContribution() onlyOwner { paused = false; } event ClaimedTokens(address indexed _token, address indexed _controller, uint256 _amount); event NewSale(address _account, uint256 _amount,uint256 _tokenAmount); event NewIssue(address indexed _th, uint256 _amount); event Finalized(); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"PFCCContribution","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"time","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"PFC","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalContributedETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"finalizedBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_maxEth","type":"uint256"}],"name":"setMaxEth","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"pauseContribution","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"destEthFoundation","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_pfc","type":"address"},{"name":"_pfcController","type":"address"},{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_destEthFoundation","type":"address"},{"name":"_maxEth","type":"uint256"}],"name":"initialize","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MIN_FUND","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isFinalize","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalTokenSaled","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ratio","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokensIssued","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_amount","type":"uint256"}],"name":"issueTokenToAddress","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ratio","type":"uint256"}],"name":"setRatio","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"resumeContribution","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MaxEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"pfcController","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"proxyPayment","outputs":[{"name":"","type":"bool"}],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"finalizedTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":true,"name":"_controller","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"ClaimedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_account","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_tokenAmount","type":"uint256"}],"name":"NewSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_th","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"NewIssue","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"}]
Contract Creation Code
60606040526161a8600355600060048190556005819055600681905560078190556008805460ff191690556009819055600a5569032d26d12e980b600000600b555b60008054600160a060020a03191633600160a060020a03161790555b5b6112468061006d6000396000f300606060405236156101645763ffffffff60e060020a6000350416630888ad4181146101b057806316ada547146101c55780633197cbb6146101ea5780633701fada1461020f5780633d5d07201461023e5780634084c3ab1461026357806342226e02146102885780634b8adcf7146102a05780634bb278f3146102b5578063503eb429146102ca57806354812d17146102f957806355b2bb0f146103315780635c975abb14610356578063671e44051461037d5780636af91799146103a457806371ca337d146103c957806378e97925146103ee57806379ba5097146104135780637c48bbda146104285780638da5cb5b1461044d5780638e9bf09c1461047c578063a6f9dae1146104a0578063b2237ba3146104c1578063b681f9f6146104d9578063cd48578f146104ee578063cfab886214610513578063d4ee1d9014610542578063df8de3e714610571578063f48c305414610592578063fe67a189146105ba575b6101ae5b600d5474010000000000000000000000000000000000000000900460ff161561019057600080fd5b600b54600954106101a057600080fd5b6101a9336105df565b505b5b565b005b34156101bb57600080fd5b6101ae610816565b005b34156101d057600080fd5b6101d8610837565b60405190815260200160405180910390f35b34156101f557600080fd5b6101d861083c565b60405190815260200160405180910390f35b341561021a57600080fd5b610222610842565b604051600160a060020a03909116815260200160405180910390f35b341561024957600080fd5b6101d8610851565b60405190815260200160405180910390f35b341561026e57600080fd5b6101d8610857565b60405190815260200160405180910390f35b341561029357600080fd5b6101ae60043561085d565b005b34156102ab57600080fd5b6101ae61089a565b005b34156102c057600080fd5b6101ae6108ee565b005b34156102d557600080fd5b6102226109fb565b604051600160a060020a03909116815260200160405180910390f35b341561030457600080fd5b6101ae600160a060020a0360043581169060243581169060443590606435906084351660a435610a0a565b005b341561033c57600080fd5b6101d8610c68565b60405190815260200160405180910390f35b341561036157600080fd5b610369610c73565b604051901515815260200160405180910390f35b341561038857600080fd5b610369610c94565b604051901515815260200160405180910390f35b34156103af57600080fd5b6101d8610c9d565b60405190815260200160405180910390f35b34156103d457600080fd5b6101d8610ca3565b60405190815260200160405180910390f35b34156103f957600080fd5b6101d8610ca9565b60405190815260200160405180910390f35b341561041e57600080fd5b6101ae610caf565b005b341561043357600080fd5b6101d8610cf9565b60405190815260200160405180910390f35b341561045857600080fd5b610222610d63565b604051600160a060020a03909116815260200160405180910390f35b341561048757600080fd5b6101ae600160a060020a0360043516602435610d72565b005b34156104ab57600080fd5b6101ae600160a060020a0360043516610e72565b005b34156104cc57600080fd5b6101ae600435610eba565b005b34156104e457600080fd5b6101ae610ef7565b005b34156104f957600080fd5b6101d8610f34565b60405190815260200160405180910390f35b341561051e57600080fd5b610222610f3a565b604051600160a060020a03909116815260200160405180910390f35b341561054d57600080fd5b610222610f49565b604051600160a060020a03909116815260200160405180910390f35b341561057c57600080fd5b6101ae600160a060020a0360043516610f58565b005b610369600160a060020a03600435166105df565b604051901515815260200160405180910390f35b34156105c557600080fd5b6101d86111e0565b60405190815260200160405180910390f35b6002546000908190819081908190600160a060020a0316151561060157600080fd5b60045461060c610837565b101580156106235750600554610620610837565b11155b801561062f5750600654155b80156106455750600254600160a060020a031615155b151561065057600080fd5b600160a060020a038616151561066557600080fd5b66038d7ea4c6800034101561067957600080fd5b3460095401915060009050600b548211156106955750600b5481035b80340392506106af600354846111e690919063ffffffff16565b935060008111156106eb57600160a060020a03331681156108fc0282604051600060405180830381858888f1935050505015156106eb57600080fd5b5b600254600160a060020a031663827f32c0878660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561074b57600080fd5b6102c65a03f1151561075c57600080fd5b50505060405180519050151561076e57fe5b600d54600160a060020a031683156108fc0284604051600060405180830381858888f1935050505015156107a157600080fd5b6009805484019055600a8054850190557fa3ed4207b1480804a4590a74f4b9cc310dc0fc839af8d10e2141ca3b72fd93483384866040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a15b5b5b50505050919050565b600d805474ff0000000000000000000000000000000000000000191690555b565b425b90565b60055481565b600254600160a060020a031681565b60095481565b60065481565b60005433600160a060020a0390811691161461087857600080fd5b600254600160a060020a0316151561088f57600080fd5b600b8190555b5b5b50565b60005433600160a060020a039081169116146108b557600080fd5b600d805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790555b5b565b60005433600160a060020a0390811691161461090957600080fd5b600254600160a060020a0316151561092057600080fd5b60045461092b610837565b101561093657600080fd5b6006541561094357600080fd5b61094b611215565b60065542600755600254600c54600160a060020a0391821691633cebb823911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156109a957600080fd5b6102c65a03f115156109ba57600080fd5b50506008805460ff19166001179055507f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a15b5b5b565b600d54600160a060020a031681565b60005433600160a060020a03908116911614610a2557600080fd5b600254600160a060020a031615610a3b57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038881169190911791829055166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610aa657600080fd5b6102c65a03f11515610ab757600080fd5b5050506040518051159050610acb57600080fd5b600254600160a060020a03308116911663f77c47916000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610b1757600080fd5b6102c65a03f11515610b2857600080fd5b50505060405180519050600160a060020a0316141515610b4757600080fd5b600254600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610b8f57600080fd5b6102c65a03f11515610ba057600080fd5b5050506040518051905060ff166012141515610bbb57600080fd5b60048490556005839055828410610bce57fe5b600160a060020a0385161515610be357600080fd5b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038781169190911790915582161515610c1d57600080fd5b600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416179055670de0b6b3a76400008111610c5957600080fd5b600b8190555b5b505050505050565b66038d7ea4c6800081565b600d5474010000000000000000000000000000000000000000900460ff1681565b60085460ff1681565b600a5481565b60035481565b60045481565b60015433600160a060020a03908116911614156101ab576001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b5b565b600254600090600160a060020a03166318160ddd82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610d4357600080fd5b6102c65a03f11515610d5457600080fd5b50505060405180519150505b90565b600054600160a060020a031681565b60005433600160a060020a03908116911614610d8d57600080fd5b600254600160a060020a03161515610da457600080fd5b600254600160a060020a031663827f32c0838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e0357600080fd5b6102c65a03f11515610e1457600080fd5b505050604051805190501515610e2657fe5b600a805482019055600160a060020a0382167fcde93eec44d2333fae3ca0af42ad74f9246177e0ac7d90d7999eb38d326649dd8260405190815260200160405180910390a25b5b5b5050565b60005433600160a060020a03908116911614610e8d57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60005433600160a060020a03908116911614610ed557600080fd5b600254600160a060020a03161515610eec57600080fd5b60038190555b5b5b50565b60005433600160a060020a0390811691161461081657600080fd5b600d805474ff0000000000000000000000000000000000000000191690555b5b565b600b5481565b600c54600160a060020a031681565b600154600160a060020a031681565b60008054819033600160a060020a03908116911614610f7657600080fd5b600254600160a060020a03308116911663f77c47916000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fc257600080fd5b6102c65a03f11515610fd357600080fd5b50505060405180519050600160a060020a0316141561105157600254600160a060020a031663df8de3e78460405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561103c57600080fd5b6102c65a03f1151561104d57600080fd5b5050505b600160a060020a038316151561109f57600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561109a57600080fd5b6111da565b82915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156110f957600080fd5b6102c65a03f1151561110a57600080fd5b505050604051805160008054919350600160a060020a03808616935063a9059cbb92169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561117a57600080fd5b6102c65a03f1151561118b57600080fd5b50505060405180515050600054600160a060020a039081169084167ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c8360405190815260200160405180910390a35b5b505050565b60075481565b600082820283158061120257508284828115156111ff57fe5b04145b151561120a57fe5b8091505b5092915050565b435b905600a165627a7a7230582095497da6f8791e076bdce032b9d023dccea3603f6dd8b599a4f22bc8e9605c940029
Deployed Bytecode
0x606060405236156101645763ffffffff60e060020a6000350416630888ad4181146101b057806316ada547146101c55780633197cbb6146101ea5780633701fada1461020f5780633d5d07201461023e5780634084c3ab1461026357806342226e02146102885780634b8adcf7146102a05780634bb278f3146102b5578063503eb429146102ca57806354812d17146102f957806355b2bb0f146103315780635c975abb14610356578063671e44051461037d5780636af91799146103a457806371ca337d146103c957806378e97925146103ee57806379ba5097146104135780637c48bbda146104285780638da5cb5b1461044d5780638e9bf09c1461047c578063a6f9dae1146104a0578063b2237ba3146104c1578063b681f9f6146104d9578063cd48578f146104ee578063cfab886214610513578063d4ee1d9014610542578063df8de3e714610571578063f48c305414610592578063fe67a189146105ba575b6101ae5b600d5474010000000000000000000000000000000000000000900460ff161561019057600080fd5b600b54600954106101a057600080fd5b6101a9336105df565b505b5b565b005b34156101bb57600080fd5b6101ae610816565b005b34156101d057600080fd5b6101d8610837565b60405190815260200160405180910390f35b34156101f557600080fd5b6101d861083c565b60405190815260200160405180910390f35b341561021a57600080fd5b610222610842565b604051600160a060020a03909116815260200160405180910390f35b341561024957600080fd5b6101d8610851565b60405190815260200160405180910390f35b341561026e57600080fd5b6101d8610857565b60405190815260200160405180910390f35b341561029357600080fd5b6101ae60043561085d565b005b34156102ab57600080fd5b6101ae61089a565b005b34156102c057600080fd5b6101ae6108ee565b005b34156102d557600080fd5b6102226109fb565b604051600160a060020a03909116815260200160405180910390f35b341561030457600080fd5b6101ae600160a060020a0360043581169060243581169060443590606435906084351660a435610a0a565b005b341561033c57600080fd5b6101d8610c68565b60405190815260200160405180910390f35b341561036157600080fd5b610369610c73565b604051901515815260200160405180910390f35b341561038857600080fd5b610369610c94565b604051901515815260200160405180910390f35b34156103af57600080fd5b6101d8610c9d565b60405190815260200160405180910390f35b34156103d457600080fd5b6101d8610ca3565b60405190815260200160405180910390f35b34156103f957600080fd5b6101d8610ca9565b60405190815260200160405180910390f35b341561041e57600080fd5b6101ae610caf565b005b341561043357600080fd5b6101d8610cf9565b60405190815260200160405180910390f35b341561045857600080fd5b610222610d63565b604051600160a060020a03909116815260200160405180910390f35b341561048757600080fd5b6101ae600160a060020a0360043516602435610d72565b005b34156104ab57600080fd5b6101ae600160a060020a0360043516610e72565b005b34156104cc57600080fd5b6101ae600435610eba565b005b34156104e457600080fd5b6101ae610ef7565b005b34156104f957600080fd5b6101d8610f34565b60405190815260200160405180910390f35b341561051e57600080fd5b610222610f3a565b604051600160a060020a03909116815260200160405180910390f35b341561054d57600080fd5b610222610f49565b604051600160a060020a03909116815260200160405180910390f35b341561057c57600080fd5b6101ae600160a060020a0360043516610f58565b005b610369600160a060020a03600435166105df565b604051901515815260200160405180910390f35b34156105c557600080fd5b6101d86111e0565b60405190815260200160405180910390f35b6002546000908190819081908190600160a060020a0316151561060157600080fd5b60045461060c610837565b101580156106235750600554610620610837565b11155b801561062f5750600654155b80156106455750600254600160a060020a031615155b151561065057600080fd5b600160a060020a038616151561066557600080fd5b66038d7ea4c6800034101561067957600080fd5b3460095401915060009050600b548211156106955750600b5481035b80340392506106af600354846111e690919063ffffffff16565b935060008111156106eb57600160a060020a03331681156108fc0282604051600060405180830381858888f1935050505015156106eb57600080fd5b5b600254600160a060020a031663827f32c0878660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561074b57600080fd5b6102c65a03f1151561075c57600080fd5b50505060405180519050151561076e57fe5b600d54600160a060020a031683156108fc0284604051600060405180830381858888f1935050505015156107a157600080fd5b6009805484019055600a8054850190557fa3ed4207b1480804a4590a74f4b9cc310dc0fc839af8d10e2141ca3b72fd93483384866040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a15b5b5b50505050919050565b600d805474ff0000000000000000000000000000000000000000191690555b565b425b90565b60055481565b600254600160a060020a031681565b60095481565b60065481565b60005433600160a060020a0390811691161461087857600080fd5b600254600160a060020a0316151561088f57600080fd5b600b8190555b5b5b50565b60005433600160a060020a039081169116146108b557600080fd5b600d805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790555b5b565b60005433600160a060020a0390811691161461090957600080fd5b600254600160a060020a0316151561092057600080fd5b60045461092b610837565b101561093657600080fd5b6006541561094357600080fd5b61094b611215565b60065542600755600254600c54600160a060020a0391821691633cebb823911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156109a957600080fd5b6102c65a03f115156109ba57600080fd5b50506008805460ff19166001179055507f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a15b5b5b565b600d54600160a060020a031681565b60005433600160a060020a03908116911614610a2557600080fd5b600254600160a060020a031615610a3b57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038881169190911791829055166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610aa657600080fd5b6102c65a03f11515610ab757600080fd5b5050506040518051159050610acb57600080fd5b600254600160a060020a03308116911663f77c47916000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610b1757600080fd5b6102c65a03f11515610b2857600080fd5b50505060405180519050600160a060020a0316141515610b4757600080fd5b600254600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610b8f57600080fd5b6102c65a03f11515610ba057600080fd5b5050506040518051905060ff166012141515610bbb57600080fd5b60048490556005839055828410610bce57fe5b600160a060020a0385161515610be357600080fd5b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038781169190911790915582161515610c1d57600080fd5b600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416179055670de0b6b3a76400008111610c5957600080fd5b600b8190555b5b505050505050565b66038d7ea4c6800081565b600d5474010000000000000000000000000000000000000000900460ff1681565b60085460ff1681565b600a5481565b60035481565b60045481565b60015433600160a060020a03908116911614156101ab576001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b5b565b600254600090600160a060020a03166318160ddd82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610d4357600080fd5b6102c65a03f11515610d5457600080fd5b50505060405180519150505b90565b600054600160a060020a031681565b60005433600160a060020a03908116911614610d8d57600080fd5b600254600160a060020a03161515610da457600080fd5b600254600160a060020a031663827f32c0838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e0357600080fd5b6102c65a03f11515610e1457600080fd5b505050604051805190501515610e2657fe5b600a805482019055600160a060020a0382167fcde93eec44d2333fae3ca0af42ad74f9246177e0ac7d90d7999eb38d326649dd8260405190815260200160405180910390a25b5b5b5050565b60005433600160a060020a03908116911614610e8d57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60005433600160a060020a03908116911614610ed557600080fd5b600254600160a060020a03161515610eec57600080fd5b60038190555b5b5b50565b60005433600160a060020a0390811691161461081657600080fd5b600d805474ff0000000000000000000000000000000000000000191690555b5b565b600b5481565b600c54600160a060020a031681565b600154600160a060020a031681565b60008054819033600160a060020a03908116911614610f7657600080fd5b600254600160a060020a03308116911663f77c47916000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fc257600080fd5b6102c65a03f11515610fd357600080fd5b50505060405180519050600160a060020a0316141561105157600254600160a060020a031663df8de3e78460405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561103c57600080fd5b6102c65a03f1151561104d57600080fd5b5050505b600160a060020a038316151561109f57600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561109a57600080fd5b6111da565b82915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156110f957600080fd5b6102c65a03f1151561110a57600080fd5b505050604051805160008054919350600160a060020a03808616935063a9059cbb92169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561117a57600080fd5b6102c65a03f1151561118b57600080fd5b50505060405180515050600054600160a060020a039081169084167ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c8360405190815260200160405180910390a35b5b505050565b60075481565b600082820283158061120257508284828115156111ff57fe5b04145b151561120a57fe5b8091505b5092915050565b435b905600a165627a7a7230582095497da6f8791e076bdce032b9d023dccea3603f6dd8b599a4f22bc8e9605c940029
Swarm Source
bzzr://95497da6f8791e076bdce032b9d023dccea3603f6dd8b599a4f22bc8e9605c94
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.