Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 35 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 24028415 | 9 hrs ago | IN | 0 ETH | 0.00000205 | ||||
| Approve | 24028358 | 9 hrs ago | IN | 0 ETH | 0.00000325 | ||||
| Approve | 24026567 | 15 hrs ago | IN | 0 ETH | 0.00000229 | ||||
| Approve | 12384687 | 1685 days ago | IN | 0 ETH | 0.00195211 | ||||
| Transfer | 11897640 | 1760 days ago | IN | 0 ETH | 0.0032228 | ||||
| Transfer | 11884271 | 1762 days ago | IN | 0 ETH | 0.00342984 | ||||
| Transfer | 11884246 | 1762 days ago | IN | 0 ETH | 0.00320203 | ||||
| Transfer | 11877268 | 1763 days ago | IN | 0 ETH | 0.0042084 | ||||
| Transfer | 11876972 | 1763 days ago | IN | 0 ETH | 0.0071203 | ||||
| Transfer | 11801003 | 1775 days ago | IN | 0 ETH | 0.0066865 | ||||
| Transfer | 11792949 | 1776 days ago | IN | 0 ETH | 0.01219617 | ||||
| Transfer | 11751702 | 1782 days ago | IN | 0 ETH | 0.00520628 | ||||
| Transfer | 11751702 | 1782 days ago | IN | 0 ETH | 0.00301218 | ||||
| Transfer | 11750471 | 1782 days ago | IN | 0 ETH | 0.0051042 | ||||
| Transfer | 11750440 | 1782 days ago | IN | 0 ETH | 0.00658441 | ||||
| Transfer | 11730333 | 1785 days ago | IN | 0 ETH | 0.00357294 | ||||
| Transfer | 11701640 | 1790 days ago | IN | 0 ETH | 0.00739688 | ||||
| Approve | 11696698 | 1791 days ago | IN | 0 ETH | 0.00177516 | ||||
| Transfer | 11696593 | 1791 days ago | IN | 0 ETH | 0.00245001 | ||||
| Approve | 11696428 | 1791 days ago | IN | 0 ETH | 0.0013093 | ||||
| Approve | 11696428 | 1791 days ago | IN | 0 ETH | 0.0023077 | ||||
| Transfer | 11696367 | 1791 days ago | IN | 0 ETH | 0.00301218 | ||||
| Transfer | 11696365 | 1791 days ago | IN | 0 ETH | 0.00296113 | ||||
| Transfer | 11696241 | 1791 days ago | IN | 0 ETH | 0.00250193 | ||||
| Transfer | 11696228 | 1791 days ago | IN | 0 ETH | 0.00155 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
VeCoin
Compiler Version
v0.5.10+commit.5a6ea5b1
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-04-23
*/
pragma solidity ^0.5.10;
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
constructor () internal {
_owner = msg.sender;
emit OwnershipTransferred(address(0), _owner);
}
/**
* @return the address of the owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(isOwner());
_;
}
/**
* @return true if `msg.sender` is the owner of the contract.
*/
function isOwner() public view returns (bool) {
return msg.sender == _owner;
}
/**
* @dev Allows the current owner to relinquish control of the contract.
* It will not be possible to call the functions with the `onlyOwner`
* modifier anymore.
* @notice Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
/**
* @dev Transfers control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0));
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
/**
* @title SafeMath
* @dev Unsigned math operations with safety checks that revert on error.
*/
library SafeMath {
/**
* @dev Multiplies two unsigned integers, reverts on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b);
return c;
}
/**
* @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
/**
* @dev Adds two unsigned integers, reverts on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
/**
* @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
* reverts when dividing by zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0);
return a % b;
}
}
/**
* @title ERC20 interface
* @dev see https://eips.ethereum.org/EIPS/eip-20
*/
interface IERC20 {
function transfer(address to, uint256 value) external returns (bool);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
function totalSupply() external view returns (uint256);
function balanceOf(address who) external view returns (uint256);
function allowance(address owner, address spender) external view returns (uint256);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* @title Standard ERC20 token
*
* @dev Implementation of the basic standard token.
* https://eips.ethereum.org/EIPS/eip-20
* Originally based on code by FirstBlood:
* https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
*
* This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for
* all accounts just by listening to said events. Note that this isn't required by the specification, and other
* compliant implementations may not do it.
*/
contract ERC20 is IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowed;
uint256 private _totalSupply;
/**
* @dev Total number of tokens in existence.
*/
function totalSupply() public view returns (uint256) {
return _totalSupply;
}
/**
* @dev Gets the balance of the specified address.
* @param owner The address to query the balance of.
* @return A uint256 representing the amount owned by the passed address.
*/
function balanceOf(address owner) public view returns (uint256) {
return _balances[owner];
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param owner address The address which owns the funds.
* @param spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
*/
function allowance(address owner, address spender) public view returns (uint256) {
return _allowed[owner][spender];
}
/**
* @dev Transfer token to a specified address.
* @param to The address to transfer to.
* @param value The amount to be transferred.
*/
function transfer(address to, uint256 value) public returns (bool) {
_transfer(msg.sender, to, value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
* Beware that changing an allowance with this method brings the risk that someone may use both the old
* and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
* race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
* @param spender The address which will spend the funds.
* @param value The amount of tokens to be spent.
*/
function approve(address spender, uint256 value) public returns (bool) {
_approve(msg.sender, spender, value);
return true;
}
/**
* @dev Transfer tokens from one address to another.
* Note that while this function emits an Approval event, this is not required as per the specification,
* and other compliant implementations may not emit the event.
* @param from address The address which you want to send tokens from
* @param to address The address which you want to transfer to
* @param value uint256 the amount of tokens to be transferred
*/
function transferFrom(address from, address to, uint256 value) public returns (bool) {
_transfer(from, to, value);
_approve(from, msg.sender, _allowed[from][msg.sender].sub(value));
return true;
}
/**
* @dev Increase the amount of tokens that an owner allowed to a spender.
* approve should be called when _allowed[msg.sender][spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* Emits an Approval event.
* @param spender The address which will spend the funds.
* @param addedValue The amount of tokens to increase the allowance by.
*/
function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
_approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));
return true;
}
/**
* @dev Decrease the amount of tokens that an owner allowed to a spender.
* approve should be called when _allowed[msg.sender][spender] == 0. To decrement
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* Emits an Approval event.
* @param spender The address which will spend the funds.
* @param subtractedValue The amount of tokens to decrease the allowance by.
*/
function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
_approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));
return true;
}
/**
* @dev Transfer token for a specified addresses.
* @param from The address to transfer from.
* @param to The address to transfer to.
* @param value The amount to be transferred.
*/
function _transfer(address from, address to, uint256 value) internal {
require(to != address(0));
_balances[from] = _balances[from].sub(value);
_balances[to] = _balances[to].add(value);
emit Transfer(from, to, value);
}
/**
* @dev Internal function that mints an amount of the token and assigns it to
* an account. This encapsulates the modification of balances such that the
* proper events are emitted.
* @param account The account that will receive the created tokens.
* @param value The amount that will be created.
*/
function _mint(address account, uint256 value) internal {
require(account != address(0));
_totalSupply = _totalSupply.add(value);
_balances[account] = _balances[account].add(value);
emit Transfer(address(0), account, value);
}
/**
* @dev Internal function that burns an amount of the token of a given
* account.
* @param account The account whose tokens will be burnt.
* @param value The amount that will be burnt.
*/
function _burn(address account, uint256 value) internal {
require(account != address(0));
_totalSupply = _totalSupply.sub(value);
_balances[account] = _balances[account].sub(value);
emit Transfer(account, address(0), value);
}
/**
* @dev Approve an address to spend another addresses' tokens.
* @param owner The address that owns the tokens.
* @param spender The address that will spend the tokens.
* @param value The number of tokens that can be spent.
*/
function _approve(address owner, address spender, uint256 value) internal {
require(spender != address(0));
require(owner != address(0));
_allowed[owner][spender] = value;
emit Approval(owner, spender, value);
}
/**
* @dev Internal function that burns an amount of the token of a given
* account, deducting from the sender's allowance for said account. Uses the
* internal burn function.
* Emits an Approval event (reflecting the reduced allowance).
* @param account The account whose tokens will be burnt.
* @param value The amount that will be burnt.
*/
function _burnFrom(address account, uint256 value) internal {
_burn(account, value);
_approve(account, msg.sender, _allowed[account][msg.sender].sub(value));
}
}
/**
* @title ERC20Detailed token
* @dev The decimals are only for visualization purposes.
* All the operations are done using the smallest and indivisible token unit,
* just as on Ethereum all the operations are done in wei.
*/
contract ERC20Detailed is ERC20 {
string constant private _name = "VECOIN ";
string constant private _symbol = "VECX";
uint256 constant private _decimals = 8;
/**
* @return the name of the token.
*/
function name() public pure returns (string memory) {
return _name;
}
/**
* @return the symbol of the token.
*/
function symbol() public pure returns (string memory) {
return _symbol;
}
/**
* @return the number of decimals of the token.
*/
function decimals() public pure returns (uint256) {
return _decimals;
}
}
contract VeCoin is ERC20Detailed {
constructor() public {
uint256 totalSupply = 21000000000 * (10 ** decimals());
_mint(0x5f7F964eFd5E122049911006912056ebe83C547F,totalSupply);
}
/**
* @dev Burns a specific amount of tokens.
* @param value The amount of token to be burned.
*/
function burn(uint256 value) public {
_burn(msg.sender, value);
}
/**
* @dev Burns a specific amount of tokens from the target address and decrements allowance.
* @param from address The account whose tokens will be burned.
* @param value uint256 The amount of token to be burned.
*/
function burnFrom(address from, uint256 value) public {
_burnFrom(from, value);
}
function transfer(address _to, uint256 _value) public returns (bool) {
return super.transfer(_to,_value);
}
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
return super.transferFrom(_from, _to, _value);
}
function increaseAllowance(address _spender, uint _addedValue) public returns (bool) {
return super.increaseAllowance(_spender, _addedValue);
}
function decreaseAllowance(address _spender, uint _subtractedValue) public returns (bool) {
return super.decreaseAllowance(_spender, _subtractedValue);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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
608060405234801561001057600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600061006d6001600160e01b036100a316565b600a0a6404e3b2920002905061009d735f7f964efd5e122049911006912056ebe83c547f826100a860201b60201c565b50610177565b600890565b6001600160a01b0382166100bb57600080fd5b6100d48160035461015e60201b6108e21790919060201c565b6003556001600160a01b0382166000908152600160209081526040909120546101069183906108e261015e821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008282018381101561017057600080fd5b9392505050565b610929806101866000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a257806395d89b411161007157806395d89b41146102f6578063a457c2d7146102fe578063a9059cbb1461032a578063dd62ed3e14610356578063f2fde38b146103845761010b565b8063715018a61461029657806379cc67901461029e5780638da5cb5b146102ca5780638f32d59b146102ee5761010b565b8063313ce567116100de578063313ce5671461021d578063395093511461022557806342966c681461025157806370a08231146102705761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b6101186103aa565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b0381351690602001356103cb565b604080519115158252519081900360200190f35b6101d56103e1565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b038135811691602081013590911690604001356103e7565b6101d56103fc565b6101b96004803603604081101561023b57600080fd5b506001600160a01b038135169060200135610401565b61026e6004803603602081101561026757600080fd5b5035610414565b005b6101d56004803603602081101561028657600080fd5b50356001600160a01b0316610421565b61026e61043c565b61026e600480360360408110156102b457600080fd5b506001600160a01b038135169060200135610497565b6102d26104a5565b604080516001600160a01b039092168252519081900360200190f35b6101b96104b4565b6101186104c5565b6101b96004803603604081101561031457600080fd5b506001600160a01b0381351690602001356104e3565b6101b96004803603604081101561034057600080fd5b506001600160a01b0381351690602001356104ef565b6101d56004803603604081101561036c57600080fd5b506001600160a01b03813581169160200135166104fb565b61026e6004803603602081101561039a57600080fd5b50356001600160a01b0316610526565b60408051808201909152600781526602b22a1a7a4a7160cd1b602082015290565b60006103d8338484610540565b50600192915050565b60035490565b60006103f48484846105c8565b949350505050565b600890565b600061040d838361061f565b9392505050565b61041e338261065b565b50565b6001600160a01b031660009081526001602052604090205490565b6104446104b4565b61044d57600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6104a18282610704565b5050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6040805180820190915260048152630ac8a86b60e31b602082015290565b600061040d8383610749565b600061040d8383610785565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61052e6104b4565b61053757600080fd5b61041e81610792565b6001600160a01b03821661055357600080fd5b6001600160a01b03831661056657600080fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60006105d5848484610800565b6001600160a01b038416600090815260026020908152604080832033808552925290912054610615918691610610908663ffffffff6108cd16565b610540565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103d8918590610610908663ffffffff6108e216565b6001600160a01b03821661066e57600080fd5b600354610681908263ffffffff6108cd16565b6003556001600160a01b0382166000908152600160205260409020546106ad908263ffffffff6108cd16565b6001600160a01b0383166000818152600160209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b61070e828261065b565b6001600160a01b0382166000908152600260209081526040808320338085529252909120546104a1918491610610908563ffffffff6108cd16565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103d8918590610610908663ffffffff6108cd16565b60006103d8338484610800565b6001600160a01b0381166107a557600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03821661081357600080fd5b6001600160a01b03831660009081526001602052604090205461083c908263ffffffff6108cd16565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610871908263ffffffff6108e216565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828211156108dc57600080fd5b50900390565b60008282018381101561040d57600080fdfea265627a7a7230582002728af1698cb44a3cab106ec4a68085420e0a285bc5078b60f21c983e8b40bf64736f6c634300050a0032
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a257806395d89b411161007157806395d89b41146102f6578063a457c2d7146102fe578063a9059cbb1461032a578063dd62ed3e14610356578063f2fde38b146103845761010b565b8063715018a61461029657806379cc67901461029e5780638da5cb5b146102ca5780638f32d59b146102ee5761010b565b8063313ce567116100de578063313ce5671461021d578063395093511461022557806342966c681461025157806370a08231146102705761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b6101186103aa565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b0381351690602001356103cb565b604080519115158252519081900360200190f35b6101d56103e1565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b038135811691602081013590911690604001356103e7565b6101d56103fc565b6101b96004803603604081101561023b57600080fd5b506001600160a01b038135169060200135610401565b61026e6004803603602081101561026757600080fd5b5035610414565b005b6101d56004803603602081101561028657600080fd5b50356001600160a01b0316610421565b61026e61043c565b61026e600480360360408110156102b457600080fd5b506001600160a01b038135169060200135610497565b6102d26104a5565b604080516001600160a01b039092168252519081900360200190f35b6101b96104b4565b6101186104c5565b6101b96004803603604081101561031457600080fd5b506001600160a01b0381351690602001356104e3565b6101b96004803603604081101561034057600080fd5b506001600160a01b0381351690602001356104ef565b6101d56004803603604081101561036c57600080fd5b506001600160a01b03813581169160200135166104fb565b61026e6004803603602081101561039a57600080fd5b50356001600160a01b0316610526565b60408051808201909152600781526602b22a1a7a4a7160cd1b602082015290565b60006103d8338484610540565b50600192915050565b60035490565b60006103f48484846105c8565b949350505050565b600890565b600061040d838361061f565b9392505050565b61041e338261065b565b50565b6001600160a01b031660009081526001602052604090205490565b6104446104b4565b61044d57600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6104a18282610704565b5050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6040805180820190915260048152630ac8a86b60e31b602082015290565b600061040d8383610749565b600061040d8383610785565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61052e6104b4565b61053757600080fd5b61041e81610792565b6001600160a01b03821661055357600080fd5b6001600160a01b03831661056657600080fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60006105d5848484610800565b6001600160a01b038416600090815260026020908152604080832033808552925290912054610615918691610610908663ffffffff6108cd16565b610540565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103d8918590610610908663ffffffff6108e216565b6001600160a01b03821661066e57600080fd5b600354610681908263ffffffff6108cd16565b6003556001600160a01b0382166000908152600160205260409020546106ad908263ffffffff6108cd16565b6001600160a01b0383166000818152600160209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b61070e828261065b565b6001600160a01b0382166000908152600260209081526040808320338085529252909120546104a1918491610610908563ffffffff6108cd16565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103d8918590610610908663ffffffff6108cd16565b60006103d8338484610800565b6001600160a01b0381166107a557600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03821661081357600080fd5b6001600160a01b03831660009081526001602052604090205461083c908263ffffffff6108cd16565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610871908263ffffffff6108e216565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828211156108dc57600080fd5b50900390565b60008282018381101561040d57600080fdfea265627a7a7230582002728af1698cb44a3cab106ec4a68085420e0a285bc5078b60f21c983e8b40bf64736f6c634300050a0032
Deployed Bytecode Sourcemap
13555:1409:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13555:1409:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13149:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;13149:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7617:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7617:148:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5769:91;;;:::i;:::-;;;;;;;;;;;;;;;;14475:150;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14475:150:0;;;;;;;;;;;;;;;;;:::i;13465:85::-;;;:::i;14634:155::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14634:155:0;;;;;;;;:::i;13897:79::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13897:79:0;;:::i;:::-;;6079:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6079:106:0;-1:-1:-1;;;;;6079:106:0;;:::i;1476:140::-;;;:::i;14235:95::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14235:95:0;;;;;;;;:::i;686:79::-;;;:::i;:::-;;;;-1:-1:-1;;;;;686:79:0;;;;;;;;;;;;;;1021:92;;;:::i;13299:87::-;;;:::i;14796:165::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14796:165:0;;;;;;;;:::i;14344:124::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14344:124:0;;;;;;;;:::i;6524:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6524:131:0;;;;;;;;;;:::i;1793:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1793:109:0;-1:-1:-1;;;;;1793:109:0;;:::i;13149:83::-;13219:5;;;;;;;;;;;;-1:-1:-1;;;13219:5:0;;;;13149:83;:::o;7617:148::-;7682:4;7699:36;7708:10;7720:7;7729:5;7699:8;:36::i;:::-;-1:-1:-1;7753:4:0;7617:148;;;;:::o;5769:91::-;5840:12;;5769:91;:::o;14475:150::-;14557:4;14579:38;14598:5;14605:3;14610:6;14579:18;:38::i;:::-;14572:45;14475:150;-1:-1:-1;;;;14475:150:0:o;13465:85::-;13080:1;13465:85;:::o;14634:155::-;14713:4;14735:46;14759:8;14769:11;14735:23;:46::i;:::-;14728:53;14634:155;-1:-1:-1;;;14634:155:0:o;13897:79::-;13944:24;13950:10;13962:5;13944;:24::i;:::-;13897:79;:::o;6079:106::-;-1:-1:-1;;;;;6161:16:0;6134:7;6161:16;;;:9;:16;;;;;;;6079:106::o;1476:140::-;898:9;:7;:9::i;:::-;890:18;;;;;;1575:1;1559:6;;1538:40;;-1:-1:-1;;;;;1559:6:0;;;;1538:40;;1575:1;;1538:40;1606:1;1589:19;;-1:-1:-1;;;;;;1589:19:0;;;1476:140::o;14235:95::-;14300:22;14310:4;14316:5;14300:9;:22::i;:::-;14235:95;;:::o;686:79::-;724:7;751:6;-1:-1:-1;;;;;751:6:0;686:79;:::o;1021:92::-;1061:4;1099:6;-1:-1:-1;;;;;1099:6:0;1085:10;:20;;1021:92::o;13299:87::-;13371:7;;;;;;;;;;;;-1:-1:-1;;;13371:7:0;;;;13299:87;:::o;14796:165::-;14880:4;14902:51;14926:8;14936:16;14902:23;:51::i;14344:124::-;14408:4;14434:26;14449:3;14453:6;14434:14;:26::i;6524:131::-;-1:-1:-1;;;;;6623:15:0;;;6596:7;6623:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;6524:131::o;1793:109::-;898:9;:7;:9::i;:::-;890:18;;;;;;1866:28;1885:8;1866:18;:28::i;11826:254::-;-1:-1:-1;;;;;11919:21:0;;11911:30;;;;;;-1:-1:-1;;;;;11960:19:0;;11952:28;;;;;;-1:-1:-1;;;;;11993:15:0;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:32;;;12041:31;;;;;;;;;;;;;;;;;11826:254;;;:::o;8238:228::-;8317:4;8334:26;8344:4;8350:2;8354:5;8334:9;:26::i;:::-;-1:-1:-1;;;;;8398:14:0;;;;;;:8;:14;;;;;;;;8386:10;8398:26;;;;;;;;;8371:65;;8380:4;;8398:37;;8429:5;8398:37;:30;:37;:::i;:::-;8371:8;:65::i;:::-;-1:-1:-1;8454:4:0;8238:228;;;;;:::o;8992:203::-;9098:10;9072:4;9119:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;9119:29:0;;;;;;;;;;9072:4;;9089:76;;9110:7;;9119:45;;9153:10;9119:45;:33;:45;:::i;11284:269::-;-1:-1:-1;;;;;11359:21:0;;11351:30;;;;;;11409:12;;:23;;11426:5;11409:23;:16;:23;:::i;:::-;11394:12;:38;-1:-1:-1;;;;;11464:18:0;;;;;;:9;:18;;;;;;:29;;11487:5;11464:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;11443:18:0;;;;;;:9;:18;;;;;;;;:50;;;;11509:36;;;;;;;11443:18;;11509:36;;;;;;;;;;;11284:269;;:::o;12479:182::-;12550:21;12556:7;12565:5;12550;:21::i;:::-;-1:-1:-1;;;;;12612:17:0;;;;;;:8;:17;;;;;;;;12600:10;12612:29;;;;;;;;;12582:71;;12591:7;;12612:40;;12646:5;12612:40;:33;:40;:::i;9726:213::-;9837:10;9811:4;9858:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;9858:29:0;;;;;;;;;;9811:4;;9828:81;;9849:7;;9858:50;;9892:15;9858:50;:33;:50;:::i;6830:140::-;6891:4;6908:32;6918:10;6930:2;6934:5;6908:9;:32::i;2052:187::-;-1:-1:-1;;;;;2126:22:0;;2118:31;;;;;;2186:6;;;2165:38;;-1:-1:-1;;;;;2165:38:0;;;;2186:6;;;2165:38;;;2214:6;:17;;-1:-1:-1;;;;;;2214:17:0;-1:-1:-1;;;;;2214:17:0;;;;;;;;;;2052:187::o;10167:262::-;-1:-1:-1;;;;;10255:16:0;;10247:25;;;;;;-1:-1:-1;;;;;10303:15:0;;;;;;:9;:15;;;;;;:26;;10323:5;10303:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;10285:15:0;;;;;;;:9;:15;;;;;;:44;;;;10356:13;;;;;;;:24;;10374:5;10356:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;10340:13:0;;;;;;;:9;:13;;;;;;;;;:40;;;;10396:25;;;;;;;10340:13;;10396:25;;;;;;;;;;;;;10167:262;;;:::o;3468:150::-;3526:7;3559:1;3554;:6;;3546:15;;;;;;-1:-1:-1;3584:5:0;;;3468:150::o;3706:::-;3764:7;3796:5;;;3820:6;;;;3812:15;;;;
Swarm Source
bzzr://02728af1698cb44a3cab106ec4a68085420e0a285bc5078b60f21c983e8b40bf
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.