More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 7,271 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 16559018 | 664 days ago | IN | 0 ETH | 0.00137951 | ||||
Transfer | 14882564 | 913 days ago | IN | 0 ETH | 0.00207275 | ||||
Transfer | 14490256 | 975 days ago | IN | 0 ETH | 0.00379091 | ||||
Transfer | 13946818 | 1059 days ago | IN | 0 ETH | 0.00976595 | ||||
Transfer | 12770756 | 1243 days ago | IN | 0 ETH | 0.00031998 | ||||
Transfer | 12770756 | 1243 days ago | IN | 0 ETH | 0.00047536 | ||||
Approve | 12046053 | 1355 days ago | IN | 0 ETH | 0.00855356 | ||||
Approve | 12046048 | 1355 days ago | IN | 0 ETH | 0.00819901 | ||||
Transfer | 11872336 | 1381 days ago | IN | 0 ETH | 0.00722277 | ||||
Transfer | 11594468 | 1424 days ago | IN | 0 ETH | 0.00466164 | ||||
Approve | 11474928 | 1442 days ago | IN | 0 ETH | 0.00243754 | ||||
Approve | 11308257 | 1468 days ago | IN | 0 ETH | 0.00124093 | ||||
Approve | 11288406 | 1471 days ago | IN | 0 ETH | 0.00075342 | ||||
Transfer | 11213545 | 1483 days ago | IN | 0 ETH | 0.0008481 | ||||
Transfer | 10887022 | 1533 days ago | IN | 0 ETH | 0.01151927 | ||||
Transfer | 10741932 | 1555 days ago | IN | 0 ETH | 0.00319965 | ||||
Transfer | 10730830 | 1557 days ago | IN | 0 ETH | 0.01071022 | ||||
Transfer | 10678731 | 1565 days ago | IN | 0 ETH | 0.0053502 | ||||
Transfer | 10598443 | 1577 days ago | IN | 0 ETH | 0.00200272 | ||||
Transfer | 10598202 | 1577 days ago | IN | 0 ETH | 0.0038514 | ||||
Approve | 10581675 | 1580 days ago | IN | 0 ETH | 0.00292505 | ||||
Transfer | 10572469 | 1581 days ago | IN | 0 ETH | 0.00323618 | ||||
Transfer | 10531248 | 1588 days ago | IN | 0 ETH | 0.0031774 | ||||
Transfer | 10497563 | 1593 days ago | IN | 0 ETH | 0.0032 | ||||
Approve | 10425786 | 1604 days ago | IN | 0 ETH | 0.00288073 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
CGCoinsToken
Compiler Version
v0.4.16+commit.d7661dd9
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-03-02 */ pragma solidity ^0.4.16; /* * Abstract Token Smart Contract. Copyright © 2017 by ABDK Consulting. * Author: Mikhail Vladimirov <[email protected]> */ pragma solidity ^0.4.16; /* * ERC-20 Standard Token Smart Contract Interface. * Copyright © 2016–2017 by ABDK Consulting. * Author: Mikhail Vladimirov <[email protected]> */ pragma solidity ^0.4.16; /** * ERC-20 standard token interface, as defined * <a href="http://github.com/ethereum/EIPs/issues/20">here</a>. */ contract Token { /** * Get total number of tokens in circulation. * * @return total number of tokens in circulation */ function totalSupply () constant returns (uint256 supply); /** * Get number of tokens currently belonging to given owner. * * @param _owner address to get number of tokens currently belonging to the * owner of * @return number of tokens currently belonging to the owner of given address */ function balanceOf (address _owner) constant returns (uint256 balance); /** * Transfer given number of tokens from message sender to given recipient. * * @param _to address to transfer tokens to the owner of * @param _value number of tokens to transfer to the owner of given address * @return true if tokens were transferred successfully, false otherwise */ function transfer (address _to, uint256 _value) returns (bool success); /** * Transfer given number of tokens from given owner to given recipient. * * @param _from address to transfer tokens from the owner of * @param _to address to transfer tokens to the owner of * @param _value number of tokens to transfer from given owner to given * recipient * @return true if tokens were transferred successfully, false otherwise */ function transferFrom (address _from, address _to, uint256 _value) returns (bool success); /** * Allow given spender to transfer given number of tokens from message sender. * * @param _spender address to allow the owner of to transfer tokens from * message sender * @param _value number of tokens to allow to transfer * @return true if token transfer was successfully approved, false otherwise */ function approve (address _spender, uint256 _value) returns (bool success); /** * Tell how many tokens given spender is currently allowed to transfer from * given owner. * * @param _owner address to get number of tokens allowed to be transferred * from the owner of * @param _spender address to get number of tokens allowed to be transferred * by the owner of * @return number of tokens given spender is currently allowed to transfer * from given owner */ function allowance (address _owner, address _spender) constant returns (uint256 remaining); /** * Logged when tokens were transferred from one owner to another. * * @param _from address of the owner, tokens were transferred from * @param _to address of the owner, tokens were transferred to * @param _value number of tokens transferred */ event Transfer (address indexed _from, address indexed _to, uint256 _value); /** * Logged when owner approved his tokens to be transferred by some spender. * * @param _owner owner who approved his tokens to be transferred * @param _spender spender who were allowed to transfer the tokens belonging * to the owner * @param _value number of tokens belonging to the owner, approved to be * transferred by the spender */ event Approval ( address indexed _owner, address indexed _spender, uint256 _value); } /* * Safe Math Smart Contract. Copyright © 2016–2017 by ABDK Consulting. * Author: Mikhail Vladimirov <[email protected]> */ pragma solidity ^0.4.16; /** * Provides methods to safely add, subtract and multiply uint256 numbers. */ contract SafeMath { uint256 constant private MAX_UINT256 = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; /** * Add two uint256 values, throw in case of overflow. * * @param x first value to add * @param y second value to add * @return x + y */ function safeAdd (uint256 x, uint256 y) constant internal returns (uint256 z) { assert (x <= MAX_UINT256 - y); return x + y; } /** * Subtract one uint256 value from another, throw in case of underflow. * * @param x value to subtract from * @param y value to subtract * @return x - y */ function safeSub (uint256 x, uint256 y) constant internal returns (uint256 z) { assert (x >= y); return x - y; } /** * Multiply two uint256 values, throw in case of overflow. * * @param x first value to multiply * @param y second value to multiply * @return x * y */ function safeMul (uint256 x, uint256 y) constant internal returns (uint256 z) { if (y == 0) return 0; // Prevent division by zero at the next line assert (x <= MAX_UINT256 / y); return x * y; } } /** * Abstract Token Smart Contract that could be used as a base contract for * ERC-20 token contracts. */ contract AbstractToken is Token, SafeMath { /** * Create new Abstract Token contract. */ function AbstractToken () { // Do nothing } /** * Get number of tokens currently belonging to given owner. * * @param _owner address to get number of tokens currently belonging to the * owner of * @return number of tokens currently belonging to the owner of given address */ function balanceOf (address _owner) constant returns (uint256 balance) { return accounts [_owner]; } /** * Transfer given number of tokens from message sender to given recipient. * * @param _to address to transfer tokens to the owner of * @param _value number of tokens to transfer to the owner of given address * @return true if tokens were transferred successfully, false otherwise */ function transfer (address _to, uint256 _value) returns (bool success) { if (accounts [msg.sender] < _value) return false; if (_value > 0 && msg.sender != _to) { accounts [msg.sender] = safeSub (accounts [msg.sender], _value); accounts [_to] = safeAdd (accounts [_to], _value); } Transfer (msg.sender, _to, _value); return true; } /** * Transfer given number of tokens from given owner to given recipient. * * @param _from address to transfer tokens from the owner of * @param _to address to transfer tokens to the owner of * @param _value number of tokens to transfer from given owner to given * recipient * @return true if tokens were transferred successfully, false otherwise */ function transferFrom (address _from, address _to, uint256 _value) returns (bool success) { if (allowances [_from][msg.sender] < _value) return false; if (accounts [_from] < _value) return false; allowances [_from][msg.sender] = safeSub (allowances [_from][msg.sender], _value); if (_value > 0 && _from != _to) { accounts [_from] = safeSub (accounts [_from], _value); accounts [_to] = safeAdd (accounts [_to], _value); } Transfer (_from, _to, _value); return true; } /** * Allow given spender to transfer given number of tokens from message sender. * * @param _spender address to allow the owner of to transfer tokens from * message sender * @param _value number of tokens to allow to transfer * @return true if token transfer was successfully approved, false otherwise */ function approve (address _spender, uint256 _value) returns (bool success) { allowances [msg.sender][_spender] = _value; Approval (msg.sender, _spender, _value); return true; } /** * Tell how many tokens given spender is currently allowed to transfer from * given owner. * * @param _owner address to get number of tokens allowed to be transferred * from the owner of * @param _spender address to get number of tokens allowed to be transferred * by the owner of * @return number of tokens given spender is currently allowed to transfer * from given owner */ function allowance (address _owner, address _spender) constant returns (uint256 remaining) { return allowances [_owner][_spender]; } /** * Mapping from addresses of token holders to the numbers of tokens belonging * to these token holders. */ mapping (address => uint256) accounts; /** * Mapping from addresses of token holders to the mapping of addresses of * spenders to the allowances set by these token holders to these spenders. */ mapping (address => mapping (address => uint256)) private allowances; } /** * Genie token smart contract. */ contract CGCoinsToken is AbstractToken { /** * Maximum allowed number of tokens in circulation. */ uint256 constant MAX_TOKEN_COUNT = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; /** * Address of the owner of this smart contract. */ address private owner; /** * Current number of tokens in circulation. */ uint256 tokenCount = 0; /** * True if tokens transfers are currently frozen, false otherwise. */ bool frozen = false; /** * Create new Genie token smart contract and make msg.sender the * owner of this smart contract. */ function CGCoinsToken () { owner = msg.sender; } /** * Get total number of tokens in circulation. * * @return total number of tokens in circulation */ function totalSupply () constant returns (uint256 supply) { return tokenCount; } /** * Get name of this token. * * @return name of this token */ function name () constant returns (string result) { return "CGCOINS"; } /** * Get symbol of this token. * * @return symbol of this token */ function symbol () constant returns (string result) { return "CGC"; } /** * Get number of decimals for this token. * * @return number of decimals for this token */ function decimals () constant returns (uint8 result) { return 16; } /** * Transfer given number of tokens from message sender to given recipient. * * @param _to address to transfer tokens to the owner of * @param _value number of tokens to transfer to the owner of given address * @return true if tokens were transferred successfully, false otherwise */ function transfer (address _to, uint256 _value) returns (bool success) { if (frozen) return false; else return AbstractToken.transfer (_to, _value); } /** * Transfer given number of tokens from given owner to given recipient. * * @param _from address to transfer tokens from the owner of * @param _to address to transfer tokens to the owner of * @param _value number of tokens to transfer from given owner to given * recipient * @return true if tokens were transferred successfully, false otherwise */ function transferFrom (address _from, address _to, uint256 _value) returns (bool success) { if (frozen) return false; else return AbstractToken.transferFrom (_from, _to, _value); } /** * Change how many tokens given spender is allowed to transfer from message * spender. In order to prevent double spending of allowance, this method * receives assumed current allowance value as an argument. If actual * allowance differs from an assumed one, this method just returns false. * * @param _spender address to allow the owner of to transfer tokens from * message sender * @param _currentValue assumed number of tokens currently allowed to be * transferred * @param _newValue number of tokens to allow to transfer * @return true if token transfer was successfully approved, false otherwise */ function approve (address _spender, uint256 _currentValue, uint256 _newValue) returns (bool success) { if (allowance (msg.sender, _spender) == _currentValue) return approve (_spender, _newValue); else return false; } /** * Burn given number of tokens belonging to message sender. * * @param _value number of tokens to burn * @return true on success, false on error */ function burnTokens (uint256 _value) returns (bool success) { if (_value > accounts [msg.sender]) return false; else if (_value > 0) { accounts [msg.sender] = safeSub (accounts [msg.sender], _value); tokenCount = safeSub (tokenCount, _value); return true; } else return true; } /** * Create _value new tokens and give new created tokens to msg.sender. * May only be called by smart contract owner. * * @param _value number of tokens to create * @return true if tokens were created successfully, false otherwise */ function createTokens (uint256 _value) returns (bool success) { require (msg.sender == owner); if (_value > 0) { if (_value > safeSub (MAX_TOKEN_COUNT, tokenCount)) return false; accounts [msg.sender] = safeAdd (accounts [msg.sender], _value); tokenCount = safeAdd (tokenCount, _value); } return true; } /** * Set new owner for the smart contract. * May only be called by smart contract owner. * * @param _newOwner address of new owner of the smart contract */ function setOwner (address _newOwner) { require (msg.sender == owner); owner = _newOwner; } /** * Freeze token transfers. * May only be called by smart contract owner. */ function freezeTransfers () { require (msg.sender == owner); if (!frozen) { frozen = true; Freeze (); } } /** * Unfreeze token transfers. * May only be called by smart contract owner. */ function unfreezeTransfers () { require (msg.sender == owner); if (frozen) { frozen = false; Unfreeze (); } } /** * Logged when token transfers were frozen. */ event Freeze (); /** * Logged when token transfers were unfrozen. */ event Unfreeze (); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"freezeTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"result","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":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","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":true,"inputs":[],"name":"decimals","outputs":[{"name":"result","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unfreezeTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_currentValue","type":"uint256"},{"name":"_newValue","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burnTokens","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"createTokens","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"result","type":"string"}],"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":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[],"name":"Unfreeze","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
606060405260006003556004805460ff19169055341561001e57600080fd5b5b5b5b60028054600160a060020a03191633600160a060020a03161790555b5b610b568061004d6000396000f300606060405236156100d85763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630150246081146100dd57806306fdde03146100f2578063095ea7b31461017d57806313af4035146101b357806318160ddd146101d457806323b872dd146101f9578063313ce5671461023557806331c420d41461025e578063426a8493146102735780636d1b229d146102ac57806370a08231146102d65780637e1f2bb81461030757806395d89b4114610331578063a9059cbb146103bc578063dd62ed3e146103f2575b600080fd5b34156100e857600080fd5b6100f0610429565b005b34156100fd57600080fd5b61010561048d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101425780820151818401525b602001610129565b50505050905090810190601f16801561016f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018857600080fd5b61019f600160a060020a03600435166024356104cf565b604051901515815260200160405180910390f35b34156101be57600080fd5b6100f0600160a060020a036004351661053c565b005b34156101df57600080fd5b6101e7610583565b60405190815260200160405180910390f35b341561020457600080fd5b61019f600160a060020a036004358116906024351660443561058a565b604051901515815260200160405180910390f35b341561024057600080fd5b6102486105b6565b60405160ff909116815260200160405180910390f35b341561026957600080fd5b6100f06105bc565b005b341561027e57600080fd5b61019f600160a060020a036004351660243560443561061c565b604051901515815260200160405180910390f35b34156102b757600080fd5b61019f600435610650565b604051901515815260200160405180910390f35b34156102e157600080fd5b6101e7600160a060020a03600435166106e0565b60405190815260200160405180910390f35b341561031257600080fd5b61019f6004356106ff565b604051901515815260200160405180910390f35b341561033c57600080fd5b610105610799565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101425780820151818401525b602001610129565b50505050905090810190601f16801561016f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103c757600080fd5b61019f600160a060020a03600435166024356107db565b604051901515815260200160405180910390f35b34156103fd57600080fd5b6101e7600160a060020a0360043581169060243516610809565b60405190815260200160405180910390f35b60025433600160a060020a0390811691161461044457600080fd5b60045460ff16151561048a576004805460ff191660011790557f615acbaede366d76a8b8cb2a9ada6a71495f0786513d71aa97aaf0c3910b78de60405160405180910390a15b5b565b610495610b18565b60408051908101604052600781527f4347434f494e5300000000000000000000000000000000000000000000000000602082015290505b90565b600160a060020a03338116600081815260016020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60025433600160a060020a0390811691161461055757600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6003545b90565b60045460009060ff16156105a0575060006105ae565b6105ab848484610836565b90505b5b9392505050565b60105b90565b60025433600160a060020a039081169116146105d757600080fd5b60045460ff161561048a576004805460ff191690557f2f05ba71d0df11bf5fa562a6569d70c4f80da84284badbe015ce1456063d0ded60405160405180910390a15b5b565b6000826106293386610809565b1415610640576105ab84836104cf565b90506105ae565b5060006105ae565b5b9392505050565b600160a060020a033316600090815260208190526040812054821115610678575060006106d9565b60008211156106d557600160a060020a0333166000908152602081905260409020546106a490836109d8565b600160a060020a0333166000908152602081905260409020556003546106ca90836109d8565b6003555060016106d9565b5060015b5b5b919050565b600160a060020a0381166000908152602081905260409020545b919050565b60025460009033600160a060020a0390811691161461071d57600080fd5b60008211156106d5576107346000196003546109d8565b821115610743575060006106d9565b600160a060020a03331660009081526020819052604090205461076690836109ef565b600160a060020a03331660009081526020819052604090205560035461078c90836109ef565b6003555b5060015b919050565b6107a1610b18565b60408051908101604052600381527f4347430000000000000000000000000000000000000000000000000000000000602082015290505b90565b60045460009060ff16156107f157506000610536565b6107fb8383610a0b565b9050610536565b5b92915050565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b92915050565b600160a060020a038084166000908152600160209081526040808320339094168352929052908120548290101561086f575060006105ae565b600160a060020a03841660009081526020819052604090205482901015610898575060006105ae565b600160a060020a03808516600090815260016020908152604080832033909416835292905220546108c990836109d8565b600160a060020a0380861660009081526001602090815260408083203390941683529290529081209190915582118015610915575082600160a060020a031684600160a060020a031614155b1561098657600160a060020a03841660009081526020819052604090205461093d90836109d8565b600160a060020a03808616600090815260208190526040808220939093559085168152205461096c90836109ef565b600160a060020a0384166000908152602081905260409020555b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b9392505050565b6000818310156109e457fe5b508082035b92915050565b6000600019829003831115610a0057fe5b508181015b92915050565b600160a060020a03331660009081526020819052604081205482901015610a3457506000610536565b600082118015610a56575082600160a060020a031633600160a060020a031614155b15610ac757600160a060020a033316600090815260208190526040902054610a7e90836109d8565b600160a060020a033381166000908152602081905260408082209390935590851681522054610aad90836109ef565b600160a060020a0384166000908152602081905260409020555b82600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b92915050565b602060405190810160405260008152905600a165627a7a72305820ac775a3cb81e59e9e741effb672d07631203058d45f02ee3c277b31cf8ef2a4b0029
Deployed Bytecode
0x606060405236156100d85763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630150246081146100dd57806306fdde03146100f2578063095ea7b31461017d57806313af4035146101b357806318160ddd146101d457806323b872dd146101f9578063313ce5671461023557806331c420d41461025e578063426a8493146102735780636d1b229d146102ac57806370a08231146102d65780637e1f2bb81461030757806395d89b4114610331578063a9059cbb146103bc578063dd62ed3e146103f2575b600080fd5b34156100e857600080fd5b6100f0610429565b005b34156100fd57600080fd5b61010561048d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101425780820151818401525b602001610129565b50505050905090810190601f16801561016f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018857600080fd5b61019f600160a060020a03600435166024356104cf565b604051901515815260200160405180910390f35b34156101be57600080fd5b6100f0600160a060020a036004351661053c565b005b34156101df57600080fd5b6101e7610583565b60405190815260200160405180910390f35b341561020457600080fd5b61019f600160a060020a036004358116906024351660443561058a565b604051901515815260200160405180910390f35b341561024057600080fd5b6102486105b6565b60405160ff909116815260200160405180910390f35b341561026957600080fd5b6100f06105bc565b005b341561027e57600080fd5b61019f600160a060020a036004351660243560443561061c565b604051901515815260200160405180910390f35b34156102b757600080fd5b61019f600435610650565b604051901515815260200160405180910390f35b34156102e157600080fd5b6101e7600160a060020a03600435166106e0565b60405190815260200160405180910390f35b341561031257600080fd5b61019f6004356106ff565b604051901515815260200160405180910390f35b341561033c57600080fd5b610105610799565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101425780820151818401525b602001610129565b50505050905090810190601f16801561016f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103c757600080fd5b61019f600160a060020a03600435166024356107db565b604051901515815260200160405180910390f35b34156103fd57600080fd5b6101e7600160a060020a0360043581169060243516610809565b60405190815260200160405180910390f35b60025433600160a060020a0390811691161461044457600080fd5b60045460ff16151561048a576004805460ff191660011790557f615acbaede366d76a8b8cb2a9ada6a71495f0786513d71aa97aaf0c3910b78de60405160405180910390a15b5b565b610495610b18565b60408051908101604052600781527f4347434f494e5300000000000000000000000000000000000000000000000000602082015290505b90565b600160a060020a03338116600081815260016020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60025433600160a060020a0390811691161461055757600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6003545b90565b60045460009060ff16156105a0575060006105ae565b6105ab848484610836565b90505b5b9392505050565b60105b90565b60025433600160a060020a039081169116146105d757600080fd5b60045460ff161561048a576004805460ff191690557f2f05ba71d0df11bf5fa562a6569d70c4f80da84284badbe015ce1456063d0ded60405160405180910390a15b5b565b6000826106293386610809565b1415610640576105ab84836104cf565b90506105ae565b5060006105ae565b5b9392505050565b600160a060020a033316600090815260208190526040812054821115610678575060006106d9565b60008211156106d557600160a060020a0333166000908152602081905260409020546106a490836109d8565b600160a060020a0333166000908152602081905260409020556003546106ca90836109d8565b6003555060016106d9565b5060015b5b5b919050565b600160a060020a0381166000908152602081905260409020545b919050565b60025460009033600160a060020a0390811691161461071d57600080fd5b60008211156106d5576107346000196003546109d8565b821115610743575060006106d9565b600160a060020a03331660009081526020819052604090205461076690836109ef565b600160a060020a03331660009081526020819052604090205560035461078c90836109ef565b6003555b5060015b919050565b6107a1610b18565b60408051908101604052600381527f4347430000000000000000000000000000000000000000000000000000000000602082015290505b90565b60045460009060ff16156107f157506000610536565b6107fb8383610a0b565b9050610536565b5b92915050565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b92915050565b600160a060020a038084166000908152600160209081526040808320339094168352929052908120548290101561086f575060006105ae565b600160a060020a03841660009081526020819052604090205482901015610898575060006105ae565b600160a060020a03808516600090815260016020908152604080832033909416835292905220546108c990836109d8565b600160a060020a0380861660009081526001602090815260408083203390941683529290529081209190915582118015610915575082600160a060020a031684600160a060020a031614155b1561098657600160a060020a03841660009081526020819052604090205461093d90836109d8565b600160a060020a03808616600090815260208190526040808220939093559085168152205461096c90836109ef565b600160a060020a0384166000908152602081905260409020555b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b9392505050565b6000818310156109e457fe5b508082035b92915050565b6000600019829003831115610a0057fe5b508181015b92915050565b600160a060020a03331660009081526020819052604081205482901015610a3457506000610536565b600082118015610a56575082600160a060020a031633600160a060020a031614155b15610ac757600160a060020a033316600090815260208190526040902054610a7e90836109d8565b600160a060020a033381166000908152602081905260408082209390935590851681522054610aad90836109ef565b600160a060020a0384166000908152602081905260409020555b82600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b92915050565b602060405190810160405260008152905600a165627a7a72305820ac775a3cb81e59e9e741effb672d07631203058d45f02ee3c277b31cf8ef2a4b0029
Swarm Source
bzzr://ac775a3cb81e59e9e741effb672d07631203058d45f02ee3c277b31cf8ef2a4b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.