ERC-20
Overview
Max Total Supply
43,593,614.8927923818398 FT
Holders
3,549
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
15,115.21024638 FTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FabricTokenFundraiser
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-13 */ pragma solidity ^0.4.18; // File: contracts\configs\FabricTokenConfig.sol /** * @title FabricTokenConfig * * @dev The static configuration for the Fabric Token. */ contract FabricTokenConfig { // The name of the token. string constant NAME = "Fabric Token"; // The symbol of the token. string constant SYMBOL = "FT"; // The number of decimals for the token. uint8 constant DECIMALS = 18; // Same as ethers. // Decimal factor for multiplication purposes. uint constant DECIMALS_FACTOR = 10 ** uint(DECIMALS); } // File: contracts\interfaces\ERC20TokenInterface.sol /** * @dev The standard ERC20 Token interface. */ contract ERC20TokenInterface { uint public totalSupply; /* shorthand for public function and a property */ event Transfer(address indexed _from, address indexed _to, uint _value); event Approval(address indexed _owner, address indexed _spender, uint _value); function balanceOf(address _owner) public constant returns (uint balance); function transfer(address _to, uint _value) public returns (bool success); function transferFrom(address _from, address _to, uint _value) public returns (bool success); function approve(address _spender, uint _value) public returns (bool success); function allowance(address _owner, address _spender) public constant returns (uint remaining); } // File: contracts\libraries\SafeMath.sol /** * @dev Library that helps prevent integer overflows and underflows, * inspired by https://github.com/OpenZeppelin/zeppelin-solidity */ library SafeMath { function plus(uint a, uint b) internal pure returns (uint) { uint c = a + b; assert(c >= a); return c; } function minus(uint a, uint b) internal pure returns (uint) { assert(b <= a); return a - b; } function mul(uint a, uint b) internal pure returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint a, uint b) internal pure returns (uint) { uint c = a / b; return c; } } // File: contracts\traits\ERC20Token.sol /** * @title ERC20Token * * @dev Implements the operations declared in the `ERC20TokenInterface`. */ contract ERC20Token is ERC20TokenInterface { using SafeMath for uint; // Token account balances. mapping (address => uint) balances; // Delegated number of tokens to transfer. mapping (address => mapping (address => uint)) allowed; /** * @dev Checks the balance of a certain address. * * @param _account The address which's balance will be checked. * * @return Returns the balance of the `_account` address. */ function balanceOf(address _account) public constant returns (uint balance) { return balances[_account]; } /** * @dev Transfers tokens from one address to another. * * @param _to The target address to which the `_value` number of tokens will be sent. * @param _value The number of tokens to send. * * @return Whether the transfer was successful or not. */ function transfer(address _to, uint _value) public returns (bool success) { if (balances[msg.sender] < _value || _value == 0) { return false; } balances[msg.sender] -= _value; balances[_to] = balances[_to].plus(_value); Transfer(msg.sender, _to, _value); return true; } /** * @dev Send `_value` tokens to `_to` from `_from` if `_from` has approved the process. * * @param _from The address of the sender. * @param _to The address of the recipient. * @param _value The number of tokens to be transferred. * * @return Whether the transfer was successful or not. */ function transferFrom(address _from, address _to, uint _value) public returns (bool success) { if (balances[_from] < _value || allowed[_from][msg.sender] < _value || _value == 0) { return false; } balances[_to] = balances[_to].plus(_value); balances[_from] -= _value; allowed[_from][msg.sender] -= _value; Transfer(_from, _to, _value); return true; } /** * @dev Allows another contract to spend some tokens on your behalf. * * @param _spender The address of the account which will be approved for transfer of tokens. * @param _value The number of tokens to be approved for transfer. * * @return Whether the approval was successful or not. */ function approve(address _spender, uint _value) public returns (bool success) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * @dev Shows the number of tokens approved by `_owner` that are allowed to be transferred by `_spender`. * * @param _owner The account which allowed the transfer. * @param _spender The account which will spend the tokens. * * @return The number of tokens to be transferred. */ function allowance(address _owner, address _spender) public constant returns (uint remaining) { return allowed[_owner][_spender]; } } // File: contracts\traits\HasOwner.sol /** * @title HasOwner * * @dev Allows for exclusive access to certain functionality. */ contract HasOwner { // Current owner. address public owner; // Conditionally the new owner. address public newOwner; /** * @dev The constructor. * * @param _owner The address of the owner. */ function HasOwner(address _owner) internal { owner = _owner; } /** * @dev Access control modifier that allows only the current owner to call the function. */ modifier onlyOwner { require(msg.sender == owner); _; } /** * @dev The event is fired when the current owner is changed. * * @param _oldOwner The address of the previous owner. * @param _newOwner The address of the new owner. */ event OwnershipTransfer(address indexed _oldOwner, address indexed _newOwner); /** * @dev Transfering the ownership is a two-step process, as we prepare * for the transfer by setting `newOwner` and requiring `newOwner` to accept * the transfer. This prevents accidental lock-out if something goes wrong * when passing the `newOwner` address. * * @param _newOwner The address of the proposed new owner. */ function transferOwnership(address _newOwner) public onlyOwner { newOwner = _newOwner; } /** * @dev The `newOwner` finishes the ownership transfer process by accepting the * ownership. */ function acceptOwnership() public { require(msg.sender == newOwner); OwnershipTransfer(owner, newOwner); owner = newOwner; } } // File: contracts\traits\Freezable.sol /** * @title Freezable * @dev This trait allows to freeze the transactions in a Token */ contract Freezable is HasOwner { bool public frozen = false; /** * @dev Modifier makes methods callable only when the contract is not frozen. */ modifier requireNotFrozen() { require(!frozen); _; } /** * @dev Allows the owner to "freeze" the contract. */ function freeze() onlyOwner public { frozen = true; } /** * @dev Allows the owner to "unfreeze" the contract. */ function unfreeze() onlyOwner public { frozen = false; } } // File: contracts\traits\FreezableERC20Token.sol /** * @title FreezableERC20Token * * @dev Extends ERC20Token and adds ability to freeze all transfers of tokens. */ contract FreezableERC20Token is ERC20Token, Freezable { /** * @dev Overrides the original ERC20Token implementation by adding whenNotFrozen modifier. * * @param _to The target address to which the `_value` number of tokens will be sent. * @param _value The number of tokens to send. * * @return Whether the transfer was successful or not. */ function transfer(address _to, uint _value) public requireNotFrozen returns (bool success) { return super.transfer(_to, _value); } /** * @dev Send `_value` tokens to `_to` from `_from` if `_from` has approved the process. * * @param _from The address of the sender. * @param _to The address of the recipient. * @param _value The number of tokens to be transferred. * * @return Whether the transfer was successful or not. */ function transferFrom(address _from, address _to, uint _value) public requireNotFrozen returns (bool success) { return super.transferFrom(_from, _to, _value); } /** * @dev Allows another contract to spend some tokens on your behalf. * * @param _spender The address of the account which will be approved for transfer of tokens. * @param _value The number of tokens to be approved for transfer. * * @return Whether the approval was successful or not. */ function approve(address _spender, uint _value) public requireNotFrozen returns (bool success) { return super.approve(_spender, _value); } } // File: contracts\FabricToken.sol /** * @title Fabric Token * * @dev A standard token implementation of the ERC20 token standard with added * HasOwner trait and initialized using the configuration constants. */ contract FabricToken is FabricTokenConfig, HasOwner, FreezableERC20Token { // The name of the token. string public name; // The symbol for the token. string public symbol; // The decimals of the token. uint8 public decimals; /** * @dev The constructor. Initially sets `totalSupply` and the balance of the * `owner` address according to the initialization parameter. */ function FabricToken(uint _totalSupply) public HasOwner(msg.sender) { name = NAME; symbol = SYMBOL; decimals = DECIMALS; totalSupply = _totalSupply; balances[owner] = _totalSupply; } } // File: contracts\configs\FabricTokenFundraiserConfig.sol /** * @title FabricTokenFundraiserConfig * * @dev The static configuration for the Fabric Token fundraiser. */ contract FabricTokenFundraiserConfig is FabricTokenConfig { // The number of FT per 1 ETH. uint constant CONVERSION_RATE = 9000; // The public sale hard cap of the fundraiser. uint constant TOKENS_HARD_CAP = 71250 * (10**3) * DECIMALS_FACTOR; // The start date of the fundraiser: Thursday, 2018-02-15 10:00:00 UTC. uint constant START_DATE = 1518688800; // The end date of the fundraiser: Sunday, 2018-04-01 10:00:00 UTC (45 days after `START_DATE`). uint constant END_DATE = 1522576800; // Total number of tokens locked for the FT core team. uint constant TOKENS_LOCKED_CORE_TEAM = 12 * (10**6) * DECIMALS_FACTOR; // Total number of tokens locked for FT advisors. uint constant TOKENS_LOCKED_ADVISORS = 7 * (10**6) * DECIMALS_FACTOR; // The release date for tokens locked for the FT core team. uint constant TOKENS_LOCKED_CORE_TEAM_RELEASE_DATE = START_DATE + 1 years; // The release date for tokens locked for FT advisors. uint constant TOKENS_LOCKED_ADVISORS_RELEASE_DATE = START_DATE + 180 days; // Total number of tokens locked for bounty program. uint constant TOKENS_BOUNTY_PROGRAM = 1 * (10**6) * DECIMALS_FACTOR; // Maximum gas price limit uint constant MAX_GAS_PRICE = 50000000000 wei; // 50 gwei/shanon // Minimum individual contribution uint constant MIN_CONTRIBUTION = 0.1 ether; // Individual limit in ether uint constant INDIVIDUAL_ETHER_LIMIT = 9 ether; } // File: contracts\traits\TokenSafe.sol /** * @title TokenSafe * * @dev A multi-bundle token safe contract that contains locked tokens released after a date for the specific bundle type. */ contract TokenSafe { using SafeMath for uint; struct AccountsBundle { // The total number of tokens locked. uint lockedTokens; // The release date for the locked tokens // Note: Unix timestamp fits uint32, however block.timestamp is uint uint releaseDate; // The balances for the FT locked token accounts. mapping (address => uint) balances; } // The account bundles of locked tokens grouped by release date mapping (uint8 => AccountsBundle) public bundles; // The `ERC20TokenInterface` contract. ERC20TokenInterface token; /** * @dev The constructor. * * @param _token The address of the Fabric Token (fundraiser) contract. */ function TokenSafe(address _token) public { token = ERC20TokenInterface(_token); } /** * @dev The function initializes the bundle of accounts with a release date. * * @param _type Bundle type. * @param _releaseDate Unix timestamp of the time after which the tokens can be released */ function initBundle(uint8 _type, uint _releaseDate) internal { bundles[_type].releaseDate = _releaseDate; } /** * @dev Add new account with locked token balance to the specified bundle type. * * @param _type Bundle type. * @param _account The address of the account to be added. * @param _balance The number of tokens to be locked. */ function addLockedAccount(uint8 _type, address _account, uint _balance) internal { var bundle = bundles[_type]; bundle.balances[_account] = bundle.balances[_account].plus(_balance); bundle.lockedTokens = bundle.lockedTokens.plus(_balance); } /** * @dev Allows an account to be released if it meets the time constraints. * * @param _type Bundle type. * @param _account The address of the account to be released. */ function releaseAccount(uint8 _type, address _account) internal { var bundle = bundles[_type]; require(now >= bundle.releaseDate); uint tokens = bundle.balances[_account]; require(tokens > 0); bundle.balances[_account] = 0; bundle.lockedTokens = bundle.lockedTokens.minus(tokens); if (!token.transfer(_account, tokens)) { revert(); } } } // File: contracts\FabricTokenSafe.sol /** * @title FabricTokenSafe * * @dev The Fabric Token safe containing all details about locked tokens. */ contract FabricTokenSafe is TokenSafe, FabricTokenFundraiserConfig { // Bundle type constants uint8 constant CORE_TEAM = 0; uint8 constant ADVISORS = 1; /** * @dev The constructor. * * @param _token The address of the Fabric Token (fundraiser) contract. */ function FabricTokenSafe(address _token) public TokenSafe(_token) { token = ERC20TokenInterface(_token); /// Core team. initBundle(CORE_TEAM, TOKENS_LOCKED_CORE_TEAM_RELEASE_DATE ); // Accounts with tokens locked for the FT core team. addLockedAccount(CORE_TEAM, 0xB494096548aA049C066289A083204E923cBf4413, 4 * (10**6) * DECIMALS_FACTOR); addLockedAccount(CORE_TEAM, 0xE3506B01Bee377829ee3CffD8bae650e990c5d68, 4 * (10**6) * DECIMALS_FACTOR); addLockedAccount(CORE_TEAM, 0x3d13219dc1B8913E019BeCf0772C2a54318e5718, 4 * (10**6) * DECIMALS_FACTOR); // Verify that the tokens add up to the constant in the configuration. assert(bundles[CORE_TEAM].lockedTokens == TOKENS_LOCKED_CORE_TEAM); /// Advisors. initBundle(ADVISORS, TOKENS_LOCKED_ADVISORS_RELEASE_DATE ); // Accounts with FT tokens locked for advisors. addLockedAccount(ADVISORS, 0x4647Da07dAAb17464278B988CDE59A4b911EBe44, 2 * (10**6) * DECIMALS_FACTOR); addLockedAccount(ADVISORS, 0x3eA2caac5A0A4a55f9e304AcD09b3CEe6cD4Bc39, 1 * (10**6) * DECIMALS_FACTOR); addLockedAccount(ADVISORS, 0xd5f791EC3ED79f79a401b12f7625E1a972382437, 1 * (10**6) * DECIMALS_FACTOR); addLockedAccount(ADVISORS, 0xcaeae3CD1a5d3E6E950424C994e14348ac3Ec5dA, 1 * (10**6) * DECIMALS_FACTOR); addLockedAccount(ADVISORS, 0xb6EA6193058F3c8A4A413d176891d173D62E00bE, 1 * (10**6) * DECIMALS_FACTOR); addLockedAccount(ADVISORS, 0x8b3E184Cf5C3bFDaB1C4D0F30713D30314FcfF7c, 1 * (10**6) * DECIMALS_FACTOR); // Verify that the tokens add up to the constant in the configuration. assert(bundles[ADVISORS].lockedTokens == TOKENS_LOCKED_ADVISORS); } /** * @dev Returns the total locked tokens. This function is called by the fundraiser to determine number of tokens to create upon finalization. * * @return The current total number of locked Fabric Tokens. */ function totalTokensLocked() public constant returns (uint) { return bundles[CORE_TEAM].lockedTokens.plus(bundles[ADVISORS].lockedTokens); } /** * @dev Allows core team account FT tokens to be released. */ function releaseCoreTeamAccount() public { releaseAccount(CORE_TEAM, msg.sender); } /** * @dev Allows advisors account FT tokens to be released. */ function releaseAdvisorsAccount() public { releaseAccount(ADVISORS, msg.sender); } } // File: contracts\traits\Whitelist.sol contract Whitelist is HasOwner { // Whitelist mapping mapping(address => bool) public whitelist; /** * @dev The constructor. */ function Whitelist(address _owner) public HasOwner(_owner) { } /** * @dev Access control modifier that allows only whitelisted address to call the method. */ modifier onlyWhitelisted { require(whitelist[msg.sender]); _; } /** * @dev Internal function that sets whitelist status in batch. * * @param _entries An array with the entries to be updated * @param _status The new status to apply */ function setWhitelistEntries(address[] _entries, bool _status) internal { for (uint32 i = 0; i < _entries.length; ++i) { whitelist[_entries[i]] = _status; } } /** * @dev Public function that allows the owner to whitelist multiple entries * * @param _entries An array with the entries to be whitelisted */ function whitelistAddresses(address[] _entries) public onlyOwner { setWhitelistEntries(_entries, true); } /** * @dev Public function that allows the owner to blacklist multiple entries * * @param _entries An array with the entries to be blacklist */ function blacklistAddresses(address[] _entries) public onlyOwner { setWhitelistEntries(_entries, false); } } // File: contracts\FabricTokenFundraiser.sol /** * @title FabricTokenFundraiser * * @dev The Fabric Token fundraiser contract. */ contract FabricTokenFundraiser is FabricToken, FabricTokenFundraiserConfig, Whitelist { // Indicates whether the fundraiser has ended or not. bool public finalized = false; // The address of the account which will receive the funds gathered by the fundraiser. address public beneficiary; // The number of FT participants will receive per 1 ETH. uint public conversionRate; // Fundraiser start date. uint public startDate; // Fundraiser end date. uint public endDate; // Fundraiser tokens hard cap. uint public hardCap; // The `FabricTokenSafe` contract. FabricTokenSafe public fabricTokenSafe; // The minimum amount of ether allowed in the public sale uint internal minimumContribution; // The maximum amount of ether allowed per address uint internal individualLimit; // Number of tokens sold during the fundraiser. uint private tokensSold; // Indicates whether the tokens are claimed by the partners bool private partnerTokensClaimed = false; /** * @dev The event fires every time a new buyer enters the fundraiser. * * @param _address The address of the buyer. * @param _ethers The number of ethers sent. * @param _tokens The number of tokens received by the buyer. * @param _newTotalSupply The updated total number of tokens currently in circulation. * @param _conversionRate The conversion rate at which the tokens were bought. */ event FundsReceived(address indexed _address, uint _ethers, uint _tokens, uint _newTotalSupply, uint _conversionRate); /** * @dev The event fires when the beneficiary of the fundraiser is changed. * * @param _beneficiary The address of the new beneficiary. */ event BeneficiaryChange(address _beneficiary); /** * @dev The event fires when the number of FT per 1 ETH is changed. * * @param _conversionRate The new number of FT per 1 ETH. */ event ConversionRateChange(uint _conversionRate); /** * @dev The event fires when the fundraiser is successfully finalized. * * @param _beneficiary The address of the beneficiary. * @param _ethers The number of ethers transfered to the beneficiary. * @param _totalSupply The total number of tokens in circulation. */ event Finalized(address _beneficiary, uint _ethers, uint _totalSupply); /** * @dev The constructor. * * @param _beneficiary The address which will receive the funds gathered by the fundraiser. */ function FabricTokenFundraiser(address _beneficiary) public FabricToken(0) Whitelist(msg.sender) { require(_beneficiary != 0); beneficiary = _beneficiary; conversionRate = CONVERSION_RATE; startDate = START_DATE; endDate = END_DATE; hardCap = TOKENS_HARD_CAP; tokensSold = 0; minimumContribution = MIN_CONTRIBUTION; individualLimit = INDIVIDUAL_ETHER_LIMIT * CONVERSION_RATE; fabricTokenSafe = new FabricTokenSafe(this); // Freeze the transfers for the duration of the fundraiser. freeze(); } /** * @dev Changes the beneficiary of the fundraiser. * * @param _beneficiary The address of the new beneficiary. */ function setBeneficiary(address _beneficiary) public onlyOwner { require(_beneficiary != 0); beneficiary = _beneficiary; BeneficiaryChange(_beneficiary); } /** * @dev Sets converstion rate of 1 ETH to FT. Can only be changed before the fundraiser starts. * * @param _conversionRate The new number of Fabric Tokens per 1 ETH. */ function setConversionRate(uint _conversionRate) public onlyOwner { require(now < startDate); require(_conversionRate > 0); conversionRate = _conversionRate; individualLimit = INDIVIDUAL_ETHER_LIMIT * _conversionRate; ConversionRateChange(_conversionRate); } /** * @dev The default function which will fire every time someone sends ethers to this contract's address. */ function() public payable { buyTokens(); } /** * @dev Creates new tokens based on the number of ethers sent and the conversion rate. */ function buyTokens() public payable onlyWhitelisted { require(!finalized); require(now >= startDate); require(now <= endDate); require(tx.gasprice <= MAX_GAS_PRICE); // gas price limit require(msg.value >= minimumContribution); // required minimum contribution require(tokensSold <= hardCap); // Calculate the number of tokens the buyer will receive. uint tokens = msg.value.mul(conversionRate); balances[msg.sender] = balances[msg.sender].plus(tokens); // Ensure that the individual contribution limit has not been reached require(balances[msg.sender] <= individualLimit); tokensSold = tokensSold.plus(tokens); totalSupply = totalSupply.plus(tokens); Transfer(0x0, msg.sender, tokens); FundsReceived( msg.sender, msg.value, tokens, totalSupply, conversionRate ); } /** * @dev Distributes the tokens allocated for the strategic partners. */ function claimPartnerTokens() public { require(!partnerTokensClaimed); require(now >= startDate); partnerTokensClaimed = true; address partner1 = 0xA6556B9BD0AAbf0d8824374A3C425d315b09b832; balances[partner1] = balances[partner1].plus(125 * (10**4) * DECIMALS_FACTOR); address partner2 = 0x783A1cBc37a8ef2F368908490b72BfE801DA1877; balances[partner2] = balances[partner2].plus(750 * (10**4) * DECIMALS_FACTOR); totalSupply = totalSupply.plus(875 * (10**4) * DECIMALS_FACTOR); } /** * @dev Finalize the fundraiser if `endDate` has passed or if `hardCap` is reached. */ function finalize() public onlyOwner { require((totalSupply >= hardCap) || (now >= endDate)); require(!finalized); Finalized(beneficiary, this.balance, totalSupply); /// Send the total number of ETH gathered to the beneficiary. beneficiary.transfer(this.balance); /// Allocate locked tokens to the `FabricTokenSafe` contract. uint totalTokensLocked = fabricTokenSafe.totalTokensLocked(); balances[address(fabricTokenSafe)] = balances[address(fabricTokenSafe)].plus(totalTokensLocked); totalSupply = totalSupply.plus(totalTokensLocked); // Transfer the funds for the bounty program. balances[owner] = balances[owner].plus(TOKENS_BOUNTY_PROGRAM); totalSupply = totalSupply.plus(TOKENS_BOUNTY_PROGRAM); /// Finalize the fundraiser. Keep in mind that this cannot be undone. finalized = true; // Unfreeze transfers unfreeze(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"claimPartnerTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"frozen","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"setBeneficiary","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_entries","type":"address[]"}],"name":"whitelistAddresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unfreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_entries","type":"address[]"}],"name":"blacklistAddresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"conversionRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_conversionRate","type":"uint256"}],"name":"setConversionRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fabricTokenSafe","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_beneficiary","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_ethers","type":"uint256"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_newTotalSupply","type":"uint256"},{"indexed":false,"name":"_conversionRate","type":"uint256"}],"name":"FundsReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_beneficiary","type":"address"}],"name":"BeneficiaryChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_conversionRate","type":"uint256"}],"name":"ConversionRateChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_beneficiary","type":"address"},{"indexed":false,"name":"_ethers","type":"uint256"},{"indexed":false,"name":"_totalSupply","type":"uint256"}],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_oldOwner","type":"address"},{"indexed":true,"name":"_newOwner","type":"address"}],"name":"OwnershipTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60606040526004805460a060020a60ff02191690556009805460ff1990811690915560128054909116905534156200003657600080fd5b60405160208062001d728339810160405280805160038054600160a060020a03191633600160a060020a038116919091179091559092509050600060408051908101604052600c81527f46616272696320546f6b656e000000000000000000000000000000000000000060208201526005908051620000ba9291602001906200025f565b5060408051908101604052600281527f465400000000000000000000000000000000000000000000000000000000000060208201526006908051620001049291602001906200025f565b506007805460ff191660121790556000818155600354600160a060020a03908116825260016020526040909120919091558216151590506200014557600080fd5b6009805461010060a860020a031916610100600160a060020a03841602179055612328600a55635a855a20600b55635ac0ada0600c556a3aefc63d4e89230f400000600d55600060115567016345785d8a0000600f5569112704cffb9b70a0000060105530620001b4620002e4565b600160a060020a039091168152602001604051809103906000f0801515620001db57600080fd5b600e8054600160a060020a031916600160a060020a0392909216919091179055620002136401000000006200021a810262000cf11704565b5062000315565b60035433600160a060020a039081169116146200023657600080fd5b6004805460a060020a60ff02191674010000000000000000000000000000000000000000179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002a257805160ff1916838001178555620002d2565b82800160010185558215620002d2579182015b82811115620002d2578251825591602001919060010190620002b5565b50620002e0929150620002f5565b5090565b604051610722806200165083390190565b6200031291905b80821115620002e05760008155600101620002fc565b90565b61132b80620003256000396000f30060606040526004361061018a5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663049a2dd18114610194578063054f7d9c146101a757806306fdde03146101ce578063095ea7b3146102585780630b97bc861461027a57806318160ddd1461029f5780631c31f710146102b257806323b872dd146102d15780632bf04304146102f9578063313ce5671461034857806338af3eed146103715780634bb278f3146103a057806362a5af3b146103b35780636a28f000146103c657806370a08231146103d957806377a54eb8146103f857806379ba5097146104475780637ffdf53e1461045a5780638da5cb5b1461046d57806395d89b41146104805780639b19251a14610493578063a9059cbb146104b2578063b3f05b97146104d4578063c24a0f8b146104e7578063d0febe4c1461018a578063d2e80494146104fa578063d4ee1d9014610510578063dd62ed3e14610523578063f2fde38b14610548578063f4fa860314610567578063fb86a4041461057a575b61019261058d565b005b341561019f57600080fd5b61019261074a565b34156101b257600080fd5b6101ba610892565b604051901515815260200160405180910390f35b34156101d957600080fd5b6101e16108a2565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561021d578082015183820152602001610205565b50505050905090810190601f16801561024a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561026357600080fd5b6101ba600160a060020a0360043516602435610940565b341561028557600080fd5b61028d61096d565b60405190815260200160405180910390f35b34156102aa57600080fd5b61028d610973565b34156102bd57600080fd5b610192600160a060020a0360043516610979565b34156102dc57600080fd5b6101ba600160a060020a0360043581169060243516604435610a16565b341561030457600080fd5b6101926004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650610a4595505050505050565b341561035357600080fd5b61035b610a6e565b60405160ff909116815260200160405180910390f35b341561037c57600080fd5b610384610a77565b604051600160a060020a03909116815260200160405180910390f35b34156103ab57600080fd5b610192610a8b565b34156103be57600080fd5b610192610cf1565b34156103d157600080fd5b610192610d32565b34156103e457600080fd5b61028d600160a060020a0360043516610d6d565b341561040357600080fd5b6101926004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650610d8895505050505050565b341561045257600080fd5b610192610dae565b341561046557600080fd5b61028d610e39565b341561047857600080fd5b610384610e3f565b341561048b57600080fd5b6101e1610e4e565b341561049e57600080fd5b6101ba600160a060020a0360043516610eb9565b34156104bd57600080fd5b6101ba600160a060020a0360043516602435610ece565b34156104df57600080fd5b6101ba610ef2565b34156104f257600080fd5b61028d610efb565b341561050557600080fd5b610192600435610f01565b341561051b57600080fd5b610384610f80565b341561052e57600080fd5b61028d600160a060020a0360043581169060243516610f8f565b341561055357600080fd5b610192600160a060020a0360043516610fba565b341561057257600080fd5b610384611004565b341561058557600080fd5b61028d611013565b600160a060020a03331660009081526008602052604081205460ff1615156105b457600080fd5b60095460ff16156105c457600080fd5b600b544210156105d357600080fd5b600c544211156105e257600080fd5b640ba43b74003a11156105f457600080fd5b600f5434101561060357600080fd5b600d54601154111561061457600080fd5b600a5461062890349063ffffffff61101916565b600160a060020a033316600090815260016020526040902054909150610654908263ffffffff61103d16565b600160a060020a033316600090815260016020526040902081905560105490111561067e57600080fd5b601154610691908263ffffffff61103d16565b6011556000546106a7908263ffffffff61103d16565b6000908155600160a060020a033316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a333600160a060020a03167f17e507914c1ab4cd822dacbda95ac688e622145eaaf4547021782e4a347837453483600054600a546040518085815260200184815260200183815260200182815260200194505050505060405180910390a250565b601254600090819060ff161561075f57600080fd5b600b5442101561076e57600080fd5b6012805460ff1916600190811790915573a6556b9bd0aabf0d8824374a3c425d315b09b83260008190526020919091527ffa207b1b46c5ac06b3e94761adb7afab09b1b46722bd487dc099202049a6188f549092506107de906a0108b2a2c280290940000063ffffffff61103d16565b600160a060020a03831660009081526001602052604081209190915573783a1cbc37a8ef2f368908490b72bfe801da1877908190527f10d43ec9345f8f08c9bac7a5e73af742daeac0aef3aa01f279eedb48c77c063c54909150610853906a06342fd08f00f63780000063ffffffff61103d16565b600160a060020a0382166000908152600160205260408120919091555461088b906a073ce27351811f40c0000063ffffffff61103d16565b6000555050565b60045460a060020a900460ff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109385780601f1061090d57610100808354040283529160200191610938565b820191906000526020600020905b81548152906001019060200180831161091b57829003601f168201915b505050505081565b60045460009060a060020a900460ff161561095a57600080fd5b610964838361104c565b90505b92915050565b600b5481565b60005481565b60035433600160a060020a0390811691161461099457600080fd5b600160a060020a03811615156109a957600080fd5b6009805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a038416021790557fde18bec64db6456a4810135a56f83d06f0ab5786ebdb21e3bef0893f63dab7fd81604051600160a060020a03909116815260200160405180910390a150565b60045460009060a060020a900460ff1615610a3057600080fd5b610a3b8484846110b8565b90505b9392505050565b60035433600160a060020a03908116911614610a6057600080fd5b610a6b8160016111cc565b50565b60075460ff1681565b6009546101009004600160a060020a031681565b60035460009033600160a060020a03908116911614610aa957600080fd5b600d54600054101580610abe5750600c544210155b1515610ac957600080fd5b60095460ff1615610ad957600080fd5b7f616c9469db50815ae0f1d0a020d9fc9060da7c57f03559afb0d4ebdaa0a3a05e600960019054906101000a9004600160a060020a031630600160a060020a0316316000546040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a1600954600160a060020a0361010090910481169030163180156108fc0290604051600060405180830381858888f193505050501515610b9157600080fd5b600e54600160a060020a031663dc5bf9616000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610bf257600080fd5b6102c65a03f11515610c0357600080fd5b5050506040518051600e54600160a060020a0316600090815260016020526040902054909250610c3a91508263ffffffff61103d16565b600e54600160a060020a031660009081526001602052604081209190915554610c69908263ffffffff61103d16565b6000908155600354600160a060020a0316815260016020526040902054610ca09069d3c21bcecceda100000063ffffffff61103d16565b600354600160a060020a031660009081526001602052604081209190915554610cd99069d3c21bcecceda100000063ffffffff61103d16565b6000556009805460ff19166001179055610a6b610d32565b60035433600160a060020a03908116911614610d0c57600080fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a179055565b60035433600160a060020a03908116911614610d4d57600080fd5b6004805474ff000000000000000000000000000000000000000019169055565b600160a060020a031660009081526001602052604090205490565b60035433600160a060020a03908116911614610da357600080fd5b610a6b8160006111cc565b60045433600160a060020a03908116911614610dc957600080fd5b600454600354600160a060020a0391821691167f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca60405160405180910390a36004546003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600a5481565b600354600160a060020a031681565b60068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109385780601f1061090d57610100808354040283529160200191610938565b60086020526000908152604090205460ff1681565b60045460009060a060020a900460ff1615610ee857600080fd5b6109648383611234565b60095460ff1681565b600c5481565b60035433600160a060020a03908116911614610f1c57600080fd5b600b544210610f2a57600080fd5b60008111610f3757600080fd5b600a819055677ce66c50e284000081026010557fed4f114d5309d23a6f29a047b8e4014ccd43ac8c42087d845ef4d0f1fbf2d8848160405190815260200160405180910390a150565b600454600160a060020a031681565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a03908116911614610fd557600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600e54600160a060020a031681565b600d5481565b6000828202831580611035575082848281151561103257fe5b04145b1515610a3e57fe5b600082820183811015610a3e57fe5b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600160a060020a038316600090815260016020526040812054829010806111055750600160a060020a03808516600090815260026020908152604080832033909416835292905220548290105b8061110e575081155b1561111b57506000610a3e565b600160a060020a038316600090815260016020526040902054611144908363ffffffff61103d16565b600160a060020a03808516600081815260016020908152604080832095909555888416808352858320805489900390556002825285832033909516835293905283902080548690039055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60005b82518163ffffffff16101561122f578160086000858463ffffffff16815181106111f557fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790556001016111cf565b505050565b600160a060020a03331660009081526001602052604081205482901080611259575081155b1561126657506000610967565b600160a060020a03338116600090815260016020526040808220805486900390559185168152205461129e908363ffffffff61103d16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001929150505600a165627a7a723058204a434c3597397ea37843e3ff0fedd12273951a92474c0bcf18180fcde320e7eb00296060604052341561000f57600080fd5b6040516020806107228339810160405280805160018054600160a060020a038316600160a060020a03199182168117909116179055915061006490506000635c668da06401000000006102c06102f582021704565b61009c600073b494096548aa049c066289a083204e923cbf44136a034f086f3b33b6840000006401000000006102d961030e82021704565b6100d4600073e3506b01bee377829ee3cffd8bae650e990c5d686a034f086f3b33b6840000006401000000006102d961030e82021704565b61010c6000733d13219dc1b8913e019becf0772c2a54318e57186a034f086f3b33b6840000006401000000006102d961030e82021704565b60008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5546a09ed194db19b238c0000001461014957fe5b6101656001635b72a8206401000000006102c06102f582021704565b61019d6001734647da07daab17464278b988cde59a4b911ebe446a01a784379d99db420000006401000000006102d961030e82021704565b6101d46001733ea2caac5a0a4a55f9e304acd09b3cee6cd4bc3969d3c21bcecceda10000006401000000006102d961030e82021704565b61020b600173d5f791ec3ed79f79a401b12f7625e1a97238243769d3c21bcecceda10000006401000000006102d961030e82021704565b610242600173caeae3cd1a5d3e6e950424c994e14348ac3ec5da69d3c21bcecceda10000006401000000006102d961030e82021704565b610279600173b6ea6193058f3c8a4a413d176891d173d62e00be69d3c21bcecceda10000006401000000006102d961030e82021704565b6102b06001738b3e184cf5c3bfdab1c4d0f30713d30314fcff7c69d3c21bcecceda10000006401000000006102d961030e82021704565b600160009081526020527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d546a05ca4ec2a79a7f67000000146102ef57fe5b506103a0565b60ff909116600090815260208190526040902060010155565b60ff8316600090815260208181526040808320600160a060020a0386168452600281019092529091205461034f908364010000000061029861038a82021704565b600160a060020a03841660009081526002830160205260409020558054610383908364010000000061029861038a82021704565b9055505050565b60008282018381101561039957fe5b9392505050565b610373806103af6000396000f3006060604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166317e95fbc811461006657806347b3aff81461007b578063c1873e26146100ac578063dc5bf961146100bf575b600080fd5b341561007157600080fd5b6100796100e4565b005b341561008657600080fd5b61009460ff600435166100f1565b60405191825260208201526040908101905180910390f35b34156100b757600080fd5b61007961010a565b34156100ca57600080fd5b6100d2610115565b60405190815260200160405180910390f35b6100ef600133610177565b565b6000602081905290815260409020805460019091015482565b6100ef600033610177565b600060208190527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d548180527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5546101729163ffffffff61029816565b905090565b60ff82166000908152602081905260408120600181015490919042101561019d57600080fd5b50600160a060020a03821660009081526002820160205260408120549081116101c557600080fd5b600160a060020a038316600090815260028301602052604081205581546101f2908263ffffffff6102ae16565b8255600154600160a060020a031663a9059cbb84836000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561026c57600080fd5b6102c65a03f1151561027d57600080fd5b50505060405180519050151561029257600080fd5b50505050565b6000828201838110156102a757fe5b9392505050565b6000828211156102ba57fe5b50900390565b60ff909116600090815260208190526040902060010155565b60ff8316600090815260208181526040808320600160a060020a03861684526002810190925290912054610313908363ffffffff61029816565b600160a060020a03841660009081526002830160205260409020558054610340908363ffffffff61029816565b90555050505600a165627a7a7230582087070590124402b774273f0f3df8450bcf26f6b6fbca17cc2fa63f9b48f6d05a00290000000000000000000000000d15719e1d47bd37a39dcf30e3725777cf639241
Deployed Bytecode
0x60606040526004361061018a5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663049a2dd18114610194578063054f7d9c146101a757806306fdde03146101ce578063095ea7b3146102585780630b97bc861461027a57806318160ddd1461029f5780631c31f710146102b257806323b872dd146102d15780632bf04304146102f9578063313ce5671461034857806338af3eed146103715780634bb278f3146103a057806362a5af3b146103b35780636a28f000146103c657806370a08231146103d957806377a54eb8146103f857806379ba5097146104475780637ffdf53e1461045a5780638da5cb5b1461046d57806395d89b41146104805780639b19251a14610493578063a9059cbb146104b2578063b3f05b97146104d4578063c24a0f8b146104e7578063d0febe4c1461018a578063d2e80494146104fa578063d4ee1d9014610510578063dd62ed3e14610523578063f2fde38b14610548578063f4fa860314610567578063fb86a4041461057a575b61019261058d565b005b341561019f57600080fd5b61019261074a565b34156101b257600080fd5b6101ba610892565b604051901515815260200160405180910390f35b34156101d957600080fd5b6101e16108a2565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561021d578082015183820152602001610205565b50505050905090810190601f16801561024a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561026357600080fd5b6101ba600160a060020a0360043516602435610940565b341561028557600080fd5b61028d61096d565b60405190815260200160405180910390f35b34156102aa57600080fd5b61028d610973565b34156102bd57600080fd5b610192600160a060020a0360043516610979565b34156102dc57600080fd5b6101ba600160a060020a0360043581169060243516604435610a16565b341561030457600080fd5b6101926004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650610a4595505050505050565b341561035357600080fd5b61035b610a6e565b60405160ff909116815260200160405180910390f35b341561037c57600080fd5b610384610a77565b604051600160a060020a03909116815260200160405180910390f35b34156103ab57600080fd5b610192610a8b565b34156103be57600080fd5b610192610cf1565b34156103d157600080fd5b610192610d32565b34156103e457600080fd5b61028d600160a060020a0360043516610d6d565b341561040357600080fd5b6101926004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650610d8895505050505050565b341561045257600080fd5b610192610dae565b341561046557600080fd5b61028d610e39565b341561047857600080fd5b610384610e3f565b341561048b57600080fd5b6101e1610e4e565b341561049e57600080fd5b6101ba600160a060020a0360043516610eb9565b34156104bd57600080fd5b6101ba600160a060020a0360043516602435610ece565b34156104df57600080fd5b6101ba610ef2565b34156104f257600080fd5b61028d610efb565b341561050557600080fd5b610192600435610f01565b341561051b57600080fd5b610384610f80565b341561052e57600080fd5b61028d600160a060020a0360043581169060243516610f8f565b341561055357600080fd5b610192600160a060020a0360043516610fba565b341561057257600080fd5b610384611004565b341561058557600080fd5b61028d611013565b600160a060020a03331660009081526008602052604081205460ff1615156105b457600080fd5b60095460ff16156105c457600080fd5b600b544210156105d357600080fd5b600c544211156105e257600080fd5b640ba43b74003a11156105f457600080fd5b600f5434101561060357600080fd5b600d54601154111561061457600080fd5b600a5461062890349063ffffffff61101916565b600160a060020a033316600090815260016020526040902054909150610654908263ffffffff61103d16565b600160a060020a033316600090815260016020526040902081905560105490111561067e57600080fd5b601154610691908263ffffffff61103d16565b6011556000546106a7908263ffffffff61103d16565b6000908155600160a060020a033316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a333600160a060020a03167f17e507914c1ab4cd822dacbda95ac688e622145eaaf4547021782e4a347837453483600054600a546040518085815260200184815260200183815260200182815260200194505050505060405180910390a250565b601254600090819060ff161561075f57600080fd5b600b5442101561076e57600080fd5b6012805460ff1916600190811790915573a6556b9bd0aabf0d8824374a3c425d315b09b83260008190526020919091527ffa207b1b46c5ac06b3e94761adb7afab09b1b46722bd487dc099202049a6188f549092506107de906a0108b2a2c280290940000063ffffffff61103d16565b600160a060020a03831660009081526001602052604081209190915573783a1cbc37a8ef2f368908490b72bfe801da1877908190527f10d43ec9345f8f08c9bac7a5e73af742daeac0aef3aa01f279eedb48c77c063c54909150610853906a06342fd08f00f63780000063ffffffff61103d16565b600160a060020a0382166000908152600160205260408120919091555461088b906a073ce27351811f40c0000063ffffffff61103d16565b6000555050565b60045460a060020a900460ff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109385780601f1061090d57610100808354040283529160200191610938565b820191906000526020600020905b81548152906001019060200180831161091b57829003601f168201915b505050505081565b60045460009060a060020a900460ff161561095a57600080fd5b610964838361104c565b90505b92915050565b600b5481565b60005481565b60035433600160a060020a0390811691161461099457600080fd5b600160a060020a03811615156109a957600080fd5b6009805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a038416021790557fde18bec64db6456a4810135a56f83d06f0ab5786ebdb21e3bef0893f63dab7fd81604051600160a060020a03909116815260200160405180910390a150565b60045460009060a060020a900460ff1615610a3057600080fd5b610a3b8484846110b8565b90505b9392505050565b60035433600160a060020a03908116911614610a6057600080fd5b610a6b8160016111cc565b50565b60075460ff1681565b6009546101009004600160a060020a031681565b60035460009033600160a060020a03908116911614610aa957600080fd5b600d54600054101580610abe5750600c544210155b1515610ac957600080fd5b60095460ff1615610ad957600080fd5b7f616c9469db50815ae0f1d0a020d9fc9060da7c57f03559afb0d4ebdaa0a3a05e600960019054906101000a9004600160a060020a031630600160a060020a0316316000546040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a1600954600160a060020a0361010090910481169030163180156108fc0290604051600060405180830381858888f193505050501515610b9157600080fd5b600e54600160a060020a031663dc5bf9616000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610bf257600080fd5b6102c65a03f11515610c0357600080fd5b5050506040518051600e54600160a060020a0316600090815260016020526040902054909250610c3a91508263ffffffff61103d16565b600e54600160a060020a031660009081526001602052604081209190915554610c69908263ffffffff61103d16565b6000908155600354600160a060020a0316815260016020526040902054610ca09069d3c21bcecceda100000063ffffffff61103d16565b600354600160a060020a031660009081526001602052604081209190915554610cd99069d3c21bcecceda100000063ffffffff61103d16565b6000556009805460ff19166001179055610a6b610d32565b60035433600160a060020a03908116911614610d0c57600080fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a179055565b60035433600160a060020a03908116911614610d4d57600080fd5b6004805474ff000000000000000000000000000000000000000019169055565b600160a060020a031660009081526001602052604090205490565b60035433600160a060020a03908116911614610da357600080fd5b610a6b8160006111cc565b60045433600160a060020a03908116911614610dc957600080fd5b600454600354600160a060020a0391821691167f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca60405160405180910390a36004546003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600a5481565b600354600160a060020a031681565b60068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109385780601f1061090d57610100808354040283529160200191610938565b60086020526000908152604090205460ff1681565b60045460009060a060020a900460ff1615610ee857600080fd5b6109648383611234565b60095460ff1681565b600c5481565b60035433600160a060020a03908116911614610f1c57600080fd5b600b544210610f2a57600080fd5b60008111610f3757600080fd5b600a819055677ce66c50e284000081026010557fed4f114d5309d23a6f29a047b8e4014ccd43ac8c42087d845ef4d0f1fbf2d8848160405190815260200160405180910390a150565b600454600160a060020a031681565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a03908116911614610fd557600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600e54600160a060020a031681565b600d5481565b6000828202831580611035575082848281151561103257fe5b04145b1515610a3e57fe5b600082820183811015610a3e57fe5b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600160a060020a038316600090815260016020526040812054829010806111055750600160a060020a03808516600090815260026020908152604080832033909416835292905220548290105b8061110e575081155b1561111b57506000610a3e565b600160a060020a038316600090815260016020526040902054611144908363ffffffff61103d16565b600160a060020a03808516600081815260016020908152604080832095909555888416808352858320805489900390556002825285832033909516835293905283902080548690039055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60005b82518163ffffffff16101561122f578160086000858463ffffffff16815181106111f557fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790556001016111cf565b505050565b600160a060020a03331660009081526001602052604081205482901080611259575081155b1561126657506000610967565b600160a060020a03338116600090815260016020526040808220805486900390559185168152205461129e908363ffffffff61103d16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001929150505600a165627a7a723058204a434c3597397ea37843e3ff0fedd12273951a92474c0bcf18180fcde320e7eb0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000d15719e1d47bd37a39dcf30e3725777cf639241
-----Decoded View---------------
Arg [0] : _beneficiary (address): 0x0d15719e1D47Bd37a39Dcf30E3725777Cf639241
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000d15719e1d47bd37a39dcf30e3725777cf639241
Swarm Source
bzzr://87070590124402b774273f0f3df8450bcf26f6b6fbca17cc2fa63f9b48f6d05a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.