Overview
CELO Balance
CELO Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Multichain Info
Latest 25 from a total of 1,179 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 54852223 | 36 days ago | IN | 0 CELO | 0.00116318 | ||||
| Transfer | 47988048 | 116 days ago | IN | 0 CELO | 0.00116827 | ||||
| Transfer | 47987836 | 116 days ago | IN | 0 CELO | 0.00116827 | ||||
| Transfer | 42337951 | 181 days ago | IN | 0 CELO | 0.00116827 | ||||
| Approve | 29792855 | 385 days ago | IN | 0 CELO | 0.00024327 | ||||
| Approve | 29245913 | 416 days ago | IN | 0 CELO | 0.00012273 | ||||
| Approve | 27466807 | 519 days ago | IN | 0 CELO | 0.00046287 | ||||
| Approve | 24612917 | 685 days ago | IN | 0 CELO | 0.00046287 | ||||
| Approve | 24461961 | 693 days ago | IN | 0 CELO | 0.00046575 | ||||
| Approve | 24403175 | 697 days ago | IN | 0 CELO | 0.00046287 | ||||
| Approve | 24152673 | 711 days ago | IN | 0 CELO | 0.00046575 | ||||
| Approve | 23711840 | 737 days ago | IN | 0 CELO | 0.00024291 | ||||
| Approve | 23705606 | 737 days ago | IN | 0 CELO | 0.00024303 | ||||
| Approve | 23705588 | 737 days ago | IN | 0 CELO | 0.00024303 | ||||
| Approve | 23384029 | 756 days ago | IN | 0 CELO | 0.00024303 | ||||
| Approve | 23083326 | 773 days ago | IN | 0 CELO | 0.00024291 | ||||
| Approve | 22189394 | 825 days ago | IN | 0 CELO | 0.00024303 | ||||
| Approve | 22105272 | 830 days ago | IN | 0 CELO | 0.00017012 | ||||
| Approve | 21939140 | 839 days ago | IN | 0 CELO | 0.00024303 | ||||
| Approve | 21839005 | 845 days ago | IN | 0 CELO | 0.00024303 | ||||
| Approve | 20336788 | 932 days ago | IN | 0 CELO | 0.00112437 | ||||
| Approve | 20243311 | 938 days ago | IN | 0 CELO | 0.00058207 | ||||
| Approve | 20243310 | 938 days ago | IN | 0 CELO | 0.00058182 | ||||
| Approve | 19543230 | 978 days ago | IN | 0 CELO | 0.00058207 | ||||
| Approve | 19437598 | 984 days ago | IN | 0 CELO | 0.00062777 |
View more zero value Internal Transactions in Advanced View mode
Cross-Chain Transactions
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract PToken is ERC20, Ownable {
mapping(address => bool) public supplyManagers;
constructor(string memory symbol, string memory name) ERC20(symbol, name) {}
event SupplyManagerAdded(address indexed supplyManager);
event SupplyManagerRenounced(address indexed supplyManager);
modifier onlySupplyManager() {
require(supplyManagers[msg.sender], "PToken: caller is not a supply manager");
_;
}
function mint(address _to, uint256 _amount) external onlySupplyManager {
_mint(_to, _amount);
}
function burn(address _from, uint256 _amount) external onlySupplyManager {
_burn(_from, _amount);
}
function addSupplyManager(address _supplyManager) external onlyOwner {
supplyManagers[_supplyManager] = true;
emit SupplyManagerAdded(_supplyManager);
}
function renounceSupplyManager(address _supplyManager) external onlyOwner {
supplyManagers[_supplyManager] = false;
emit SupplyManagerRenounced(_supplyManager);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_setOwner(_msgSender());
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_setOwner(newOwner);
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* TIP: For a detailed writeup see our guide
* https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* We have followed general OpenZeppelin Contracts guidelines: functions revert
* instead returning `false` on failure. This behavior is nonetheless
* conventional and does not conflict with the expectations of ERC20
* applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
*
* Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
* functions have been added to mitigate the well-known issues around setting
* allowances. See {IERC20-approve}.
*/
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* The default value of {decimals} is 18. To select a different value for
* {decimals} you should overload it.
*
* All two of these values are immutable: they can only be set once during
* construction.
*/
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual override returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5.05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the value {ERC20} uses, unless this function is
* overridden;
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IERC20-balanceOf} and {IERC20-transfer}.
*/
function decimals() public view virtual override returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `recipient` cannot be the zero address.
* - the caller must have a balance of at least `amount`.
*/
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* Requirements:
*
* - `sender` and `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
* - the caller must have allowance for ``sender``'s tokens of at least
* `amount`.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
return true;
}
/**
* @dev Atomically increases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}
/**
* @dev Atomically decreases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `spender` must have allowance for the caller of at least
* `subtractedValue`.
*/
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
/**
* @dev Moves `amount` of tokens from `sender` to `recipient`.
*
* This internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* Requirements:
*
* - `sender` cannot be the zero address.
* - `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
*/
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
_afterTokenTransfer(sender, recipient, amount);
}
/** @dev Creates `amount` tokens and assigns them to `account`, increasing
* the total supply.
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
/**
* @dev Destroys `amount` tokens from `account`, reducing the
* total supply.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
* - `account` must have at least `amount` tokens.
*/
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
}
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
/**
* @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*/
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
/**
* @dev Hook that is called before any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* will be transferred to `to`.
* - when `from` is zero, `amount` tokens will be minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens will be burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
/**
* @dev Hook that is called after any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* has been transferred to `to`.
* - when `from` is zero, `amount` tokens have been minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens have been burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: 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
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../IERC20.sol";
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*
* _Available since v4.1._
*/
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}{
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": [],
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"supplyManager","type":"address"}],"name":"SupplyManagerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"supplyManager","type":"address"}],"name":"SupplyManagerRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_supplyManager","type":"address"}],"name":"addSupplyManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_supplyManager","type":"address"}],"name":"renounceSupplyManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"supplyManagers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b506040516200122438038062001224833981016040819052620000349162000237565b8151829082906200004d906003906020850190620000de565b50805162000063906004906020840190620000de565b505050620000806200007a6200008860201b60201c565b6200008c565b5050620002f1565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620000ec906200029e565b90600052602060002090601f0160209004810192826200011057600085556200015b565b82601f106200012b57805160ff19168380011785556200015b565b828001600101855582156200015b579182015b828111156200015b5782518255916020019190600101906200013e565b50620001699291506200016d565b5090565b5b808211156200016957600081556001016200016e565b600082601f83011262000195578081fd5b81516001600160401b0380821115620001b257620001b2620002db565b604051601f8301601f19908116603f01168101908282118183101715620001dd57620001dd620002db565b81604052838152602092508683858801011115620001f9578485fd5b8491505b838210156200021c5785820183015181830184015290820190620001fd565b838211156200022d57848385830101525b9695505050505050565b600080604083850312156200024a578182fd5b82516001600160401b038082111562000261578384fd5b6200026f8683870162000184565b9350602085015191508082111562000285578283fd5b50620002948582860162000184565b9150509250929050565b600181811c90821680620002b357607f821691505b60208210811415620002d557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610f2380620003016000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d71461023a578063a9059cbb1461024d578063d785402914610260578063dd62ed3e14610283578063f2fde38b146102bc57610121565b806370a08231146101e9578063715018a6146101fc5780638da5cb5b1461020457806395d89b411461021f5780639dc29fac1461022757610121565b8063313ce567116100f4578063313ce5671461018c578063395093511461019b57806340c10f19146101ae57806359e1b561146101c35780635ccd046f146101d657610121565b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102cf565b60405161013b9190610d9f565b60405180910390f35b610157610152366004610d76565b610361565b604051901515815260200161013b565b6002545b60405190815260200161013b565b610157610187366004610d3b565b610377565b6040516012815260200161013b565b6101576101a9366004610d76565b610426565b6101c16101bc366004610d76565b610462565b005b6101c16101d1366004610ce8565b61049f565b6101c16101e4366004610ce8565b610511565b61016b6101f7366004610ce8565b610587565b6101c16105a6565b6005546040516001600160a01b03909116815260200161013b565b61012e6105dc565b6101c1610235366004610d76565b6105eb565b610157610248366004610d76565b610624565b61015761025b366004610d76565b6106bd565b61015761026e366004610ce8565b60066020526000908152604090205460ff1681565b61016b610291366004610d09565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101c16102ca366004610ce8565b6106ca565b6060600380546102de90610e9c565b80601f016020809104026020016040519081016040528092919081815260200182805461030a90610e9c565b80156103575780601f1061032c57610100808354040283529160200191610357565b820191906000526020600020905b81548152906001019060200180831161033a57829003601f168201915b5050505050905090565b600061036e338484610765565b50600192915050565b600061038484848461088a565b6001600160a01b03841660009081526001602090815260408083203384529091529020548281101561040e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61041b8533858403610765565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161036e91859061045d908690610e6d565b610765565b3360009081526006602052604090205460ff166104915760405162461bcd60e51b815260040161040590610df2565b61049b8282610a59565b5050565b6005546001600160a01b031633146104c95760405162461bcd60e51b815260040161040590610e38565b6001600160a01b038116600081815260066020526040808220805460ff19169055517ec50db214cb6fc8f9b70fc81b731a190316c0ce6ad01fde3f23cd39e06da8089190a250565b6005546001600160a01b0316331461053b5760405162461bcd60e51b815260040161040590610e38565b6001600160a01b038116600081815260066020526040808220805460ff19166001179055517fdf5513b99444998e936692cf33445eb3a1b1b569ff66a2922a8dc31ed439ebd79190a250565b6001600160a01b0381166000908152602081905260409020545b919050565b6005546001600160a01b031633146105d05760405162461bcd60e51b815260040161040590610e38565b6105da6000610b39565b565b6060600480546102de90610e9c565b3360009081526006602052604090205460ff1661061a5760405162461bcd60e51b815260040161040590610df2565b61049b8282610b8b565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156106a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610405565b6106b33385858403610765565b5060019392505050565b600061036e33848461088a565b6005546001600160a01b031633146106f45760405162461bcd60e51b815260040161040590610e38565b6001600160a01b0381166107595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610405565b61076281610b39565b50565b6001600160a01b0383166107c75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610405565b6001600160a01b0382166108285760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610405565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166108ee5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610405565b6001600160a01b0382166109505760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610405565b6001600160a01b038316600090815260208190526040902054818110156109c85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610405565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906109ff908490610e6d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a4b91815260200190565b60405180910390a350505050565b6001600160a01b038216610aaf5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610405565b8060026000828254610ac19190610e6d565b90915550506001600160a01b03821660009081526020819052604081208054839290610aee908490610e6d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361049b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216610beb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610405565b6001600160a01b03821660009081526020819052604090205481811015610c5f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610405565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610c8e908490610e85565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161087d565b80356001600160a01b03811681146105a157600080fd5b600060208284031215610cf9578081fd5b610d0282610cd1565b9392505050565b60008060408385031215610d1b578081fd5b610d2483610cd1565b9150610d3260208401610cd1565b90509250929050565b600080600060608486031215610d4f578081fd5b610d5884610cd1565b9250610d6660208501610cd1565b9150604084013590509250925092565b60008060408385031215610d88578182fd5b610d9183610cd1565b946020939093013593505050565b6000602080835283518082850152825b81811015610dcb57858101830151858201604001528201610daf565b81811115610ddc5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f50546f6b656e3a2063616c6c6572206973206e6f74206120737570706c79206d60408201526530b730b3b2b960d11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610e8057610e80610ed7565b500190565b600082821015610e9757610e97610ed7565b500390565b600181811c90821680610eb057607f821691505b60208210811415610ed157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212209ebfc9fa8f1a5b3f0d5bb23251f412ca462fde5ac79b3c21926559f1eb682e3b64736f6c63430008030033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000009506f6f662043454c4f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057043454c4f000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d71461023a578063a9059cbb1461024d578063d785402914610260578063dd62ed3e14610283578063f2fde38b146102bc57610121565b806370a08231146101e9578063715018a6146101fc5780638da5cb5b1461020457806395d89b411461021f5780639dc29fac1461022757610121565b8063313ce567116100f4578063313ce5671461018c578063395093511461019b57806340c10f19146101ae57806359e1b561146101c35780635ccd046f146101d657610121565b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102cf565b60405161013b9190610d9f565b60405180910390f35b610157610152366004610d76565b610361565b604051901515815260200161013b565b6002545b60405190815260200161013b565b610157610187366004610d3b565b610377565b6040516012815260200161013b565b6101576101a9366004610d76565b610426565b6101c16101bc366004610d76565b610462565b005b6101c16101d1366004610ce8565b61049f565b6101c16101e4366004610ce8565b610511565b61016b6101f7366004610ce8565b610587565b6101c16105a6565b6005546040516001600160a01b03909116815260200161013b565b61012e6105dc565b6101c1610235366004610d76565b6105eb565b610157610248366004610d76565b610624565b61015761025b366004610d76565b6106bd565b61015761026e366004610ce8565b60066020526000908152604090205460ff1681565b61016b610291366004610d09565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101c16102ca366004610ce8565b6106ca565b6060600380546102de90610e9c565b80601f016020809104026020016040519081016040528092919081815260200182805461030a90610e9c565b80156103575780601f1061032c57610100808354040283529160200191610357565b820191906000526020600020905b81548152906001019060200180831161033a57829003601f168201915b5050505050905090565b600061036e338484610765565b50600192915050565b600061038484848461088a565b6001600160a01b03841660009081526001602090815260408083203384529091529020548281101561040e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61041b8533858403610765565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161036e91859061045d908690610e6d565b610765565b3360009081526006602052604090205460ff166104915760405162461bcd60e51b815260040161040590610df2565b61049b8282610a59565b5050565b6005546001600160a01b031633146104c95760405162461bcd60e51b815260040161040590610e38565b6001600160a01b038116600081815260066020526040808220805460ff19169055517ec50db214cb6fc8f9b70fc81b731a190316c0ce6ad01fde3f23cd39e06da8089190a250565b6005546001600160a01b0316331461053b5760405162461bcd60e51b815260040161040590610e38565b6001600160a01b038116600081815260066020526040808220805460ff19166001179055517fdf5513b99444998e936692cf33445eb3a1b1b569ff66a2922a8dc31ed439ebd79190a250565b6001600160a01b0381166000908152602081905260409020545b919050565b6005546001600160a01b031633146105d05760405162461bcd60e51b815260040161040590610e38565b6105da6000610b39565b565b6060600480546102de90610e9c565b3360009081526006602052604090205460ff1661061a5760405162461bcd60e51b815260040161040590610df2565b61049b8282610b8b565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156106a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610405565b6106b33385858403610765565b5060019392505050565b600061036e33848461088a565b6005546001600160a01b031633146106f45760405162461bcd60e51b815260040161040590610e38565b6001600160a01b0381166107595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610405565b61076281610b39565b50565b6001600160a01b0383166107c75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610405565b6001600160a01b0382166108285760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610405565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166108ee5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610405565b6001600160a01b0382166109505760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610405565b6001600160a01b038316600090815260208190526040902054818110156109c85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610405565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906109ff908490610e6d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a4b91815260200190565b60405180910390a350505050565b6001600160a01b038216610aaf5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610405565b8060026000828254610ac19190610e6d565b90915550506001600160a01b03821660009081526020819052604081208054839290610aee908490610e6d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361049b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216610beb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610405565b6001600160a01b03821660009081526020819052604090205481811015610c5f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610405565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610c8e908490610e85565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161087d565b80356001600160a01b03811681146105a157600080fd5b600060208284031215610cf9578081fd5b610d0282610cd1565b9392505050565b60008060408385031215610d1b578081fd5b610d2483610cd1565b9150610d3260208401610cd1565b90509250929050565b600080600060608486031215610d4f578081fd5b610d5884610cd1565b9250610d6660208501610cd1565b9150604084013590509250925092565b60008060408385031215610d88578182fd5b610d9183610cd1565b946020939093013593505050565b6000602080835283518082850152825b81811015610dcb57858101830151858201604001528201610daf565b81811115610ddc5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f50546f6b656e3a2063616c6c6572206973206e6f74206120737570706c79206d60408201526530b730b3b2b960d11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610e8057610e80610ed7565b500190565b600082821015610e9757610e97610ed7565b500390565b600181811c90821680610eb057607f821691505b60208210811415610ed157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212209ebfc9fa8f1a5b3f0d5bb23251f412ca462fde5ac79b3c21926559f1eb682e3b64736f6c63430008030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000009506f6f662043454c4f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057043454c4f000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : symbol (string): Poof CELO
Arg [1] : name (string): pCELO
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [3] : 506f6f662043454c4f0000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 7043454c4f000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
168:1034:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:98:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4181:166;;;;;;:::i;:::-;;:::i;:::-;;;1653:14:6;;1646:22;1628:41;;1616:2;1601:18;4181:166:1;1583:92:6;3172:106:1;3259:12;;3172:106;;;7614:25:6;;;7602:2;7587:18;3172:106:1;7569:76:6;4814:478:1;;;;;;:::i;:::-;;:::i;3021:91::-;;;3103:2;7792:36:6;;7780:2;7765:18;3021:91:1;7747:87:6;5687:212:1;;;;;;:::i;:::-;;:::i;610:107:5:-;;;;;;:::i;:::-;;:::i;:::-;;1018:182;;;;;;:::i;:::-;;:::i;840:172::-;;;;;;:::i;:::-;;:::i;3336:125:1:-;;;;;;:::i;:::-;;:::i;1605:92:0:-;;;:::i;973:85::-;1045:6;;973:85;;-1:-1:-1;;;;;1045:6:0;;;1426:51:6;;1414:2;1399:18;973:85:0;1381:102:6;2295::1;;;:::i;723:111:5:-;;;;;;:::i;:::-;;:::i;6386:405:1:-;;;;;;:::i;:::-;;:::i;3664:172::-;;;;;;:::i;:::-;;:::i;208:46:5:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3894:149:1;;;;;;:::i;:::-;-1:-1:-1;;;;;4009:18:1;;;3983:7;4009:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3894:149;1846:189:0;;;;;;:::i;:::-;;:::i;2084:98:1:-;2138:13;2170:5;2163:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:98;:::o;4181:166::-;4264:4;4280:39;666:10:4;4303:7:1;4312:6;4280:8;:39::i;:::-;-1:-1:-1;4336:4:1;4181:166;;;;:::o;4814:478::-;4950:4;4966:36;4976:6;4984:9;4995:6;4966:9;:36::i;:::-;-1:-1:-1;;;;;5040:19:1;;5013:24;5040:19;;;:11;:19;;;;;;;;666:10:4;5040:33:1;;;;;;;;5091:26;;;;5083:79;;;;-1:-1:-1;;;5083:79:1;;4921:2:6;5083:79:1;;;4903:21:6;4960:2;4940:18;;;4933:30;4999:34;4979:18;;;4972:62;-1:-1:-1;;;5050:18:6;;;5043:38;5098:19;;5083:79:1;;;;;;;;;5196:57;5205:6;666:10:4;5246:6:1;5227:16;:25;5196:8;:57::i;:::-;-1:-1:-1;5281:4:1;;4814:478;-1:-1:-1;;;;4814:478:1:o;5687:212::-;666:10:4;5775:4:1;5823:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5823:34:1;;;;;;;;;;5775:4;;5791:80;;5814:7;;5823:47;;5860:10;;5823:47;:::i;:::-;5791:8;:80::i;610:107:5:-;532:10;517:26;;;;:14;:26;;;;;;;;509:77;;;;-1:-1:-1;;;509:77:5;;;;;;;:::i;:::-;691:19:::1;697:3;702:7;691:5;:19::i;:::-;610:107:::0;;:::o;1018:182::-;1045:6:0;;-1:-1:-1;;;;;1045:6:0;666:10:4;1185:23:0;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1102:30:5;::::1;1135:5;1102:30:::0;;;:14:::1;:30;::::0;;;;;:38;;-1:-1:-1;;1102:38:5::1;::::0;;1155;::::1;::::0;1135:5;1155:38:::1;1018:182:::0;:::o;840:172::-;1045:6:0;;-1:-1:-1;;;;;1045:6:0;666:10:4;1185:23:0;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;919:30:5;::::1;;::::0;;;:14:::1;:30;::::0;;;;;:37;;-1:-1:-1;;919:37:5::1;952:4;919:37;::::0;;971:34;::::1;::::0;919:30;971:34:::1;840:172:::0;:::o;3336:125:1:-;-1:-1:-1;;;;;3436:18:1;;3410:7;3436:18;;;;;;;;;;;3336:125;;;;:::o;1605:92:0:-;1045:6;;-1:-1:-1;;;;;1045:6:0;666:10:4;1185:23:0;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;1669:21:::1;1687:1;1669:9;:21::i;:::-;1605:92::o:0;2295:102:1:-;2351:13;2383:7;2376:14;;;;;:::i;723:111:5:-;532:10;517:26;;;;:14;:26;;;;;;;;509:77;;;;-1:-1:-1;;;509:77:5;;;;;;;:::i;:::-;806:21:::1;812:5;819:7;806:5;:21::i;6386:405:1:-:0;666:10:4;6479:4:1;6522:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6522:34:1;;;;;;;;;;6574:35;;;;6566:85;;;;-1:-1:-1;;;6566:85:1;;6904:2:6;6566:85:1;;;6886:21:6;6943:2;6923:18;;;6916:30;6982:34;6962:18;;;6955:62;-1:-1:-1;;;7033:18:6;;;7026:35;7078:19;;6566:85:1;6876:227:6;6566:85:1;6685:67;666:10:4;6708:7:1;6736:15;6717:16;:34;6685:8;:67::i;:::-;-1:-1:-1;6780:4:1;;6386:405;-1:-1:-1;;;6386:405:1:o;3664:172::-;3750:4;3766:42;666:10:4;3790:9:1;3801:6;3766:9;:42::i;1846:189:0:-;1045:6;;-1:-1:-1;;;;;1045:6:0;666:10:4;1185:23:0;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1934:22:0;::::1;1926:73;;;::::0;-1:-1:-1;;;1926:73:0;;3297:2:6;1926:73:0::1;::::0;::::1;3279:21:6::0;3336:2;3316:18;;;3309:30;3375:34;3355:18;;;3348:62;-1:-1:-1;;;3426:18:6;;;3419:36;3472:19;;1926:73:0::1;3269:228:6::0;1926:73:0::1;2009:19;2019:8;2009:9;:19::i;:::-;1846:189:::0;:::o;9962:370:1:-;-1:-1:-1;;;;;10093:19:1;;10085:68;;;;-1:-1:-1;;;10085:68:1;;6499:2:6;10085:68:1;;;6481:21:6;6538:2;6518:18;;;6511:30;6577:34;6557:18;;;6550:62;-1:-1:-1;;;6628:18:6;;;6621:34;6672:19;;10085:68:1;6471:226:6;10085:68:1;-1:-1:-1;;;;;10171:21:1;;10163:68;;;;-1:-1:-1;;;10163:68:1;;3704:2:6;10163:68:1;;;3686:21:6;3743:2;3723:18;;;3716:30;3782:34;3762:18;;;3755:62;-1:-1:-1;;;3833:18:6;;;3826:32;3875:19;;10163:68:1;3676:224:6;10163:68:1;-1:-1:-1;;;;;10242:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10293:32;;7614:25:6;;;10293:32:1;;7587:18:6;10293:32:1;;;;;;;;9962:370;;;:::o;7265:713::-;-1:-1:-1;;;;;7400:20:1;;7392:70;;;;-1:-1:-1;;;7392:70:1;;6093:2:6;7392:70:1;;;6075:21:6;6132:2;6112:18;;;6105:30;6171:34;6151:18;;;6144:62;-1:-1:-1;;;6222:18:6;;;6215:35;6267:19;;7392:70:1;6065:227:6;7392:70:1;-1:-1:-1;;;;;7480:23:1;;7472:71;;;;-1:-1:-1;;;7472:71:1;;2490:2:6;7472:71:1;;;2472:21:6;2529:2;2509:18;;;2502:30;2568:34;2548:18;;;2541:62;-1:-1:-1;;;2619:18:6;;;2612:33;2662:19;;7472:71:1;2462:225:6;7472:71:1;-1:-1:-1;;;;;7636:17:1;;7612:21;7636:17;;;;;;;;;;;7671:23;;;;7663:74;;;;-1:-1:-1;;;7663:74:1;;4107:2:6;7663:74:1;;;4089:21:6;4146:2;4126:18;;;4119:30;4185:34;4165:18;;;4158:62;-1:-1:-1;;;4236:18:6;;;4229:36;4282:19;;7663:74:1;4079:228:6;7663:74:1;-1:-1:-1;;;;;7771:17:1;;;:9;:17;;;;;;;;;;;7791:22;;;7771:42;;7833:20;;;;;;;;:30;;7807:6;;7771:9;7833:30;;7807:6;;7833:30;:::i;:::-;;;;;;;;7896:9;-1:-1:-1;;;;;7879:35:1;7888:6;-1:-1:-1;;;;;7879:35:1;;7907:6;7879:35;;;;7614:25:6;;7602:2;7587:18;;7569:76;7879:35:1;;;;;;;;7265:713;;;;:::o;8254:389::-;-1:-1:-1;;;;;8337:21:1;;8329:65;;;;-1:-1:-1;;;8329:65:1;;7310:2:6;8329:65:1;;;7292:21:6;7349:2;7329:18;;;7322:30;7388:33;7368:18;;;7361:61;7439:18;;8329:65:1;7282:181:6;8329:65:1;8481:6;8465:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8497:18:1;;:9;:18;;;;;;;;;;:28;;8519:6;;8497:9;:28;;8519:6;;8497:28;:::i;:::-;;;;-1:-1:-1;;8540:37:1;;7614:25:6;;;-1:-1:-1;;;;;8540:37:1;;;8557:1;;8540:37;;7602:2:6;7587:18;8540:37:1;;;;;;;8588:48;8963:576;2041:169:0;2115:6;;;-1:-1:-1;;;;;2131:17:0;;;-1:-1:-1;;;;;;2131:17:0;;;;;;;2163:40;;2115:6;;;2131:17;2115:6;;2163:40;;2096:16;;2163:40;2041:169;;:::o;8963:576:1:-;-1:-1:-1;;;;;9046:21:1;;9038:67;;;;-1:-1:-1;;;9038:67:1;;5691:2:6;9038:67:1;;;5673:21:6;5730:2;5710:18;;;5703:30;5769:34;5749:18;;;5742:62;-1:-1:-1;;;5820:18:6;;;5813:31;5861:19;;9038:67:1;5663:223:6;9038:67:1;-1:-1:-1;;;;;9201:18:1;;9176:22;9201:18;;;;;;;;;;;9237:24;;;;9229:71;;;;-1:-1:-1;;;9229:71:1;;2894:2:6;9229:71:1;;;2876:21:6;2933:2;2913:18;;;2906:30;2972:34;2952:18;;;2945:62;-1:-1:-1;;;3023:18:6;;;3016:32;3065:19;;9229:71:1;2866:224:6;9229:71:1;-1:-1:-1;;;;;9334:18:1;;:9;:18;;;;;;;;;;9355:23;;;9334:44;;9398:12;:22;;9372:6;;9334:9;9398:22;;9372:6;;9398:22;:::i;:::-;;;;-1:-1:-1;;9436:37:1;;7614:25:6;;;9462:1:1;;-1:-1:-1;;;;;9436:37:1;;;;;7602:2:6;7587:18;9436:37:1;7569:76:6;14:173;82:20;;-1:-1:-1;;;;;131:31:6;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:6:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:6:o;1680:603::-;;1821:2;1850;1839:9;1832:21;1882:6;1876:13;1925:6;1920:2;1909:9;1905:18;1898:34;1950:4;1963:140;1977:6;1974:1;1971:13;1963:140;;;2072:14;;;2068:23;;2062:30;2038:17;;;2057:2;2034:26;2027:66;1992:10;;1963:140;;;2121:6;2118:1;2115:13;2112:2;;;2191:4;2186:2;2177:6;2166:9;2162:22;2158:31;2151:45;2112:2;-1:-1:-1;2267:2:6;2246:15;-1:-1:-1;;2242:29:6;2227:45;;;;2274:2;2223:54;;1801:482;-1:-1:-1;;;1801:482:6:o;4312:402::-;4514:2;4496:21;;;4553:2;4533:18;;;4526:30;4592:34;4587:2;4572:18;;4565:62;-1:-1:-1;;;4658:2:6;4643:18;;4636:36;4704:3;4689:19;;4486:228::o;5128:356::-;5330:2;5312:21;;;5349:18;;;5342:30;5408:34;5403:2;5388:18;;5381:62;5475:2;5460:18;;5302:182::o;7839:128::-;;7910:1;7906:6;7903:1;7900:13;7897:2;;;7916:18;;:::i;:::-;-1:-1:-1;7952:9:6;;7887:80::o;7972:125::-;;8040:1;8037;8034:8;8031:2;;;8045:18;;:::i;:::-;-1:-1:-1;8082:9:6;;8021:76::o;8102:380::-;8181:1;8177:12;;;;8224;;;8245:2;;8299:4;8291:6;8287:17;8277:27;;8245:2;8352;8344:6;8341:14;8321:18;8318:38;8315:2;;;8398:10;8393:3;8389:20;8386:1;8379:31;8433:4;8430:1;8423:15;8461:4;8458:1;8451:15;8315:2;;8157:325;;;:::o;8487:127::-;8548:10;8543:3;8539:20;8536:1;8529:31;8579:4;8576:1;8569:15;8603:4;8600:1;8593:15
Swarm Source
ipfs://9ebfc9fa8f1a5b3f0d5bb23251f412ca462fde5ac79b3c21926559f1eb682e3b
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.