Contract Overview
Balance:
0 FTM
My Name Tag:
Not Available
TokenTracker:
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0xe2babe486fe8db6b00860048b8721224915440fef4b76afc2233d29df3e1a281 | Approve | 8702745 | 417 days 2 hrs ago | 0x7f59f02d43cd2460bb8ca8d8537d76d94a95ccbc | IN | 0x624711a4d7419f7899bb15ed8d6a01ff3bd2b4d1 | 0 FTM | 0.009666069868 | |
0x98be354ef5294f93d7c4db606d3c534062261042b5063b7574a664238a61c43d | Transfer | 8699928 | 417 days 12 hrs ago | 0xb7a18366c4a623438508ccc9360e95613790f409 | IN | 0x624711a4d7419f7899bb15ed8d6a01ff3bd2b4d1 | 0 FTM | 0.010747167158 |
[ Download CSV Export ]
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0x78a283a2727228cc51f3b3e03bdef07c865090e406b8c8267fbadbaa9365e0a0 | 8695823 | 418 days 2 hrs ago | 0x9978a739acdfcd989c75206f29fe84e529cfd857 | Contract Creation | 1 wei |
[ Download CSV Export ]
Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x315090f64c5e5feee306ab7501aa661819663b3d
Contract Name:
ERC20Chocolate
Compiler Version
v0.5.7+commit.6da8b019
Contract Source Code (Solidity)
/** *Submitted for verification at FtmScan.com on 2021-11-17 */ // SPDX-License-Identifier: MIT /** ██╗ ██╗██████╗ ███████╗███╗ ███╗ █████╗ ██████╗ ████████╗ ██████╗ ██████╗ ███╗ ██╗████████╗██████╗ █████╗ ██████╗████████╗███████╗ ██████╗ ██████╗ ███╗ ███╗ ██║ ██║██╔══██╗██╔════╝████╗ ████║██╔══██╗██╔══██╗╚══██╔══╝██╔════╝██╔═══██╗████╗ ██║╚══██╔══╝██╔══██╗██╔══██╗██╔════╝╚══██╔══╝██╔════╝ ██╔════╝██╔═══██╗████╗ ████║ ██║ █╗ ██║██████╔╝███████╗██╔████╔██║███████║██████╔╝ ██║ ██║ ██║ ██║██╔██╗ ██║ ██║ ██████╔╝███████║██║ ██║ ███████╗ ██║ ██║ ██║██╔████╔██║ ██║███╗██║██╔═══╝ ╚════██║██║╚██╔╝██║██╔══██║██╔══██╗ ██║ ██║ ██║ ██║██║╚██╗██║ ██║ ██╔══██╗██╔══██║██║ ██║ ╚════██║ ██║ ██║ ██║██║╚██╔╝██║ ╚███╔███╔╝██║ ███████║██║ ╚═╝ ██║██║ ██║██║ ██║ ██║ ╚██████╗╚██████╔╝██║ ╚████║ ██║ ██║ ██║██║ ██║╚██████╗ ██║ ███████║██╗╚██████╗╚██████╔╝██║ ╚═╝ ██║ ╚══╝╚══╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ Blockchain Made Easy http://wpsmartcontracts.com/ */ pragma solidity ^0.5.7; /** * @title SafeMath * @dev Math operations with safety checks that revert on error */ library SafeMath { int256 constant private INT256_MIN = -2**255; /** * @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 Multiplies two signed integers, reverts on overflow. */ function mul(int256 a, int256 b) internal pure returns (int256) { // 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; } require(!(a == -1 && b == INT256_MIN)); // This is the only case of overflow not detected by the check below int256 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 Integer division of two signed integers truncating the quotient, reverts on division by zero. */ function div(int256 a, int256 b) internal pure returns (int256) { require(b != 0); // Solidity only automatically asserts when dividing by 0 require(!(b == -1 && a == INT256_MIN)); // This is the only case of overflow int256 c = a / b; 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 Subtracts two signed integers, reverts on overflow. */ function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); 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 Adds two signed integers, reverts on overflow. */ function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && 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://github.com/ethereum/EIPs/issues/20 */ interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); 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); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ERC20 is IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowed; uint256 private _totalSupply; /** * @dev Public parameters to define the token */ // Token symbol (short) string public symbol; // Token name (Long) string public name; // Decimals (18 maximum) uint8 public decimals; /** * @dev Public functions to make the contract accesible */ constructor (address initialAccount, string memory _tokenSymbol, string memory _tokenName, uint256 initialBalance) public { // Initialize Contract Parameters symbol = _tokenSymbol; name = _tokenName; decimals = 18; // default decimals is going to be 18 always _mint(initialAccount, initialBalance); } /** * @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 An 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 for 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) { require(spender != address(0)); _allowed[msg.sender][spender] = value; emit Approval(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) { _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value); _transfer(from, to, value); emit Approval(from, msg.sender, _allowed[from][msg.sender]); return true; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when allowed_[_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) { require(spender != address(0)); _allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue); emit Approval(msg.sender, spender, _allowed[msg.sender][spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when allowed_[_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) { require(spender != address(0)); _allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue); emit Approval(msg.sender, spender, _allowed[msg.sender][spender]); 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 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 { _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(value); _burn(account, value); emit Approval(account, msg.sender, _allowed[account][msg.sender]); } } /** * @title Burnable Token * @dev Token that can be irreversibly burned (destroyed). */ contract ERC20Burnable is ERC20 { bool private _burnableActive; /** * @dev Burns a specific amount of tokens. * @param value The amount of token to be burned. */ function burn(uint256 value) public whenBurnableActive { _burn(msg.sender, value); } /** * @dev Burns a specific amount of tokens from the target address and decrements allowance * @param from address The address which you want to send tokens from * @param value uint256 The amount of token to be burned */ function burnFrom(address from, uint256 value) public whenBurnableActive { _burnFrom(from, value); } /** * @dev Options to activate or deactivate Burn ability */ function _setBurnableActive(bool _active) internal { _burnableActive = _active; } modifier whenBurnableActive() { require(_burnableActive); _; } } /** * @title Roles * @dev Library for managing addresses assigned to a Role. */ library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev give an account access to this role */ function add(Role storage role, address account) internal { require(account != address(0)); require(!has(role, account)); role.bearer[account] = true; } /** * @dev remove an account's access to this role */ function remove(Role storage role, address account) internal { require(account != address(0)); require(has(role, account)); role.bearer[account] = false; } /** * @dev check if an account has this role * @return bool */ function has(Role storage role, address account) internal view returns (bool) { require(account != address(0)); return role.bearer[account]; } } contract MinterRole { using Roles for Roles.Role; event MinterAdded(address indexed account); event MinterRemoved(address indexed account); Roles.Role private _minters; constructor () internal { _addMinter(msg.sender); } modifier onlyMinter() { require(isMinter(msg.sender)); _; } function isMinter(address account) public view returns (bool) { return _minters.has(account); } function addMinter(address account) public onlyMinter { _addMinter(account); } function renounceMinter() public { _removeMinter(msg.sender); } function _addMinter(address account) internal { _minters.add(account); emit MinterAdded(account); } function _removeMinter(address account) internal { _minters.remove(account); emit MinterRemoved(account); } } /** * @title ERC20Mintable * @dev ERC20 minting logic */ contract ERC20Mintable is ERC20, MinterRole { bool private _mintableActive; /** * @dev Function to mint tokens * @param to The address that will receive the minted tokens. * @param value The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address to, uint256 value) public onlyMinter whenMintableActive returns (bool) { _mint(to, value); return true; } /** * @dev Options to activate or deactivate Burn ability */ function _setMintableActive(bool _active) internal { _mintableActive = _active; } modifier whenMintableActive() { require(_mintableActive); _; } } contract PauserRole { using Roles for Roles.Role; event PauserAdded(address indexed account); event PauserRemoved(address indexed account); Roles.Role private _pausers; constructor () internal { _addPauser(msg.sender); } modifier onlyPauser() { require(isPauser(msg.sender)); _; } function isPauser(address account) public view returns (bool) { return _pausers.has(account); } function addPauser(address account) public onlyPauser { _addPauser(account); } function renouncePauser() public { _removePauser(msg.sender); } function _addPauser(address account) internal { _pausers.add(account); emit PauserAdded(account); } function _removePauser(address account) internal { _pausers.remove(account); emit PauserRemoved(account); } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is PauserRole { event Paused(address account); event Unpaused(address account); bool private _pausableActive; bool private _paused; constructor () internal { _paused = false; } /** * @return true if the contract is paused, false otherwise. */ function paused() public view returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!_paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(_paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() public onlyPauser whenNotPaused whenPausableActive { _paused = true; emit Paused(msg.sender); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() public onlyPauser whenPaused whenPausableActive { _paused = false; emit Unpaused(msg.sender); } /** * @dev Options to activate or deactivate Pausable ability */ function _setPausableActive(bool _active) internal { _pausableActive = _active; } modifier whenPausableActive() { require(_pausableActive); _; } } /** * @title Advanced ERC20 token * * @dev Implementation of the basic standard token plus mint and burn public functions. * * Version 2. This version delegates the minter and pauser renounce to parent-factory contract * that allows ICOs to be minter for token selling * */ contract ERC20Chocolate is ERC20, ERC20Burnable, ERC20Mintable, Pausable { // maximum capital, if defined > 0 uint256 private _cap; constructor ( address initialAccount, string memory _tokenSymbol, string memory _tokenName, uint256 initialBalance, uint256 cap, bool _burnableOption, bool _mintableOption, bool _pausableOption ) public ERC20(initialAccount, _tokenSymbol, _tokenName, initialBalance) { // we must add customer account as the first minter addMinter(initialAccount); // add customer as pauser addPauser(initialAccount); if (cap > 0) { _cap = cap; // maximum capitalization limited } else { _cap = 0; // unlimited capitalization } // activate or deactivate options _setBurnableActive(_burnableOption); _setMintableActive(_mintableOption); _setPausableActive(_pausableOption); } /** * @return the cap for the token minting. */ function cap() public view returns (uint256) { return _cap; } /** * limit the mint to a maximum cap only if cap is defined */ function _mint(address account, uint256 value) internal { if (_cap > 0) { require(totalSupply().add(value) <= _cap); } super._mint(account, value); } /** * Pausable options */ function transfer(address to, uint256 value) public whenNotPaused returns (bool) { return super.transfer(to, value); } function transferFrom(address from,address to, uint256 value) public whenNotPaused returns (bool) { return super.transferFrom(from, to, value); } function approve(address spender, uint256 value) public whenNotPaused returns (bool) { return super.approve(spender, value); } function increaseAllowance(address spender, uint addedValue) public whenNotPaused returns (bool success) { return super.increaseAllowance(spender, addedValue); } function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused returns (bool success) { return super.decreaseAllowance(spender, subtractedValue); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","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":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"mint","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":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","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":"from","type":"address"},{"name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"success","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":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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"},{"inputs":[{"name":"initialAccount","type":"address"},{"name":"_tokenSymbol","type":"string"},{"name":"_tokenName","type":"string"},{"name":"initialBalance","type":"uint256"},{"name":"cap","type":"uint256"},{"name":"_burnableOption","type":"bool"},{"name":"_mintableOption","type":"bool"},{"name":"_pausableOption","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","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
60806040523480156200001157600080fd5b50604051620015f2380380620015f283398101806040526101008110156200003857600080fd5b8151602083018051919392830192916401000000008111156200005a57600080fd5b820160208101848111156200006e57600080fd5b81516401000000008111828201871017156200008957600080fd5b50509291906020018051640100000000811115620000a657600080fd5b82016020810184811115620000ba57600080fd5b8151640100000000811182820187101715620000d557600080fd5b505060208083015160408401516060850151608086015160a0909601518951959850929650909490939092899189918991899162000119916003918601906200053e565b5081516200012f9060049060208501906200053e565b506005805460ff19166012179055620001508482620001fd602090811b901c565b5050505062000165336200025960201b60201c565b6200017633620002ab60201b60201c565b6009805461ff00191690556200019388620002fd602090811b901c565b620001a4886200032c60201b60201c565b8315620001b657600a849055620001bc565b6000600a555b620001cd836200035860201b60201c565b620001de826200037260201b60201c565b620001ef816200038560201b60201c565b5050505050505050620005e0565b600a54156200023e57600a5462000232826200021e6200039860201b60201c565b6200039f60201b62000e681790919060201c565b11156200023e57600080fd5b620002558282620003b960201b62000e7a1760201c565b5050565b620002748160066200047260201b62000f6a1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b620002c68160086200047260201b62000f6a1790919060201c565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6200030e33620004c860201b60201c565b6200031857600080fd5b62000329816200025960201b60201c565b50565b6200033d33620004eb60201b60201c565b6200034757600080fd5b6200032981620002ab60201b60201c565b600580549115156101000261ff0019909216919091179055565b6007805460ff1916911515919091179055565b6009805460ff1916911515919091179055565b6002545b90565b600082820183811015620003b257600080fd5b9392505050565b6001600160a01b038216620003cd57600080fd5b620003e9816002546200039f60201b62000e681790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200041c91839062000e686200039f821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0381166200048657600080fd5b6200049882826200050860201b60201c565b15620004a357600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000620004e58260066200050860201b62000b2d1790919060201c565b92915050565b6000620004e58260086200050860201b62000b2d1790919060201c565b60006001600160a01b0382166200051e57600080fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200058157805160ff1916838001178555620005b1565b82800160010185558215620005b1579182015b82811115620005b157825182559160200191906001019062000594565b50620005bf929150620005c3565b5090565b6200039c91905b80821115620005bf5760008155600101620005ca565b61100280620005f06000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80636ef8d66d116100c3578063983b2d561161007c578063983b2d56146103cd57806398650275146103f3578063a457c2d7146103fb578063a9059cbb14610427578063aa271e1a14610453578063dd62ed3e1461047957610158565b80636ef8d66d1461033d57806370a082311461034557806379cc67901461036b57806382dc1ec4146103975780638456cb59146103bd57806395d89b41146103c557610158565b8063395093511161011557806339509351146102905780633f4ba83a146102bc57806340c10f19146102c657806342966c68146102f257806346fbf68e1461030f5780635c975abb1461033557610158565b806306fdde031461015d578063095ea7b3146101da57806318160ddd1461021a57806323b872dd14610234578063313ce5671461026a578063355274ea14610288575b600080fd5b6101656104a7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019f578181015183820152602001610187565b50505050905090810190601f1680156101cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610206600480360360408110156101f057600080fd5b506001600160a01b038135169060200135610535565b604080519115158252519081900360200190f35b61022261055e565b60408051918252519081900360200190f35b6102066004803603606081101561024a57600080fd5b506001600160a01b03813581169160208101359091169060400135610564565b61027261058f565b6040805160ff9092168252519081900360200190f35b610222610598565b610206600480360360408110156102a657600080fd5b506001600160a01b03813516906020013561059e565b6102c46105c0565b005b610206600480360360408110156102dc57600080fd5b506001600160a01b038135169060200135610635565b6102c46004803603602081101561030857600080fd5b503561066b565b6102066004803603602081101561032557600080fd5b50356001600160a01b031661068c565b6102066106a5565b6102c46106b3565b6102226004803603602081101561035b57600080fd5b50356001600160a01b03166106be565b6102c46004803603604081101561038157600080fd5b506001600160a01b0381351690602001356106d9565b6102c4600480360360208110156103ad57600080fd5b50356001600160a01b03166106fb565b6102c4610716565b610165610790565b6102c4600480360360208110156103e357600080fd5b50356001600160a01b03166107eb565b6102c4610806565b6102066004803603604081101561041157600080fd5b506001600160a01b03813516906020013561080f565b6102066004803603604081101561043d57600080fd5b506001600160a01b038135169060200135610831565b6102066004803603602081101561046957600080fd5b50356001600160a01b0316610853565b6102226004803603604081101561048f57600080fd5b506001600160a01b0381358116916020013516610866565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561052d5780601f106105025761010080835404028352916020019161052d565b820191906000526020600020905b81548152906001019060200180831161051057829003601f168201915b505050505081565b600954600090610100900460ff161561054d57600080fd5b6105578383610891565b9392505050565b60025490565b600954600090610100900460ff161561057c57600080fd5b6105878484846108fb565b949350505050565b60055460ff1681565b600a5490565b600954600090610100900460ff16156105b657600080fd5b61055783836109b2565b6105c93361068c565b6105d257600080fd5b600954610100900460ff166105e657600080fd5b60095460ff166105f557600080fd5b6009805461ff00191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b600061064033610853565b61064957600080fd5b60075460ff1661065857600080fd5b6106628383610a4e565b50600192915050565b600554610100900460ff1661067f57600080fd5b6106893382610a86565b50565b600061069f60088363ffffffff610b2d16565b92915050565b600954610100900460ff1690565b6106bc33610b62565b565b6001600160a01b031660009081526020819052604090205490565b600554610100900460ff166106ed57600080fd5b6106f78282610baa565b5050565b6107043361068c565b61070d57600080fd5b61068981610c5a565b61071f3361068c565b61072857600080fd5b600954610100900460ff161561073d57600080fd5b60095460ff1661074c57600080fd5b6009805461ff0019166101001790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561052d5780601f106105025761010080835404028352916020019161052d565b6107f433610853565b6107fd57600080fd5b61068981610ca2565b6106bc33610cea565b600954600090610100900460ff161561082757600080fd5b6105578383610d32565b600954600090610100900460ff161561084957600080fd5b6105578383610d7b565b600061069f60068363ffffffff610b2d16565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60006001600160a01b0383166108a657600080fd5b3360008181526001602090815260408083206001600160a01b0388168085529083529281902086905580518681529051929392600080516020610fb7833981519152929181900390910190a350600192915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205461092f908363ffffffff610d8816565b6001600160a01b038516600090815260016020908152604080832033845290915290205561095e848484610d9d565b6001600160a01b038416600081815260016020908152604080832033808552908352928190205481519081529051929392600080516020610fb7833981519152929181900390910190a35060019392505050565b60006001600160a01b0383166109c757600080fd5b3360009081526001602090815260408083206001600160a01b03871684529091529020546109fb908363ffffffff610e6816565b3360008181526001602090815260408083206001600160a01b038916808552908352928190208590558051948552519193600080516020610fb7833981519152929081900390910190a350600192915050565b600a5415610a7c57600a54610a7182610a6561055e565b9063ffffffff610e6816565b1115610a7c57600080fd5b6106f78282610e7a565b6001600160a01b038216610a9957600080fd5b600254610aac908263ffffffff610d8816565b6002556001600160a01b038216600090815260208190526040902054610ad8908263ffffffff610d8816565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b60006001600160a01b038216610b4257600080fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610b7360088263ffffffff610f2216565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b6001600160a01b0382166000908152600160209081526040808320338452909152902054610bde908263ffffffff610d8816565b6001600160a01b0383166000908152600160209081526040808320338452909152902055610c0c8282610a86565b6001600160a01b038216600081815260016020908152604080832033808552908352928190205481519081529051929392600080516020610fb7833981519152929181900390910190a35050565b610c6b60088263ffffffff610f6a16565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b610cb360068263ffffffff610f6a16565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610cfb60068263ffffffff610f2216565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b038316610d4757600080fd5b3360009081526001602090815260408083206001600160a01b03871684529091529020546109fb908363ffffffff610d8816565b6000610662338484610d9d565b600082821115610d9757600080fd5b50900390565b6001600160a01b038216610db057600080fd5b6001600160a01b038316600090815260208190526040902054610dd9908263ffffffff610d8816565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610e0e908263ffffffff610e6816565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282018381101561055757600080fd5b6001600160a01b038216610e8d57600080fd5b600254610ea0908263ffffffff610e6816565b6002556001600160a01b038216600090815260208190526040902054610ecc908263ffffffff610e6816565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038116610f3557600080fd5b610f3f8282610b2d565b610f4857600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038116610f7d57600080fd5b610f878282610b2d565b15610f9157600080fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820d03d7aecc5161b6e63a56f085bd0a03db52d5d1427cca2a75970798b5d4d02610029000000000000000000000000e1440fde576eaa0f4cbc2ab3d063225c3b5c701e0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000d3c21bcecceda1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000024d5400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000094d7920546f6b656e320000000000000000000000000000000000000000000000
Deployed ByteCode Sourcemap
21517:2290:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21517:2290:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7456:19;;;:::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;7456:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23286:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23286:140:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8051:91;;;:::i;:::-;;;;;;;;;;;;;;;;23119:159;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23119:159:0;;;;;;;;;;;;;;;;;:::i;7514:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22570:75;;;:::i;23434:175::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23434:175:0;;;;;;;;:::i;20800:137::-;;;:::i;:::-;;18222:150;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18222:150:0;;;;;;;;:::i;15169:98::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15169:98:0;;:::i;19020:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19020:109:0;-1:-1:-1;;;;;19020:109:0;;:::i;20034:78::-;;;:::i;19237:77::-;;;:::i;8358:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8358:106:0;-1:-1:-1;;;;;8358:106:0;;:::i;15526:114::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15526:114:0;;;;;;;;:::i;19137:92::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19137:92:0;-1:-1:-1;;;;;19137:92:0;;:::i;20570:135::-;;;:::i;7401:20::-;;;:::i;17371:92::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17371:92:0;-1:-1:-1;;;;;17371:92:0;;:::i;17471:77::-;;;:::i;23617:185::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23617:185:0;;;;;;;;:::i;22979:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;22979:132:0;;;;;;;;:::i;17254:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17254:109:0;-1:-1:-1;;;;;17254:109:0;;:::i;8803:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8803:131:0;;;;;;;;;;:::i;7456:19::-;;;;;;;;;;;;;;;-1:-1:-1;;7456:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23286:140::-;20271:7;;23365:4;;20271:7;;;;;20270:8;20262:17;;;;;;23389:29;23403:7;23412:5;23389:13;:29::i;:::-;23382:36;23286:140;-1:-1:-1;;;23286:140:0:o;8051:91::-;8122:12;;8051:91;:::o;23119:159::-;20271:7;;23211:4;;20271:7;;;;;20270:8;20262:17;;;;;;23235:35;23254:4;23260:2;23264:5;23235:18;:35::i;:::-;23228:42;23119:159;-1:-1:-1;;;;23119:159:0:o;7514:21::-;;;;;;:::o;22570:75::-;22633:4;;22570:75;:::o;23434:175::-;20271:7;;23525:12;;20271:7;;;;;20270:8;20262:17;;;;;;23557:44;23581:7;23590:10;23557:23;:44::i;20800:137::-;18971:20;18980:10;18971:8;:20::i;:::-;18963:29;;;;;;20450:7;;;;;;;20442:16;;;;;;21181:15;;;;21173:24;;;;;;20878:7;:15;;-1:-1:-1;;20878:15:0;;;20909:20;;;20918:10;20909:20;;;;;;;;;;;;;20800:137::o;18222:150::-;18309:4;17205:20;17214:10;17205:8;:20::i;:::-;17197:29;;;;;;18612:15;;;;18604:24;;;;;;18326:16;18332:2;18336:5;18326;:16::i;:::-;-1:-1:-1;18360:4:0;18222:150;;;;:::o;15169:98::-;15880:15;;;;;;;15872:24;;;;;;15235;15241:10;15253:5;15235;:24::i;:::-;15169:98;:::o;19020:109::-;19076:4;19100:21;:8;19113:7;19100:21;:12;:21;:::i;:::-;19093:28;19020:109;-1:-1:-1;;19020:109:0:o;20034:78::-;20097:7;;;;;;;;20034:78::o;19237:77::-;19281:25;19295:10;19281:13;:25::i;:::-;19237:77::o;8358:106::-;-1:-1:-1;;;;;8440:16:0;8413:7;8440:16;;;;;;;;;;;;8358:106::o;15526:114::-;15880:15;;;;;;;15872:24;;;;;;15610:22;15620:4;15626:5;15610:9;:22::i;:::-;15526:114;;:::o;19137:92::-;18971:20;18980:10;18971:8;:20::i;:::-;18963:29;;;;;;19202:19;19213:7;19202:10;:19::i;20570:135::-;18971:20;18980:10;18971:8;:20::i;:::-;18963:29;;;;;;20271:7;;;;;;;20270:8;20262:17;;;;;;21181:15;;;;21173:24;;;;;;20649:7;:14;;-1:-1:-1;;20649:14:0;;;;;20679:18;;;20686:10;20679:18;;;;;;;;;;;;;20570:135::o;7401:20::-;;;;;;;;;;;;;;;-1:-1:-1;;7401:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17371:92;17205:20;17214:10;17205:8;:20::i;:::-;17197:29;;;;;;17436:19;17447:7;17436:10;:19::i;17471:77::-;17515:25;17529:10;17515:13;:25::i;23617:185::-;20271:7;;23713:12;;20271:7;;;;;20270:8;20262:17;;;;;;23745:49;23769:7;23778:15;23745:23;:49::i;22979:132::-;20271:7;;23054:4;;20271:7;;;;;20270:8;20262:17;;;;;;23078:25;23093:2;23097:5;23078:14;:25::i;17254:109::-;17310:4;17334:21;:8;17347:7;17334:21;:12;:21;:::i;8803:131::-;-1:-1:-1;;;;;8902:15:0;;;8875:7;8902:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;8803:131::o;9892:244::-;9957:4;-1:-1:-1;;;;;9982:21:0;;9974:30;;;;;;10026:10;10017:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;10017:29:0;;;;;;;;;;;;:37;;;10070:36;;;;;;;10017:29;;10026:10;-1:-1:-1;;;;;;;;;;;10070:36:0;;;;;;;;;;-1:-1:-1;10124:4:0;9892:244;;;;:::o;10609:299::-;-1:-1:-1;;;;;10734:14:0;;10688:4;10734:14;;;:8;:14;;;;;;;;10749:10;10734:26;;;;;;;;:37;;10765:5;10734:37;:30;:37;:::i;:::-;-1:-1:-1;;;;;10705:14:0;;;;;;:8;:14;;;;;;;;10720:10;10705:26;;;;;;;:66;10782:26;10714:4;10798:2;10802:5;10782:9;:26::i;:::-;-1:-1:-1;;;;;10824:54:0;;10851:14;;;;:8;:14;;;;;;;;10839:10;10851:26;;;;;;;;;;;10824:54;;;;;;;10839:10;;10824:54;-1:-1:-1;;;;;;;;;;;10824:54:0;;;;;;;;;;-1:-1:-1;10896:4:0;10609:299;;;;;:::o;11423:323::-;11503:4;-1:-1:-1;;;;;11528:21:0;;11520:30;;;;;;11604:10;11595:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;11595:29:0;;;;;;;;;;:45;;11629:10;11595:45;:33;:45;:::i;:::-;11572:10;11563:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;11563:29:0;;;;;;;;;;;;:77;;;11656:60;;;;;;11563:29;;-1:-1:-1;;;;;;;;;;;11656:60:0;;;;;;;;;;-1:-1:-1;11734:4:0;11423:323;;;;:::o;22734:194::-;22805:4;;:8;22801:82;;22866:4;;22838:24;22856:5;22838:13;:11;:13::i;:::-;:17;:24;:17;:24;:::i;:::-;:32;;22830:41;;;;;;22893:27;22905:7;22914:5;22893:11;:27::i;13938:269::-;-1:-1:-1;;;;;14013:21:0;;14005:30;;;;;;14063:12;;:23;;14080:5;14063:23;:16;:23;:::i;:::-;14048:12;:38;-1:-1:-1;;;;;14118:18:0;;:9;:18;;;;;;;;;;;:29;;14141:5;14118:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;14097:18:0;;:9;:18;;;;;;;;;;;:50;;;;14163:36;;;;;;;14097:9;;14163:36;;;;;;;;;;;13938:269;;:::o;16719:165::-;16791:4;-1:-1:-1;;;;;16816:21:0;;16808:30;;;;;;-1:-1:-1;;;;;;16856:20:0;:11;:20;;;;;;;;;;;;;;;16719:165::o;19452:130::-;19512:24;:8;19528:7;19512:24;:15;:24;:::i;:::-;19552:22;;-1:-1:-1;;;;;19552:22:0;;;;;;;;19452:130;:::o;14606:259::-;-1:-1:-1;;;;;14709:17:0;;;;;;:8;:17;;;;;;;;14727:10;14709:29;;;;;;;;:40;;14743:5;14709:40;:33;:40;:::i;:::-;-1:-1:-1;;;;;14677:17:0;;;;;;:8;:17;;;;;;;;14695:10;14677:29;;;;;;;:72;14760:21;14686:7;14775:5;14760;:21::i;:::-;-1:-1:-1;;;;;14797:60:0;;14827:17;;;;:8;:17;;;;;;;;14815:10;14827:29;;;;;;;;;;;14797:60;;;;;;;14815:10;;14797:60;-1:-1:-1;;;;;;;;;;;14797:60:0;;;;;;;;;;14606:259;;:::o;19322:122::-;19379:21;:8;19392:7;19379:21;:12;:21;:::i;:::-;19416:20;;-1:-1:-1;;;;;19416:20:0;;;;;;;;19322:122;:::o;17556:::-;17613:21;:8;17626:7;17613:21;:12;:21;:::i;:::-;17650:20;;-1:-1:-1;;;;;17650:20:0;;;;;;;;17556:122;:::o;17686:130::-;17746:24;:8;17762:7;17746:24;:15;:24;:::i;:::-;17786:22;;-1:-1:-1;;;;;17786:22:0;;;;;;;;17686:130;:::o;12266:333::-;12351:4;-1:-1:-1;;;;;12376:21:0;;12368:30;;;;;;12452:10;12443:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;12443:29:0;;;;;;;;;;:50;;12477:15;12443:50;:33;:50;:::i;9105:140::-;9166:4;9183:32;9193:10;9205:2;9209:5;9183:9;:32::i;5100:150::-;5158:7;5191:1;5186;:6;;5178:15;;;;;;-1:-1:-1;5216:5:0;;;5100:150::o;12821:262::-;-1:-1:-1;;;;;12909:16:0;;12901:25;;;;;;-1:-1:-1;;;;;12957:15:0;;:9;:15;;;;;;;;;;;:26;;12977:5;12957:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;12939:15:0;;;:9;:15;;;;;;;;;;;:44;;;;13010:13;;;;;;;:24;;13028:5;13010:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;12994:13:0;;;:9;:13;;;;;;;;;;;;:40;;;;13050:25;;;;;;;12994:13;;13050:25;;;;;;;;;;;;;12821:262;;;:::o;5603:150::-;5661:7;5693:5;;;5717:6;;;;5709:15;;;;;13435:269;-1:-1:-1;;;;;13510:21:0;;13502:30;;;;;;13560:12;;:23;;13577:5;13560:23;:16;:23;:::i;:::-;13545:12;:38;-1:-1:-1;;;;;13615:18:0;;:9;:18;;;;;;;;;;;:29;;13638:5;13615:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;13594:18:0;;:9;:18;;;;;;;;;;;:50;;;;13660:36;;;;;;;13594:18;;:9;;13660:36;;;;;;;;;;13435:269;;:::o;16436:189::-;-1:-1:-1;;;;;16516:21:0;;16508:30;;;;;;16557:18;16561:4;16567:7;16557:3;:18::i;:::-;16549:27;;;;;;-1:-1:-1;;;;;16589:20:0;16612:5;16589:20;;;;;;;;;;;:28;;-1:-1:-1;;16589:28:0;;;16436:189::o;16171:186::-;-1:-1:-1;;;;;16248:21:0;;16240:30;;;;;;16290:18;16294:4;16300:7;16290:3;:18::i;:::-;16289:19;16281:28;;;;;;-1:-1:-1;;;;;16322:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;16322:27:0;16345:4;16322:27;;;16171:186::o
Swarm Source
bzzr://d03d7aecc5161b6e63a56f085bd0a03db52d5d1427cca2a75970798b5d4d0261
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Validator ID :
0 FTM
Amount Staked
0
Amount Delegated
0
Staking Total
0
Staking Start Epoch
0
Staking Start Time
0
Proof of Importance
0
Origination Score
0
Validation Score
0
Active
0
Online
0
Downtime
0 s
Address | Amount | claimed Rewards | Created On Epoch | Created On |
---|