Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
300,000,000 VNT
Holders
42
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
VentanaToken
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-08-14 */ /* file: VentanaToken.sol ver: 0.1.0 author: Darryl Morris date: 14-Aug-2017 email: o0ragman0o AT gmail.com (c) Darryl Morris 2017 A collated contract set for a token sale specific to the requirments of Veredictum's Ventana token product. This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See MIT Licence for further details. <https://opensource.org/licenses/MIT>. Release Notes ------------- 0.1.0 * Release version * updated owner, fundWallet, USD_PER_ETH, and START_DATE to final values in VentanaTokenConfig */ pragma solidity ^0.4.13; /*-----------------------------------------------------------------------------\ Ventana token sale configuration \*----------------------------------------------------------------------------*/ // Contains token sale parameters contract VentanaTokenConfig { // ERC20 trade name and symbol string public name = "Ventana"; string public symbol = "VNT"; // Owner has power to abort, discount addresses, sweep successful funds, // change owner, sweep alien tokens. address public owner = 0xF4b087Ad256ABC5BE11E0433B15Ed012c8AEC8B4; // veredictumPrimary address checksummed // Fund wallet should also be audited prior to deployment // NOTE: Must be checksummed address! address public fundWallet = 0xd6514387236595e080B97c8ead1cBF12f9a6Ab65; // multiSig address checksummed // Tokens awarded per USD contributed uint public constant TOKENS_PER_USD = 3; // Ether market price in USD uint public constant USD_PER_ETH = 258; // calculated from 60 day moving average as at 14th August 2017 // Minimum and maximum target in USD uint public constant MIN_USD_FUND = 2000000; // $2m uint public constant MAX_USD_FUND = 20000000; // $20m // Non-KYC contribution limit in USD uint public constant KYC_USD_LMT = 10000; // There will be exactly 300,000,000 tokens regardless of number sold // Unsold tokens are put into the Strategic Growth token pool uint public constant MAX_TOKENS = 300000000; // Funding begins on 14th August 2017 // `+ new Date('19:00 14 August 2017')/1000` uint public constant START_DATE = 1502701200; // Mon Aug 14 2017 19:00:00 GMT+1000 (AEST) // Period for fundraising uint public constant FUNDING_PERIOD = 28 days; } library SafeMath { // a add to b function add(uint a, uint b) internal returns (uint c) { c = a + b; assert(c >= a); } // a subtract b function sub(uint a, uint b) internal returns (uint c) { c = a - b; assert(c <= a); } // a multiplied by b function mul(uint a, uint b) internal returns (uint c) { c = a * b; assert(a == 0 || c / a == b); } // a divided by b function div(uint a, uint b) internal returns (uint c) { c = a / b; // No assert required as no overflows are posible. } } contract ReentryProtected { // The reentry protection state mutex. bool __reMutex; // Sets and resets mutex in order to block functin reentry modifier preventReentry() { require(!__reMutex); __reMutex = true; _; delete __reMutex; } // Blocks function entry if mutex is set modifier noReentry() { require(!__reMutex); _; } } contract ERC20Token { using SafeMath for uint; /* Constants */ // none /* State variable */ /// @return The Total supply of tokens uint public totalSupply; /// @return Token symbol string public symbol; // Token ownership mapping mapping (address => uint) balances; // Allowances mapping mapping (address => mapping (address => uint)) allowed; /* Events */ // Triggered when tokens are transferred. event Transfer( address indexed _from, address indexed _to, uint256 _amount); // Triggered whenever approve(address _spender, uint256 _amount) is called. event Approval( address indexed _owner, address indexed _spender, uint256 _amount); /* Modifiers */ // none /* Functions */ // Using an explicit getter allows for function overloading function balanceOf(address _addr) public constant returns (uint) { return balances[_addr]; } // Using an explicit getter allows for function overloading function allowance(address _owner, address _spender) public constant returns (uint) { return allowed[_owner][_spender]; } // Send _value amount of tokens to address _to function transfer(address _to, uint256 _amount) public returns (bool) { return xfer(msg.sender, _to, _amount); } // Send _value amount of tokens from address _from to address _to function transferFrom(address _from, address _to, uint256 _amount) public returns (bool) { require(_amount <= allowed[_from][msg.sender]); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_amount); return xfer(_from, _to, _amount); } // Process a transfer internally. function xfer(address _from, address _to, uint _amount) internal returns (bool) { require(_amount <= balances[_from]); Transfer(_from, _to, _amount); // avoid wasting gas on 0 token transfers if(_amount == 0) return true; balances[_from] = balances[_from].sub(_amount); balances[_to] = balances[_to].add(_amount); return true; } // Approves a third-party spender function approve(address _spender, uint256 _amount) public returns (bool) { allowed[msg.sender][_spender] = _amount; Approval(msg.sender, _spender, _amount); return true; } } /*-----------------------------------------------------------------------------\ ## Conditional Entry Table Functions must throw on F conditions Conditional Entry Table (functions must throw on F conditions) renetry prevention on all public mutating functions Reentry mutex set in moveFundsToWallet(), refund() |function |<START_DATE|<END_DATE |fundFailed |fundSucceeded|icoSucceeded |------------------------|:---------:|:--------:|:----------:|:-----------:|:---------:| |() |KYC |T |F |T |F | |abort() |T |T |T |T |F | |proxyPurchase() |KYC |T |F |T |F | |addKycAddress() |T |T |F |T |T | |finaliseICO() |F |F |F |T |T | |refund() |F |F |T |F |F | |transfer() |F |F |F |F |T | |transferFrom() |F |F |F |F |T | |approve() |F |F |F |F |T | |changeOwner() |T |T |T |T |T | |acceptOwnership() |T |T |T |T |T | |changeVeredictum() |T |T |T |T |T | |destroy() |F |F |!__abortFuse|F |F | |transferAnyERC20Tokens()|T |T |T |T |T | \*----------------------------------------------------------------------------*/ contract VentanaTokenAbstract { // TODO comment events event KYCAddress(address indexed _addr, bool indexed _kyc); event Refunded(address indexed _addr, uint indexed _value); event ChangedOwner(address indexed _from, address indexed _to); event ChangeOwnerTo(address indexed _to); event FundsTransferred(address indexed _wallet, uint indexed _value); // This fuse blows upon calling abort() which forces a fail state bool public __abortFuse = true; // Set to true after the fund is swept to the fund wallet, allows token // transfers and prevents abort() bool public icoSuccessful; // Token conversion factors are calculated with decimal places at parity with ether uint8 public constant decimals = 18; // An address authorised to take ownership address public newOwner; // The Veredictum smart contract address address public veredictum; // Total ether raised during funding uint public etherRaised; // Preauthorized tranch discount addresses // holder => discount mapping (address => bool) public kycAddresses; // Record of ether paid per address mapping (address => uint) public etherContributed; // Return `true` if MIN_FUNDS were raised function fundSucceeded() public constant returns (bool); // Return `true` if MIN_FUNDS were not raised before END_DATE function fundFailed() public constant returns (bool); // Returns USD raised for set ETH/USD rate function usdRaised() public constant returns (uint); // Returns an amount in eth equivilent to USD at the set rate function usdToEth(uint) public constant returns(uint); // Returns the USD value of ether at the set USD/ETH rate function ethToUsd(uint _wei) public constant returns (uint); // Returns token/ether conversion given ether value and address. function ethToTokens(uint _eth) public constant returns (uint); // Processes a token purchase for a given address function proxyPurchase(address _addr) payable returns (bool); // Owner can move funds of successful fund to fundWallet function finaliseICO() public returns (bool); // Registers a discounted address function addKycAddress(address _addr, bool _kyc) public returns (bool); // Refund on failed or aborted sale function refund(address _addr) public returns (bool); // To cancel token sale prior to START_DATE function abort() public returns (bool); // Change the Veredictum backend contract address function changeVeredictum(address _addr) public returns (bool); // For owner to salvage tokens sent to contract function transferAnyERC20Token(address tokenAddress, uint amount) returns (bool); } /*-----------------------------------------------------------------------------\ Ventana token implimentation \*----------------------------------------------------------------------------*/ contract VentanaToken is ReentryProtected, ERC20Token, VentanaTokenAbstract, VentanaTokenConfig { using SafeMath for uint; // // Constants // // USD to ether conversion factors calculated from `VentanaTokenConfig` constants uint public constant TOKENS_PER_ETH = TOKENS_PER_USD * USD_PER_ETH; uint public constant MIN_ETH_FUND = 1 ether * MIN_USD_FUND / USD_PER_ETH; uint public constant MAX_ETH_FUND = 1 ether * MAX_USD_FUND / USD_PER_ETH; uint public constant KYC_ETH_LMT = 1 ether * KYC_USD_LMT / USD_PER_ETH; // General funding opens LEAD_IN_PERIOD after deployment (timestamps can't be constant) uint public END_DATE = START_DATE + FUNDING_PERIOD; // // Modifiers // modifier onlyOwner { require(msg.sender == owner); _; } // // Functions // // Constructor function VentanaToken() { // ICO parameters are set in VentanaTSConfig // Invalid configuration catching here require(bytes(symbol).length > 0); require(bytes(name).length > 0); require(owner != 0x0); require(fundWallet != 0x0); require(TOKENS_PER_USD > 0); require(USD_PER_ETH > 0); require(MIN_USD_FUND > 0); require(MAX_USD_FUND > MIN_USD_FUND); require(START_DATE > 0); require(FUNDING_PERIOD > 0); // Setup and allocate token supply to 18 decimal places totalSupply = MAX_TOKENS * 1e18; balances[fundWallet] = totalSupply; Transfer(0x0, fundWallet, totalSupply); } // Default function function () payable { // Pass through to purchasing function. Will throw on failed or // successful ICO proxyPurchase(msg.sender); } // // Getters // // ICO fails if aborted or minimum funds are not raised by the end date function fundFailed() public constant returns (bool) { return !__abortFuse || (now > END_DATE && etherRaised < MIN_ETH_FUND); } // Funding succeeds if not aborted, minimum funds are raised before end date function fundSucceeded() public constant returns (bool) { return !fundFailed() && etherRaised >= MIN_ETH_FUND; } // Returns the USD value of ether at the set USD/ETH rate function ethToUsd(uint _wei) public constant returns (uint) { return USD_PER_ETH.mul(_wei).div(1 ether); } // Returns the ether value of USD at the set USD/ETH rate function usdToEth(uint _usd) public constant returns (uint) { return _usd.mul(1 ether).div(USD_PER_ETH); } // Returns the USD value of ether raised at the set USD/ETH rate function usdRaised() public constant returns (uint) { return ethToUsd(etherRaised); } // Returns the number of tokens for given amount of ether for an address function ethToTokens(uint _wei) public constant returns (uint) { uint usd = ethToUsd(_wei); // Percent bonus funding tiers for USD funding uint bonus = usd >= 2000000 ? 35 : usd >= 500000 ? 30 : usd >= 100000 ? 20 : usd >= 25000 ? 15 : usd >= 10000 ? 10 : usd >= 5000 ? 5 : 0; // using n.2 fixed point decimal for whole number percentage. return _wei.mul(TOKENS_PER_ETH).mul(bonus + 100).div(100); } // // ICO functions // // The fundraising can be aborted any time before funds are swept to the // fundWallet. // This will force a fail state and allow refunds to be collected. function abort() public noReentry onlyOwner returns (bool) { require(!icoSuccessful); delete __abortFuse; return true; } // General addresses can purchase tokens during funding function proxyPurchase(address _addr) payable noReentry returns (bool) { require(!fundFailed()); require(!icoSuccessful); require(now <= END_DATE); require(msg.value > 0); // Non-KYC'ed funders can only contribute up to $10000 after prefund period if(!kycAddresses[_addr]) { require(now >= START_DATE); require((etherContributed[_addr].add(msg.value)) <= KYC_ETH_LMT); } // Get ether to token conversion uint tokens = ethToTokens(msg.value); // transfer tokens from fund wallet xfer(fundWallet, _addr, tokens); // Update holder payments etherContributed[_addr] = etherContributed[_addr].add(msg.value); // Update funds raised etherRaised = etherRaised.add(msg.value); // Bail if this pushes the fund over the USD cap or Token cap require(etherRaised <= MAX_ETH_FUND); return true; } // Owner can KYC (or revoke) addresses until close of funding function addKycAddress(address _addr, bool _kyc) public noReentry onlyOwner returns (bool) { require(!fundFailed()); kycAddresses[_addr] = _kyc; KYCAddress(_addr, _kyc); return true; } // Owner can sweep a successful funding to the fundWallet // Contract can be aborted up until this action. function finaliseICO() public onlyOwner preventReentry() returns (bool) { require(fundSucceeded()); icoSuccessful = true; FundsTransferred(fundWallet, this.balance); fundWallet.transfer(this.balance); return true; } // Refunds can be claimed from a failed ICO function refund(address _addr) public preventReentry() returns (bool) { require(fundFailed()); uint value = etherContributed[_addr]; // Transfer tokens back to origin // (Not really necessary but looking for graceful exit) xfer(_addr, fundWallet, balances[_addr]); // garbage collect delete etherContributed[_addr]; delete kycAddresses[_addr]; Refunded(_addr, value); if (value > 0) { _addr.transfer(value); } return true; } // // ERC20 overloaded functions // function transfer(address _to, uint _amount) public preventReentry returns (bool) { // ICO must be successful require(icoSuccessful); super.transfer(_to, _amount); if (_to == veredictum) // Notify the Veredictum contract it has been sent tokens require(Notify(veredictum).notify(msg.sender, _amount)); return true; } function transferFrom(address _from, address _to, uint _amount) public preventReentry returns (bool) { // ICO must be successful require(icoSuccessful); super.transferFrom(_from, _to, _amount); if (_to == veredictum) // Notify the Veredictum contract it has been sent tokens require(Notify(veredictum).notify(msg.sender, _amount)); return true; } function approve(address _spender, uint _amount) public noReentry returns (bool) { // ICO must be successful require(icoSuccessful); super.approve(_spender, _amount); return true; } // // Contract managment functions // // To initiate an ownership change function changeOwner(address _newOwner) public noReentry onlyOwner returns (bool) { ChangeOwnerTo(_newOwner); newOwner = _newOwner; return true; } // To accept ownership. Required to prove new address can call the contract. function acceptOwnership() public noReentry returns (bool) { require(msg.sender == newOwner); ChangedOwner(owner, newOwner); owner = newOwner; return true; } // Change the address of the Veredictum contract address. The contract // must impliment the `Notify` interface. function changeVeredictum(address _addr) public noReentry onlyOwner returns (bool) { veredictum = _addr; return true; } // The contract can be selfdestructed after abort and ether balance is 0. function destroy() public noReentry onlyOwner { require(!__abortFuse); require(this.balance == 0); selfdestruct(owner); } // Owner can salvage ERC20 tokens that may have been sent to the account function transferAnyERC20Token(address tokenAddress, uint amount) public onlyOwner preventReentry returns (bool) { require(ERC20Token(tokenAddress).transfer(owner, amount)); return true; } } interface Notify { event Notified(address indexed _from, uint indexed _amount); function notify(address _from, uint _amount) public returns (bool); } contract VeredictumTest is Notify { address public vnt; function setVnt(address _addr) { vnt = _addr; } function notify(address _from, uint _amount) public returns (bool) { require(msg.sender == vnt); Notified(_from, _amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"veredictum","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"abort","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"START_DATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finaliseICO","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_ETH_FUND","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_kyc","type":"bool"}],"name":"addKycAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"proxyPurchase","outputs":[{"name":"","type":"bool"}],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"END_DATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"changeVeredictum","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"fundWallet","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"fundSucceeded","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"fundFailed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"__abortFuse","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MIN_ETH_FUND","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_USD_FUND","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"destroy","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"icoSuccessful","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"kycAddresses","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_wei","type":"uint256"}],"name":"ethToUsd","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"KYC_ETH_LMT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_wei","type":"uint256"}],"name":"ethToTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"etherContributed","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MIN_USD_FUND","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"USD_PER_ETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_PER_ETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_usd","type":"uint256"}],"name":"usdToEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"etherRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"KYC_USD_LMT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_PER_USD","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"usdRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_TOKENS","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"FUNDING_PERIOD","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"refund","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_addr","type":"address"},{"indexed":true,"name":"_kyc","type":"bool"}],"name":"KYCAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_addr","type":"address"},{"indexed":true,"name":"_value","type":"uint256"}],"name":"Refunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"ChangedOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"}],"name":"ChangeOwnerTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_wallet","type":"address"},{"indexed":true,"name":"_value","type":"uint256"}],"name":"FundsTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
606060409081526005805460ff191660011790558051908101604052600781527f56656e74616e61000000000000000000000000000000000000000000000000006020820152600a9080516200005a929160200190620001f7565b5060408051908101604052600381527f564e5400000000000000000000000000000000000000000000000000000000006020820152600b908051620000a4929160200190620001f7565b50600c8054600160a060020a031990811673f4b087ad256abc5be11e0433b15ed012c8aec8b417909155600d805490911673d6514387236595e080b97c8ead1cbf12f9a6ab651790556359b65090600e5534156200010157600080fd5b5b600b54600060026000196101006001851615020190921691909104116200012857600080fd5b600a54600060026000196101006001851615020190921691909104116200014e57600080fd5b600c54600160a060020a031615156200016657600080fd5b600d54600160a060020a031615156200017e57600080fd5b5b5b5b5b5b5b6af8277896582678ac0000006001819055600d8054600160a060020a0390811660009081526003602052604080822085905592549091169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91905190815260200160405180910390a35b620002a1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023a57805160ff19168380011785556200026a565b828001600101855582156200026a579182015b828111156200026a5782518255916020019190600101906200024d565b5b50620002799291506200027d565b5090565b6200029e91905b8082111562000279576000815560010162000284565b5090565b90565b611b3f80620002b16000396000f3006060604052361561021f5763ffffffff60e060020a60003504166306fdde038114610232578063095ea7b3146102bd57806318160ddd146102f35780632267b2e31461031857806323b872dd14610347578063313ce5671461038357806335a063b4146103ac578063372c6533146103d357806339f95e63146103f857806343dbb2de1461041f5780634449307b146104445780634a5dddd21461047c578063545599ff146104a4578063636544be146104c9578063664a1ad6146104fc57806367de81e81461052b5780636e62de19146105525780636eabcd691461057957806370a08231146105a057806371140942146105d157806379099e15146105f657806379ba50971461061b57806383197ef014610642578063835fa3ac146106575780638bace2351461067e5780638da5cb5b146106b1578063946d1480146106e057806395d89b41146107085780639c70b89914610793578063a4c89322146107b8578063a6f9dae1146107e0578063a82776dd14610813578063a9059cbb14610844578063b4495b7d1461087a578063b94083731461089f578063bc6e6604146108c4578063bcecf667146108e9578063cd72ab6914610911578063d399354b14610936578063d4ee1d901461095b578063d5356b7d1461098a578063dc39d06d146109af578063dd62ed3e146109e5578063eadd94ec14610a1c578063f47c84c514610a41578063f90c3f2714610a66578063fa89401a14610a8b575b6102305b61022c33610abe565b505b565b005b341561023d57600080fd5b610245610c38565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102825780820151818401525b602001610269565b50505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102c857600080fd5b6102df600160a060020a0360043516602435610cd6565b604051901515815260200160405180910390f35b34156102fe57600080fd5b610306610d14565b60405190815260200160405180910390f35b341561032357600080fd5b61032b610d1a565b604051600160a060020a03909116815260200160405180910390f35b341561035257600080fd5b6102df600160a060020a0360043581169060243516604435610d29565b604051901515815260200160405180910390f35b341561038e57600080fd5b610396610e1b565b60405160ff909116815260200160405180910390f35b34156103b757600080fd5b6102df610e20565b604051901515815260200160405180910390f35b34156103de57600080fd5b610306610e74565b60405190815260200160405180910390f35b341561040357600080fd5b6102df610e7c565b604051901515815260200160405180910390f35b341561042a57600080fd5b610306610f62565b60405190815260200160405180910390f35b341561044f57600080fd5b6102df600160a060020a03600435166024351515610f76565b604051901515815260200160405180910390f35b6102df600160a060020a0360043516610abe565b604051901515815260200160405180910390f35b34156104af57600080fd5b610306611016565b60405190815260200160405180910390f35b34156104d457600080fd5b6102df600160a060020a036004351661101c565b604051901515815260200160405180910390f35b341561050757600080fd5b61032b61107b565b604051600160a060020a03909116815260200160405180910390f35b341561053657600080fd5b6102df61108a565b604051901515815260200160405180910390f35b341561055d57600080fd5b6102df6110b9565b604051901515815260200160405180910390f35b341561058457600080fd5b6102df6110f2565b604051901515815260200160405180910390f35b34156105ab57600080fd5b610306600160a060020a03600435166110fb565b60405190815260200160405180910390f35b34156105dc57600080fd5b61030661111a565b60405190815260200160405180910390f35b341561060157600080fd5b610306611132565b60405190815260200160405180910390f35b341561062657600080fd5b6102df61113a565b604051901515815260200160405180910390f35b341561064d57600080fd5b6102306111ef565b005b341561066257600080fd5b6102df611251565b604051901515815260200160405180910390f35b341561068957600080fd5b6102df600160a060020a036004351661125f565b604051901515815260200160405180910390f35b34156106bc57600080fd5b61032b611274565b604051600160a060020a03909116815260200160405180910390f35b34156106eb57600080fd5b610306600435611283565b60405190815260200160405180910390f35b341561071357600080fd5b6102456112b7565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102825780820151818401525b602001610269565b50505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561079e57600080fd5b610306611355565b60405190815260200160405180910390f35b34156107c357600080fd5b61030660043561136c565b60405190815260200160405180910390f35b34156107eb57600080fd5b6102df600160a060020a0360043516611431565b604051901515815260200160405180910390f35b341561081e57600080fd5b610306600160a060020a03600435166114cd565b60405190815260200160405180910390f35b341561084f57600080fd5b6102df600160a060020a03600435166024356114df565b604051901515815260200160405180910390f35b341561088557600080fd5b6103066115cf565b60405190815260200160405180910390f35b34156108aa57600080fd5b6103066115d6565b60405190815260200160405180910390f35b34156108cf57600080fd5b6103066115dc565b60405190815260200160405180910390f35b34156108f457600080fd5b6103066004356115e2565b60405190815260200160405180910390f35b341561091c57600080fd5b610306611616565b60405190815260200160405180910390f35b341561094157600080fd5b61030661161c565b60405190815260200160405180910390f35b341561096657600080fd5b61032b611622565b604051600160a060020a03909116815260200160405180910390f35b341561099557600080fd5b610306611637565b60405190815260200160405180910390f35b34156109ba57600080fd5b6102df600160a060020a036004351660243561163c565b604051901515815260200160405180910390f35b34156109f057600080fd5b610306600160a060020a0360043581169060243516611718565b60405190815260200160405180910390f35b3415610a2757600080fd5b610306611745565b60405190815260200160405180910390f35b3415610a4c57600080fd5b610306611758565b60405190815260200160405180910390f35b3415610a7157600080fd5b610306611760565b60405190815260200160405180910390f35b3415610a9657600080fd5b6102df600160a060020a0360043516611767565b604051901515815260200160405180910390f35b60008054819060ff1615610ad157600080fd5b610ad96110b9565b15610ae357600080fd5b600554610100900460ff1615610af857600080fd5b600e54421115610b0757600080fd5b60003411610b1457600080fd5b600160a060020a03831660009081526008602052604090205460ff161515610b8e576359916690421015610b4757600080fd5b61010269021e19e0c9bab24000005b600160a060020a03851660009081526009602052604090205491900490610b83903463ffffffff61188316565b1115610b8e57600080fd5b5b610b983461136c565b600d54909150610bb290600160a060020a03168483611897565b50600160a060020a038316600090815260096020526040902054610bdc903463ffffffff61188316565b600160a060020a038416600090815260096020526040902055600754610c08903463ffffffff61188316565b6007556101026a108b2a2c280290940000005b0460075411151515610c2c57600080fd5b600191505b5b50919050565b600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081565b6000805460ff1615610ce757600080fd5b600554610100900460ff161515610cfd57600080fd5b610d078383611994565b50600190505b5b92915050565b60015481565b600654600160a060020a031681565b6000805460ff1615610d3a57600080fd5b6000805460ff19166001179055600554610100900460ff161515610d5d57600080fd5b610d68848484611a01565b50600654600160a060020a0384811691161415610e0457600654600160a060020a03166325fda176338460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610dde57600080fd5b6102c65a03f11515610def57600080fd5b505050604051805190501515610e0457600080fd5b5b5060015b6000805460ff191690555b9392505050565b601281565b6000805460ff1615610e3157600080fd5b600c5433600160a060020a03908116911614610e4c57600080fd5b600554610100900460ff1615610e6157600080fd5b506005805460ff1916905560015b5b5b90565b635991669081565b600c5460009033600160a060020a03908116911614610e9a57600080fd5b60005460ff1615610eaa57600080fd5b6000805460ff19166001179055610ebf61108a565b1515610eca57600080fd5b6005805461ff001916610100179055600d54600160a060020a033081163191167f8c9a4f13b67cb64d7c6aa1ae0c9bf07694af521a28b93e7060020810ab4bc59f60405160405180910390a3600d54600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610f4f57600080fd5b5060015b6000805460ff191690555b5b90565b6101026a108b2a2c280290940000005b0481565b6000805460ff1615610f8757600080fd5b600c5433600160a060020a03908116911614610fa257600080fd5b610faa6110b9565b15610fb457600080fd5b600160a060020a03831660008181526008602052604090819020805460ff191685151590811790915591907fccc39d7dc7461a69d6b86c0867c4cc1879b70e7239ed223f1ae0eec7036bfdad905160405180910390a35060015b5b5b92915050565b600e5481565b6000805460ff161561102d57600080fd5b600c5433600160a060020a0390811691161461104857600080fd5b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03831617905560015b5b5b919050565b600d54600160a060020a031681565b60006110946110b9565b1580156110b357506101026a01a784379d99db420000005b0460075410155b90505b90565b60055460009060ff1615806110b35750600e54421180156110b357506101026a01a784379d99db420000005b04600754105b5b90505b90565b60055460ff1681565b600160a060020a0381166000908152600360205260409020545b919050565b6101026a01a784379d99db42000000610f72565b0481565b6301312d0081565b6000805460ff161561114b57600080fd5b60055433600160a060020a0390811662010000909204161461116c57600080fd5b600554600c54600160a060020a0362010000909204821691167f2748503f8f31d8071821d1d5144384ba6a465036cda17fa1629a8a2509ccee0e60405160405180910390a350600554600c805462010000909204600160a060020a031673ffffffffffffffffffffffffffffffffffffffff1990921691909117905560015b5b90565b60005460ff16156111ff57600080fd5b600c5433600160a060020a0390811691161461121a57600080fd5b60055460ff161561122a57600080fd5b600160a060020a033016311561123f57600080fd5b600c54600160a060020a0316ff5b5b5b565b600554610100900460ff1681565b60086020526000908152604090205460ff1681565b600c54600160a060020a031681565b60006112af670de0b6b3a76400006112a36101028563ffffffff611aa916565b9063ffffffff611ad216565b90505b919050565b600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081565b61010269021e19e0c9bab2400000610f72565b0481565b600080600061137a84611283565b9150621e84808210156113ea576207a1208210156113e257620186a08210156113da576161a88210156113d2576127108210156113ca576113888210156113c25760006113c5565b60055b6113cd565b600a5b6113d5565b600f5b6113dd565b60145b6113e5565b601e5b6113ed565b60235b60ff16905061142760646112a381840161140f8861030663ffffffff611aa916565b9063ffffffff611aa916565b9063ffffffff611ad216565b92505b5050919050565b6000805460ff161561144257600080fd5b600c5433600160a060020a0390811691161461145d57600080fd5b81600160a060020a03167fbc48fdaddfcfb54d36a0ac4d7e52f46cdf854784b9c0978d385a35e8383262d460405160405180910390a2506005805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a0384160217905560015b5b5b919050565b60096020526000908152604090205481565b6000805460ff16156114f057600080fd5b6000805460ff19166001179055600554610100900460ff16151561151357600080fd5b61151d8383611ae9565b50600654600160a060020a03848116911614156115b957600654600160a060020a03166325fda176338460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561159357600080fd5b6102c65a03f115156115a457600080fd5b5050506040518051905015156115b957600080fd5b5b5060015b6000805460ff191690555b92915050565b621e848081565b61010281565b61030681565b60006112af6101026112a384670de0b6b3a764000063ffffffff611aa916565b9063ffffffff611ad216565b90505b919050565b60075481565b61271081565b600554620100009004600160a060020a031681565b600381565b600c5460009033600160a060020a0390811691161461165a57600080fd5b60005460ff161561166a57600080fd5b6000805460ff19166001178155600c54600160a060020a038086169263a9059cbb929091169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561159357600080fd5b6102c65a03f115156115a457600080fd5b5050506040518051905015156115b957600080fd5b5060015b6000805460ff191690555b5b92915050565b600160a060020a038083166000908152600460209081526040808320938516835292905220545b92915050565b60006110b3600754611283565b90505b90565b6311e1a30081565b6224ea0081565b60008054819060ff161561177a57600080fd5b6000805460ff1916600117905561178f6110b9565b151561179a57600080fd5b50600160a060020a03808316600090815260096020908152604080832054600d54600390935292205491926117d492869290911690611897565b50600160a060020a0383166000818152600960209081526040808320839055600890915290819020805460ff191690558291907fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651905160405180910390a3600081111561186c57600160a060020a03831681156108fc0282604051600060405180830381858888f19350505050151561186c57600080fd5b5b600191505b6000805460ff191690555b50919050565b81810182811015610d0d57fe5b5b92915050565b600160a060020a0383166000908152600360205260408120548211156118bc57600080fd5b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a381151561191257506001610e14565b600160a060020a03841660009081526003602052604090205461193b908363ffffffff611aff16565b600160a060020a038086166000908152600360205260408082209390935590851681522054611970908363ffffffff61188316565b600160a060020a0384166000908152600360205260409020555060015b9392505050565b600160a060020a03338116600081815260046020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600160a060020a03808416600090815260046020908152604080832033909416835292905290812054821115611a3657600080fd5b600160a060020a0380851660009081526004602090815260408083203390941683529290522054611a6d908363ffffffff611aff16565b600160a060020a0380861660009081526004602090815260408083203390941683529290522055611a9f848484611897565b90505b9392505050565b818102821580611ac35750818382811515611ac057fe5b04145b1515610d0d57fe5b5b92915050565b60008183811515611adf57fe5b0490505b92915050565b6000611af6338484611897565b90505b92915050565b80820382811115610d0d57fe5b5b929150505600a165627a7a7230582047ec3a879e678ba748a9e0a0ca93b62f73bf9c4fa1918fc4c95492a838cd3e9c0029
Deployed Bytecode
0x6060604052361561021f5763ffffffff60e060020a60003504166306fdde038114610232578063095ea7b3146102bd57806318160ddd146102f35780632267b2e31461031857806323b872dd14610347578063313ce5671461038357806335a063b4146103ac578063372c6533146103d357806339f95e63146103f857806343dbb2de1461041f5780634449307b146104445780634a5dddd21461047c578063545599ff146104a4578063636544be146104c9578063664a1ad6146104fc57806367de81e81461052b5780636e62de19146105525780636eabcd691461057957806370a08231146105a057806371140942146105d157806379099e15146105f657806379ba50971461061b57806383197ef014610642578063835fa3ac146106575780638bace2351461067e5780638da5cb5b146106b1578063946d1480146106e057806395d89b41146107085780639c70b89914610793578063a4c89322146107b8578063a6f9dae1146107e0578063a82776dd14610813578063a9059cbb14610844578063b4495b7d1461087a578063b94083731461089f578063bc6e6604146108c4578063bcecf667146108e9578063cd72ab6914610911578063d399354b14610936578063d4ee1d901461095b578063d5356b7d1461098a578063dc39d06d146109af578063dd62ed3e146109e5578063eadd94ec14610a1c578063f47c84c514610a41578063f90c3f2714610a66578063fa89401a14610a8b575b6102305b61022c33610abe565b505b565b005b341561023d57600080fd5b610245610c38565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102825780820151818401525b602001610269565b50505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102c857600080fd5b6102df600160a060020a0360043516602435610cd6565b604051901515815260200160405180910390f35b34156102fe57600080fd5b610306610d14565b60405190815260200160405180910390f35b341561032357600080fd5b61032b610d1a565b604051600160a060020a03909116815260200160405180910390f35b341561035257600080fd5b6102df600160a060020a0360043581169060243516604435610d29565b604051901515815260200160405180910390f35b341561038e57600080fd5b610396610e1b565b60405160ff909116815260200160405180910390f35b34156103b757600080fd5b6102df610e20565b604051901515815260200160405180910390f35b34156103de57600080fd5b610306610e74565b60405190815260200160405180910390f35b341561040357600080fd5b6102df610e7c565b604051901515815260200160405180910390f35b341561042a57600080fd5b610306610f62565b60405190815260200160405180910390f35b341561044f57600080fd5b6102df600160a060020a03600435166024351515610f76565b604051901515815260200160405180910390f35b6102df600160a060020a0360043516610abe565b604051901515815260200160405180910390f35b34156104af57600080fd5b610306611016565b60405190815260200160405180910390f35b34156104d457600080fd5b6102df600160a060020a036004351661101c565b604051901515815260200160405180910390f35b341561050757600080fd5b61032b61107b565b604051600160a060020a03909116815260200160405180910390f35b341561053657600080fd5b6102df61108a565b604051901515815260200160405180910390f35b341561055d57600080fd5b6102df6110b9565b604051901515815260200160405180910390f35b341561058457600080fd5b6102df6110f2565b604051901515815260200160405180910390f35b34156105ab57600080fd5b610306600160a060020a03600435166110fb565b60405190815260200160405180910390f35b34156105dc57600080fd5b61030661111a565b60405190815260200160405180910390f35b341561060157600080fd5b610306611132565b60405190815260200160405180910390f35b341561062657600080fd5b6102df61113a565b604051901515815260200160405180910390f35b341561064d57600080fd5b6102306111ef565b005b341561066257600080fd5b6102df611251565b604051901515815260200160405180910390f35b341561068957600080fd5b6102df600160a060020a036004351661125f565b604051901515815260200160405180910390f35b34156106bc57600080fd5b61032b611274565b604051600160a060020a03909116815260200160405180910390f35b34156106eb57600080fd5b610306600435611283565b60405190815260200160405180910390f35b341561071357600080fd5b6102456112b7565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102825780820151818401525b602001610269565b50505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561079e57600080fd5b610306611355565b60405190815260200160405180910390f35b34156107c357600080fd5b61030660043561136c565b60405190815260200160405180910390f35b34156107eb57600080fd5b6102df600160a060020a0360043516611431565b604051901515815260200160405180910390f35b341561081e57600080fd5b610306600160a060020a03600435166114cd565b60405190815260200160405180910390f35b341561084f57600080fd5b6102df600160a060020a03600435166024356114df565b604051901515815260200160405180910390f35b341561088557600080fd5b6103066115cf565b60405190815260200160405180910390f35b34156108aa57600080fd5b6103066115d6565b60405190815260200160405180910390f35b34156108cf57600080fd5b6103066115dc565b60405190815260200160405180910390f35b34156108f457600080fd5b6103066004356115e2565b60405190815260200160405180910390f35b341561091c57600080fd5b610306611616565b60405190815260200160405180910390f35b341561094157600080fd5b61030661161c565b60405190815260200160405180910390f35b341561096657600080fd5b61032b611622565b604051600160a060020a03909116815260200160405180910390f35b341561099557600080fd5b610306611637565b60405190815260200160405180910390f35b34156109ba57600080fd5b6102df600160a060020a036004351660243561163c565b604051901515815260200160405180910390f35b34156109f057600080fd5b610306600160a060020a0360043581169060243516611718565b60405190815260200160405180910390f35b3415610a2757600080fd5b610306611745565b60405190815260200160405180910390f35b3415610a4c57600080fd5b610306611758565b60405190815260200160405180910390f35b3415610a7157600080fd5b610306611760565b60405190815260200160405180910390f35b3415610a9657600080fd5b6102df600160a060020a0360043516611767565b604051901515815260200160405180910390f35b60008054819060ff1615610ad157600080fd5b610ad96110b9565b15610ae357600080fd5b600554610100900460ff1615610af857600080fd5b600e54421115610b0757600080fd5b60003411610b1457600080fd5b600160a060020a03831660009081526008602052604090205460ff161515610b8e576359916690421015610b4757600080fd5b61010269021e19e0c9bab24000005b600160a060020a03851660009081526009602052604090205491900490610b83903463ffffffff61188316565b1115610b8e57600080fd5b5b610b983461136c565b600d54909150610bb290600160a060020a03168483611897565b50600160a060020a038316600090815260096020526040902054610bdc903463ffffffff61188316565b600160a060020a038416600090815260096020526040902055600754610c08903463ffffffff61188316565b6007556101026a108b2a2c280290940000005b0460075411151515610c2c57600080fd5b600191505b5b50919050565b600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081565b6000805460ff1615610ce757600080fd5b600554610100900460ff161515610cfd57600080fd5b610d078383611994565b50600190505b5b92915050565b60015481565b600654600160a060020a031681565b6000805460ff1615610d3a57600080fd5b6000805460ff19166001179055600554610100900460ff161515610d5d57600080fd5b610d68848484611a01565b50600654600160a060020a0384811691161415610e0457600654600160a060020a03166325fda176338460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610dde57600080fd5b6102c65a03f11515610def57600080fd5b505050604051805190501515610e0457600080fd5b5b5060015b6000805460ff191690555b9392505050565b601281565b6000805460ff1615610e3157600080fd5b600c5433600160a060020a03908116911614610e4c57600080fd5b600554610100900460ff1615610e6157600080fd5b506005805460ff1916905560015b5b5b90565b635991669081565b600c5460009033600160a060020a03908116911614610e9a57600080fd5b60005460ff1615610eaa57600080fd5b6000805460ff19166001179055610ebf61108a565b1515610eca57600080fd5b6005805461ff001916610100179055600d54600160a060020a033081163191167f8c9a4f13b67cb64d7c6aa1ae0c9bf07694af521a28b93e7060020810ab4bc59f60405160405180910390a3600d54600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610f4f57600080fd5b5060015b6000805460ff191690555b5b90565b6101026a108b2a2c280290940000005b0481565b6000805460ff1615610f8757600080fd5b600c5433600160a060020a03908116911614610fa257600080fd5b610faa6110b9565b15610fb457600080fd5b600160a060020a03831660008181526008602052604090819020805460ff191685151590811790915591907fccc39d7dc7461a69d6b86c0867c4cc1879b70e7239ed223f1ae0eec7036bfdad905160405180910390a35060015b5b5b92915050565b600e5481565b6000805460ff161561102d57600080fd5b600c5433600160a060020a0390811691161461104857600080fd5b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03831617905560015b5b5b919050565b600d54600160a060020a031681565b60006110946110b9565b1580156110b357506101026a01a784379d99db420000005b0460075410155b90505b90565b60055460009060ff1615806110b35750600e54421180156110b357506101026a01a784379d99db420000005b04600754105b5b90505b90565b60055460ff1681565b600160a060020a0381166000908152600360205260409020545b919050565b6101026a01a784379d99db42000000610f72565b0481565b6301312d0081565b6000805460ff161561114b57600080fd5b60055433600160a060020a0390811662010000909204161461116c57600080fd5b600554600c54600160a060020a0362010000909204821691167f2748503f8f31d8071821d1d5144384ba6a465036cda17fa1629a8a2509ccee0e60405160405180910390a350600554600c805462010000909204600160a060020a031673ffffffffffffffffffffffffffffffffffffffff1990921691909117905560015b5b90565b60005460ff16156111ff57600080fd5b600c5433600160a060020a0390811691161461121a57600080fd5b60055460ff161561122a57600080fd5b600160a060020a033016311561123f57600080fd5b600c54600160a060020a0316ff5b5b5b565b600554610100900460ff1681565b60086020526000908152604090205460ff1681565b600c54600160a060020a031681565b60006112af670de0b6b3a76400006112a36101028563ffffffff611aa916565b9063ffffffff611ad216565b90505b919050565b600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081565b61010269021e19e0c9bab2400000610f72565b0481565b600080600061137a84611283565b9150621e84808210156113ea576207a1208210156113e257620186a08210156113da576161a88210156113d2576127108210156113ca576113888210156113c25760006113c5565b60055b6113cd565b600a5b6113d5565b600f5b6113dd565b60145b6113e5565b601e5b6113ed565b60235b60ff16905061142760646112a381840161140f8861030663ffffffff611aa916565b9063ffffffff611aa916565b9063ffffffff611ad216565b92505b5050919050565b6000805460ff161561144257600080fd5b600c5433600160a060020a0390811691161461145d57600080fd5b81600160a060020a03167fbc48fdaddfcfb54d36a0ac4d7e52f46cdf854784b9c0978d385a35e8383262d460405160405180910390a2506005805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a0384160217905560015b5b5b919050565b60096020526000908152604090205481565b6000805460ff16156114f057600080fd5b6000805460ff19166001179055600554610100900460ff16151561151357600080fd5b61151d8383611ae9565b50600654600160a060020a03848116911614156115b957600654600160a060020a03166325fda176338460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561159357600080fd5b6102c65a03f115156115a457600080fd5b5050506040518051905015156115b957600080fd5b5b5060015b6000805460ff191690555b92915050565b621e848081565b61010281565b61030681565b60006112af6101026112a384670de0b6b3a764000063ffffffff611aa916565b9063ffffffff611ad216565b90505b919050565b60075481565b61271081565b600554620100009004600160a060020a031681565b600381565b600c5460009033600160a060020a0390811691161461165a57600080fd5b60005460ff161561166a57600080fd5b6000805460ff19166001178155600c54600160a060020a038086169263a9059cbb929091169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561159357600080fd5b6102c65a03f115156115a457600080fd5b5050506040518051905015156115b957600080fd5b5060015b6000805460ff191690555b5b92915050565b600160a060020a038083166000908152600460209081526040808320938516835292905220545b92915050565b60006110b3600754611283565b90505b90565b6311e1a30081565b6224ea0081565b60008054819060ff161561177a57600080fd5b6000805460ff1916600117905561178f6110b9565b151561179a57600080fd5b50600160a060020a03808316600090815260096020908152604080832054600d54600390935292205491926117d492869290911690611897565b50600160a060020a0383166000818152600960209081526040808320839055600890915290819020805460ff191690558291907fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651905160405180910390a3600081111561186c57600160a060020a03831681156108fc0282604051600060405180830381858888f19350505050151561186c57600080fd5b5b600191505b6000805460ff191690555b50919050565b81810182811015610d0d57fe5b5b92915050565b600160a060020a0383166000908152600360205260408120548211156118bc57600080fd5b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a381151561191257506001610e14565b600160a060020a03841660009081526003602052604090205461193b908363ffffffff611aff16565b600160a060020a038086166000908152600360205260408082209390935590851681522054611970908363ffffffff61188316565b600160a060020a0384166000908152600360205260409020555060015b9392505050565b600160a060020a03338116600081815260046020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600160a060020a03808416600090815260046020908152604080832033909416835292905290812054821115611a3657600080fd5b600160a060020a0380851660009081526004602090815260408083203390941683529290522054611a6d908363ffffffff611aff16565b600160a060020a0380861660009081526004602090815260408083203390941683529290522055611a9f848484611897565b90505b9392505050565b818102821580611ac35750818382811515611ac057fe5b04145b1515610d0d57fe5b5b92915050565b60008183811515611adf57fe5b0490505b92915050565b6000611af6338484611897565b90505b92915050565b80820382811115610d0d57fe5b5b929150505600a165627a7a7230582047ec3a879e678ba748a9e0a0ca93b62f73bf9c4fa1918fc4c95492a838cd3e9c0029
Swarm Source
bzzr://47ec3a879e678ba748a9e0a0ca93b62f73bf9c4fa1918fc4c95492a838cd3e9c
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.