Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Cross-Chain Transactions
Loading...
Loading
Contract Name:
AshToken
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/**
*Submitted for verification at basescan.org on 2026-01-14
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol)
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
abstract contract Ownable is Context {
address private _owner;
error OwnableUnauthorizedAccount(address account);
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
modifier onlyOwner() {
_checkOwner();
_;
}
function owner() public view virtual returns (address) {
return _owner;
}
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
interface IERC20 {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)
interface IERC20Errors {
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
error ERC20InvalidSender(address sender);
error ERC20InvalidReceiver(address receiver);
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
error ERC20InvalidApprover(address approver);
error ERC20InvalidSpender(address spender);
}
interface IERC721Errors {
error ERC721InvalidOwner(address owner);
error ERC721NonexistentToken(uint256 tokenId);
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);
error ERC721InvalidSender(address sender);
error ERC721InvalidReceiver(address receiver);
error ERC721InsufficientApproval(address operator, uint256 tokenId);
error ERC721InvalidApprover(address approver);
error ERC721InvalidOperator(address operator);
}
interface IERC1155Errors {
error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);
error ERC1155InvalidSender(address sender);
error ERC1155InvalidReceiver(address receiver);
error ERC1155MissingApprovalForAll(address operator, address owner);
error ERC1155InvalidApprover(address approver);
error ERC1155InvalidOperator(address operator);
error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
}
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
mapping(address account => uint256) private _balances;
mapping(address account => mapping(address spender => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function name() public view virtual returns (string memory) {
return _name;
}
function symbol() public view virtual returns (string memory) {
return _symbol;
}
function decimals() public view virtual returns (uint8) {
return 18;
}
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
function transfer(address to, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_transfer(owner, to, value);
return true;
}
function allowance(address owner, address spender) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, value);
return true;
}
function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, value);
_transfer(from, to, value);
return true;
}
function _transfer(address from, address to, uint256 value) internal {
if (from == address(0)) {
revert ERC20InvalidSender(address(0));
}
if (to == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(from, to, value);
}
function _update(address from, address to, uint256 value) internal virtual {
if (from == address(0)) {
_totalSupply += value;
} else {
uint256 fromBalance = _balances[from];
if (fromBalance < value) {
revert ERC20InsufficientBalance(from, fromBalance, value);
}
unchecked {
_balances[from] = fromBalance - value;
}
}
if (to == address(0)) {
unchecked {
_totalSupply -= value;
}
} else {
unchecked {
_balances[to] += value;
}
}
emit Transfer(from, to, value);
}
function _mint(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(address(0), account, value);
}
function _burn(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidSender(address(0));
}
_update(account, address(0), value);
}
function _approve(address owner, address spender, uint256 value) internal {
_approve(owner, spender, value, true);
}
function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
if (owner == address(0)) {
revert ERC20InvalidApprover(address(0));
}
if (spender == address(0)) {
revert ERC20InvalidSpender(address(0));
}
_allowances[owner][spender] = value;
if (emitEvent) {
emit Approval(owner, spender, value);
}
}
function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance < type(uint256).max) {
if (currentAllowance < value) {
revert ERC20InsufficientAllowance(spender, currentAllowance, value);
}
unchecked {
_approve(owner, spender, currentAllowance - value, false);
}
}
}
}
contract AshToken is ERC20, Ownable {
// ============ TOKENOMICS ============
uint256 public constant MAX_SUPPLY = 144_000 * 10**18;
uint256 public constant PROTOCOL_POOL = 139_600 * 10**18; // 96.94% - Quema EMBER
uint256 public constant TEAM_ALLOCATION = 4_400 * 10**18; // 3.06% - Team
// ============ WALLETS ============
address public teamWallet;
address public emberToken;
// ============ METRICS ============
uint256 public protocolMinted;
uint256 public totalEmberBurned;
// ============ STATE ============
bool public teamDistributed = false;
// ============ EVENTS ============
event TeamWalletSet(address indexed wallet);
event EmberTokenSet(address indexed emberToken);
event TeamDistributed(address indexed wallet, uint256 amount);
event MintedFromEmber(address indexed to, uint256 ashAmount, uint256 emberBurned);
constructor() ERC20("Ash", "ASH") Ownable(msg.sender) {}
// ============ SETUP ============
function setTeamWallet(address _team) external onlyOwner {
require(_team != address(0), "Invalid team wallet");
teamWallet = _team;
emit TeamWalletSet(_team);
}
function setEmberToken(address _emberToken) external onlyOwner {
require(_emberToken != address(0), "Invalid ember token");
emberToken = _emberToken;
emit EmberTokenSet(_emberToken);
}
// ============ DISTRIBUTION ============
function distributeTeam() external onlyOwner {
require(!teamDistributed, "Already distributed");
require(teamWallet != address(0), "Team wallet not set");
teamDistributed = true;
_mint(teamWallet, TEAM_ALLOCATION);
emit TeamDistributed(teamWallet, TEAM_ALLOCATION);
}
// ============ MINT FROM EMBER ============
/// @notice Solo EmberToken puede llamar esta función
/// @param to Dirección que recibe ASH
/// @param ashAmount Cantidad de ASH a mintear
function mintFromEmber(address to, uint256 ashAmount) external {
require(msg.sender == emberToken, "Only EmberToken");
require(to != address(0), "Invalid recipient");
require(protocolMinted + ashAmount <= PROTOCOL_POOL, "Exceeds protocol pool");
// Calcular EMBER quemado (ratio 100:1 viene de EmberToken)
uint256 emberBurned = ashAmount * 100;
protocolMinted += ashAmount;
totalEmberBurned += emberBurned;
_mint(to, ashAmount);
emit MintedFromEmber(to, ashAmount, emberBurned);
}
// ============ VIEW FUNCTIONS - METRICS ============
/// @notice Supply máximo que existirá
function maxSupply() external pure returns (uint256) {
return MAX_SUPPLY;
}
/// @notice Total minteado hasta ahora
function totalMinted() external view returns (uint256) {
return totalSupply();
}
/// @notice ASH disponible para mintear (quemando EMBER)
function protocolPoolRemaining() external view returns (uint256) {
return PROTOCOL_POOL - protocolMinted;
}
/// @notice Porcentaje del protocol pool usado (basis points, 10000 = 100%)
function protocolPoolUsedPercent() external view returns (uint256) {
if (PROTOCOL_POOL == 0) return 0;
return (protocolMinted * 10000) / PROTOCOL_POOL;
}
/// @notice Total EMBER quemado para obtener ASH
function emberBurnedTotal() external view returns (uint256) {
return totalEmberBurned;
}
/// @notice ¿Team ya recibió sus tokens?
function isTeamDistributed() external view returns (bool) {
return teamDistributed;
}
/// @notice Resumen completo de métricas
function getMetrics() external view returns (
uint256 _maxSupply,
uint256 _totalMinted,
uint256 _protocolMinted,
uint256 _protocolRemaining,
uint256 _protocolUsedPercent,
uint256 _totalEmberBurned,
uint256 _teamAllocation,
bool _isTeamDistributed
) {
return (
MAX_SUPPLY,
totalSupply(),
protocolMinted,
PROTOCOL_POOL - protocolMinted,
PROTOCOL_POOL > 0 ? (protocolMinted * 10000) / PROTOCOL_POOL : 0,
totalEmberBurned,
TEAM_ALLOCATION,
teamDistributed
);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"emberToken","type":"address"}],"name":"EmberTokenSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"ashAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"emberBurned","type":"uint256"}],"name":"MintedFromEmber","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":"wallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TeamDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"wallet","type":"address"}],"name":"TeamWalletSet","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":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROTOCOL_POOL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TEAM_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"value","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeTeam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emberBurnedTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emberToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMetrics","outputs":[{"internalType":"uint256","name":"_maxSupply","type":"uint256"},{"internalType":"uint256","name":"_totalMinted","type":"uint256"},{"internalType":"uint256","name":"_protocolMinted","type":"uint256"},{"internalType":"uint256","name":"_protocolRemaining","type":"uint256"},{"internalType":"uint256","name":"_protocolUsedPercent","type":"uint256"},{"internalType":"uint256","name":"_totalEmberBurned","type":"uint256"},{"internalType":"uint256","name":"_teamAllocation","type":"uint256"},{"internalType":"bool","name":"_isTeamDistributed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTeamDistributed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"ashAmount","type":"uint256"}],"name":"mintFromEmber","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":"protocolMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolPoolRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolPoolUsedPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_emberToken","type":"address"}],"name":"setEmberToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"}],"name":"setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamDistributed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEmberBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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
6080604052600a805460ff191690553480156200001a575f80fd5b503360405180604001604052806003815260200162082e6d60eb1b81525060405180604001604052806003815260200162082a6960eb1b8152508160039081620000659190620001a8565b506004620000748282620001a8565b5050506001600160a01b038116620000a557604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b620000b081620000b7565b5062000270565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200013157607f821691505b6020821081036200015057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620001a3575f81815260208120601f850160051c810160208610156200017e5750805b601f850160051c820191505b818110156200019f578281556001016200018a565b5050505b505050565b81516001600160401b03811115620001c457620001c462000108565b620001dc81620001d584546200011c565b8462000156565b602080601f83116001811462000212575f8415620001fa5750858301515b5f19600386901b1c1916600185901b1785556200019f565b5f85815260208120601f198616915b82811015620002425788860151825594840194600190910190840162000221565b50858210156200026057878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b610fc3806200027e5f395ff3fe608060405234801561000f575f80fd5b50600436106101dc575f3560e01c806370a0823111610109578063c3bd87d81161009e578063f2fde38b1161006e578063f2fde38b14610410578063fb159f8d14610423578063fb39cbdd14610436578063fd99cbed1461043e575f80fd5b8063c3bd87d8146103b4578063d5abeb01146103bd578063dbcbc0c6146103cd578063dd62ed3e146103d8575f80fd5b80638da5cb5b116100d95780638da5cb5b1461038057806395d89b4114610391578063a2309ff814610399578063a9059cbb146103a1575f80fd5b806370a0823114610303578063715018a61461032b5780637606f781146103335780638656dcb614610378575f80fd5b806323b872dd1161017f57806354cb65c81161014f57806354cb65c8146102c457806359927044146102cc5780636305118a146102df5780636dd7d17f146102f2575f80fd5b806323b872dd14610289578063313ce5671461029c57806332cb6b0c146102ab57806339188b9e146102bc575f80fd5b80631525ff7d116101ba5780631525ff7d1461024c57806318160ddd146102615780631e97fc9e1461027357806320f9ed1f1461027c575f80fd5b806306fdde03146101e0578063095ea7b3146101fe5780630cae9d5e14610221575b5f80fd5b6101e861044e565b6040516101f59190610dcd565b60405180910390f35b61021161020c366004610e33565b6104de565b60405190151581526020016101f5565b600754610234906001600160a01b031681565b6040516001600160a01b0390911681526020016101f5565b61025f61025a366004610e5b565b6104f7565b005b6002545b6040519081526020016101f5565b61026560095481565b600a546102119060ff1681565b610211610297366004610e7b565b610599565b604051601281526020016101f5565b610265691e7e4171bf4d3a00000081565b6102656105bc565b6102656105e7565b600654610234906001600160a01b031681565b61025f6102ed366004610e33565b610600565b610265691d8fbb2d8f803340000081565b610265610311366004610e5b565b6001600160a01b03165f9081526020819052604090205490565b61025f610785565b61033b610798565b604080519889526020890197909752958701949094526060860192909252608085015260a084015260c0830152151560e0820152610100016101f5565b61025f61081c565b6005546001600160a01b0316610234565b6101e8610934565b610265610943565b6102116103af366004610e33565b61094d565b61026560085481565b691e7e4171bf4d3a000000610265565b600a5460ff16610211565b6102656103e6366004610eb4565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61025f61041e366004610e5b565b61095a565b61025f610431366004610e5b565b610997565b600954610265565b61026568ee86442fcd06c0000081565b60606003805461045d90610ee5565b80601f016020809104026020016040519081016040528092919081815260200182805461048990610ee5565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b5050505050905090565b5f336104eb818585610a34565b60019150505b92915050565b6104ff610a46565b6001600160a01b0381166105505760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081d19585b481dd85b1b195d606a1b60448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517fb590f26ac7ad9082f5f57531907f48fc0c5478d4512d6a1279f51b527b53b0cf905f90a250565b5f336105a6858285610a73565b6105b1858585610aef565b506001949350505050565b5f691d8fbb2d8f80334000006008546127106105d89190610f31565b6105e29190610f48565b905090565b5f600854691d8fbb2d8f80334000006105e29190610f67565b6007546001600160a01b0316331461064c5760405162461bcd60e51b815260206004820152600f60248201526e27b7363c9022b6b132b92a37b5b2b760891b6044820152606401610547565b6001600160a01b0382166106965760405162461bcd60e51b8152602060048201526011602482015270125b9d985b1a59081c9958da5c1a595b9d607a1b6044820152606401610547565b691d8fbb2d8f8033400000816008546106af9190610f7a565b11156106f55760405162461bcd60e51b8152602060048201526015602482015274115e18d959591cc81c1c9bdd1bd8dbdb081c1bdbdb605a1b6044820152606401610547565b5f610701826064610f31565b90508160085f8282546107149190610f7a565b925050819055508060095f82825461072c9190610f7a565b9091555061073c90508383610b4c565b60408051838152602081018390526001600160a01b038516917f91954b8680666b30de23339bcfcfa611bffcac35d0e0a9a7cca60ae662343016910160405180910390a2505050565b61078d610a46565b6107965f610b84565b565b5f805f805f805f80691e7e4171bf4d3a0000006107b460025490565b6008546107cb81691d8fbb2d8f8033400000610f67565b691d8fbb2d8f80334000006008546127106107e69190610f31565b6107f09190610f48565b600954600a54959e949d50929b509099509750955068ee86442fcd06c00000945060ff90911692509050565b610824610a46565b600a5460ff161561086d5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e48191a5cdd1c9a589d5d1959606a1b6044820152606401610547565b6006546001600160a01b03166108bb5760405162461bcd60e51b81526020600482015260136024820152721519585b481dd85b1b195d081b9bdd081cd95d606a1b6044820152606401610547565b600a805460ff191660011790556006546108e7906001600160a01b031668ee86442fcd06c00000610b4c565b60065460405168ee86442fcd06c0000081526001600160a01b03909116907fdb368e38c472e99d6c54fb15b254413b586036601f2031cf705d2b488a25f8509060200160405180910390a2565b60606004805461045d90610ee5565b5f6105e260025490565b5f336104eb818585610aef565b610962610a46565b6001600160a01b03811661098b57604051631e4fbdf760e01b81525f6004820152602401610547565b61099481610b84565b50565b61099f610a46565b6001600160a01b0381166109eb5760405162461bcd60e51b815260206004820152601360248201527224b73b30b634b21032b6b132b9103a37b5b2b760691b6044820152606401610547565b600780546001600160a01b0319166001600160a01b0383169081179091556040517f84f0be92d64ad7cc312440675f9bc3a932a734c8887e53f31829543174fed443905f90a250565b610a418383836001610bd5565b505050565b6005546001600160a01b031633146107965760405163118cdaa760e01b8152336004820152602401610547565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811015610ae95781811015610adb57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610547565b610ae984848484035f610bd5565b50505050565b6001600160a01b038316610b1857604051634b637e8f60e11b81525f6004820152602401610547565b6001600160a01b038216610b415760405163ec442f0560e01b81525f6004820152602401610547565b610a41838383610ca7565b6001600160a01b038216610b755760405163ec442f0560e01b81525f6004820152602401610547565b610b805f8383610ca7565b5050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038416610bfe5760405163e602df0560e01b81525f6004820152602401610547565b6001600160a01b038316610c2757604051634a1406b160e11b81525f6004820152602401610547565b6001600160a01b038085165f9081526001602090815260408083209387168352929052208290558015610ae957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c9991815260200190565b60405180910390a350505050565b6001600160a01b038316610cd1578060025f828254610cc69190610f7a565b90915550610d419050565b6001600160a01b0383165f9081526020819052604090205481811015610d235760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610547565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610d5d57600280548290039055610d7b565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610dc091815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b81811015610df857858101830151858201604001528201610ddc565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610e2e575f80fd5b919050565b5f8060408385031215610e44575f80fd5b610e4d83610e18565b946020939093013593505050565b5f60208284031215610e6b575f80fd5b610e7482610e18565b9392505050565b5f805f60608486031215610e8d575f80fd5b610e9684610e18565b9250610ea460208501610e18565b9150604084013590509250925092565b5f8060408385031215610ec5575f80fd5b610ece83610e18565b9150610edc60208401610e18565b90509250929050565b600181811c90821680610ef957607f821691505b602082108103610f1757634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176104f1576104f1610f1d565b5f82610f6257634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104f1576104f1610f1d565b808201808211156104f1576104f1610f1d56fea2646970667358221220ee871afa7b014dc0b1d26c3580cf73cb19f0458a58a4c2ce56705a18dfe0dbba64736f6c63430008140033
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106101dc575f3560e01c806370a0823111610109578063c3bd87d81161009e578063f2fde38b1161006e578063f2fde38b14610410578063fb159f8d14610423578063fb39cbdd14610436578063fd99cbed1461043e575f80fd5b8063c3bd87d8146103b4578063d5abeb01146103bd578063dbcbc0c6146103cd578063dd62ed3e146103d8575f80fd5b80638da5cb5b116100d95780638da5cb5b1461038057806395d89b4114610391578063a2309ff814610399578063a9059cbb146103a1575f80fd5b806370a0823114610303578063715018a61461032b5780637606f781146103335780638656dcb614610378575f80fd5b806323b872dd1161017f57806354cb65c81161014f57806354cb65c8146102c457806359927044146102cc5780636305118a146102df5780636dd7d17f146102f2575f80fd5b806323b872dd14610289578063313ce5671461029c57806332cb6b0c146102ab57806339188b9e146102bc575f80fd5b80631525ff7d116101ba5780631525ff7d1461024c57806318160ddd146102615780631e97fc9e1461027357806320f9ed1f1461027c575f80fd5b806306fdde03146101e0578063095ea7b3146101fe5780630cae9d5e14610221575b5f80fd5b6101e861044e565b6040516101f59190610dcd565b60405180910390f35b61021161020c366004610e33565b6104de565b60405190151581526020016101f5565b600754610234906001600160a01b031681565b6040516001600160a01b0390911681526020016101f5565b61025f61025a366004610e5b565b6104f7565b005b6002545b6040519081526020016101f5565b61026560095481565b600a546102119060ff1681565b610211610297366004610e7b565b610599565b604051601281526020016101f5565b610265691e7e4171bf4d3a00000081565b6102656105bc565b6102656105e7565b600654610234906001600160a01b031681565b61025f6102ed366004610e33565b610600565b610265691d8fbb2d8f803340000081565b610265610311366004610e5b565b6001600160a01b03165f9081526020819052604090205490565b61025f610785565b61033b610798565b604080519889526020890197909752958701949094526060860192909252608085015260a084015260c0830152151560e0820152610100016101f5565b61025f61081c565b6005546001600160a01b0316610234565b6101e8610934565b610265610943565b6102116103af366004610e33565b61094d565b61026560085481565b691e7e4171bf4d3a000000610265565b600a5460ff16610211565b6102656103e6366004610eb4565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61025f61041e366004610e5b565b61095a565b61025f610431366004610e5b565b610997565b600954610265565b61026568ee86442fcd06c0000081565b60606003805461045d90610ee5565b80601f016020809104026020016040519081016040528092919081815260200182805461048990610ee5565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b5050505050905090565b5f336104eb818585610a34565b60019150505b92915050565b6104ff610a46565b6001600160a01b0381166105505760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081d19585b481dd85b1b195d606a1b60448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517fb590f26ac7ad9082f5f57531907f48fc0c5478d4512d6a1279f51b527b53b0cf905f90a250565b5f336105a6858285610a73565b6105b1858585610aef565b506001949350505050565b5f691d8fbb2d8f80334000006008546127106105d89190610f31565b6105e29190610f48565b905090565b5f600854691d8fbb2d8f80334000006105e29190610f67565b6007546001600160a01b0316331461064c5760405162461bcd60e51b815260206004820152600f60248201526e27b7363c9022b6b132b92a37b5b2b760891b6044820152606401610547565b6001600160a01b0382166106965760405162461bcd60e51b8152602060048201526011602482015270125b9d985b1a59081c9958da5c1a595b9d607a1b6044820152606401610547565b691d8fbb2d8f8033400000816008546106af9190610f7a565b11156106f55760405162461bcd60e51b8152602060048201526015602482015274115e18d959591cc81c1c9bdd1bd8dbdb081c1bdbdb605a1b6044820152606401610547565b5f610701826064610f31565b90508160085f8282546107149190610f7a565b925050819055508060095f82825461072c9190610f7a565b9091555061073c90508383610b4c565b60408051838152602081018390526001600160a01b038516917f91954b8680666b30de23339bcfcfa611bffcac35d0e0a9a7cca60ae662343016910160405180910390a2505050565b61078d610a46565b6107965f610b84565b565b5f805f805f805f80691e7e4171bf4d3a0000006107b460025490565b6008546107cb81691d8fbb2d8f8033400000610f67565b691d8fbb2d8f80334000006008546127106107e69190610f31565b6107f09190610f48565b600954600a54959e949d50929b509099509750955068ee86442fcd06c00000945060ff90911692509050565b610824610a46565b600a5460ff161561086d5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e48191a5cdd1c9a589d5d1959606a1b6044820152606401610547565b6006546001600160a01b03166108bb5760405162461bcd60e51b81526020600482015260136024820152721519585b481dd85b1b195d081b9bdd081cd95d606a1b6044820152606401610547565b600a805460ff191660011790556006546108e7906001600160a01b031668ee86442fcd06c00000610b4c565b60065460405168ee86442fcd06c0000081526001600160a01b03909116907fdb368e38c472e99d6c54fb15b254413b586036601f2031cf705d2b488a25f8509060200160405180910390a2565b60606004805461045d90610ee5565b5f6105e260025490565b5f336104eb818585610aef565b610962610a46565b6001600160a01b03811661098b57604051631e4fbdf760e01b81525f6004820152602401610547565b61099481610b84565b50565b61099f610a46565b6001600160a01b0381166109eb5760405162461bcd60e51b815260206004820152601360248201527224b73b30b634b21032b6b132b9103a37b5b2b760691b6044820152606401610547565b600780546001600160a01b0319166001600160a01b0383169081179091556040517f84f0be92d64ad7cc312440675f9bc3a932a734c8887e53f31829543174fed443905f90a250565b610a418383836001610bd5565b505050565b6005546001600160a01b031633146107965760405163118cdaa760e01b8152336004820152602401610547565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811015610ae95781811015610adb57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610547565b610ae984848484035f610bd5565b50505050565b6001600160a01b038316610b1857604051634b637e8f60e11b81525f6004820152602401610547565b6001600160a01b038216610b415760405163ec442f0560e01b81525f6004820152602401610547565b610a41838383610ca7565b6001600160a01b038216610b755760405163ec442f0560e01b81525f6004820152602401610547565b610b805f8383610ca7565b5050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038416610bfe5760405163e602df0560e01b81525f6004820152602401610547565b6001600160a01b038316610c2757604051634a1406b160e11b81525f6004820152602401610547565b6001600160a01b038085165f9081526001602090815260408083209387168352929052208290558015610ae957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c9991815260200190565b60405180910390a350505050565b6001600160a01b038316610cd1578060025f828254610cc69190610f7a565b90915550610d419050565b6001600160a01b0383165f9081526020819052604090205481811015610d235760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610547565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610d5d57600280548290039055610d7b565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610dc091815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b81811015610df857858101830151858201604001528201610ddc565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610e2e575f80fd5b919050565b5f8060408385031215610e44575f80fd5b610e4d83610e18565b946020939093013593505050565b5f60208284031215610e6b575f80fd5b610e7482610e18565b9392505050565b5f805f60608486031215610e8d575f80fd5b610e9684610e18565b9250610ea460208501610e18565b9150604084013590509250925092565b5f8060408385031215610ec5575f80fd5b610ece83610e18565b9150610edc60208401610e18565b90509250929050565b600181811c90821680610ef957607f821691505b602082108103610f1757634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176104f1576104f1610f1d565b5f82610f6257634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104f1576104f1610f1d565b808201808211156104f1576104f1610f1d56fea2646970667358221220ee871afa7b014dc0b1d26c3580cf73cb19f0458a58a4c2ce56705a18dfe0dbba64736f6c63430008140033
Deployed Bytecode Sourcemap
8848:4497:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4950:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5817:190;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;5817:190:0;1004:187:1;9256:25:0;;;;;-1:-1:-1;;;;;9256:25:0;;;;;;-1:-1:-1;;;;;1360:32:1;;;1342:51;;1330:2;1315:18;9256:25:0;1196:203:1;9901:192:0;;;;;;:::i;:::-;;:::i;:::-;;5244:99;5323:12;;5244:99;;;1741:25:1;;;1729:2;1714:18;5244:99:0;1595:177:1;9368:31:0;;;;;;9448:35;;;;;;;;;6015:249;;;;;;:::i;:::-;;:::i;5152:84::-;;;5226:2;2252:36:1;;2240:2;2225:18;5152:84:0;2110:184:1;8942:53:0;;8979:16;8942:53;;12132:176;;;:::i;11922:121::-;;;:::i;9224:25::-;;;;;-1:-1:-1;;;;;9224:25:0;;;10912:590;;;;;;:::i;:::-;;:::i;9008:56::-;;9048:16;9008:56;;5351:118;;;;;;:::i;:::-;-1:-1:-1;;;;;5443:18:0;5416:7;5443:18;;;;;;;;;;;;5351:118;1368:103;;;:::i;12682:660::-;;;:::i;:::-;;;;2636:25:1;;;2692:2;2677:18;;2670:34;;;;2720:18;;;2713:34;;;;2778:2;2763:18;;2756:34;;;;2821:3;2806:19;;2799:35;2865:3;2850:19;;2843:35;2909:3;2894:19;;2887:35;2966:14;2959:22;2953:3;2938:19;;2931:51;2623:3;2608:19;12682:660:0;2299:689:1;10374:321:0;;;:::i;1099:87::-;1172:6;;-1:-1:-1;;;;;1172:6:0;1099:87;;5049:95;;;:::i;11758:94::-;;;:::i;5477:182::-;;;;;;:::i;:::-;;:::i;9332:29::-;;;;;;11617:89;8979:16;11617:89;;12528:99;12604:15;;;;12528:99;;5667:142;;;;;;:::i;:::-;-1:-1:-1;;;;;5774:18:0;;;5747:7;5774:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5667:142;1479:220;;;;;;:::i;:::-;;:::i;10101:216::-;;;;;;:::i;:::-;;:::i;12370:102::-;12448:16;;12370:102;;9098:56;;9140:14;9098:56;;4950:91;4995:13;5028:5;5021:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4950:91;:::o;5817:190::-;5890:4;243:10;5946:31;243:10;5962:7;5971:5;5946:8;:31::i;:::-;5995:4;5988:11;;;5817:190;;;;;:::o;9901:192::-;1058:13;:11;:13::i;:::-;-1:-1:-1;;;;;9977:19:0;::::1;9969:51;;;::::0;-1:-1:-1;;;9969:51:0;;3845:2:1;9969:51:0::1;::::0;::::1;3827:21:1::0;3884:2;3864:18;;;3857:30;-1:-1:-1;;;3903:18:1;;;3896:49;3962:18;;9969:51:0::1;;;;;;;;;10031:10;:18:::0;;-1:-1:-1;;;;;;10031:18:0::1;-1:-1:-1::0;;;;;10031:18:0;::::1;::::0;;::::1;::::0;;;10065:20:::1;::::0;::::1;::::0;-1:-1:-1;;10065:20:0::1;9901:192:::0;:::o;6015:249::-;6102:4;243:10;6160:37;6176:4;243:10;6191:5;6160:15;:37::i;:::-;6208:26;6218:4;6224:2;6228:5;6208:9;:26::i;:::-;-1:-1:-1;6252:4:0;;6015:249;-1:-1:-1;;;;6015:249:0:o;12132:176::-;12190:7;9048:16;12261:14;;12278:5;12261:22;;;;:::i;:::-;12260:40;;;;:::i;:::-;12253:47;;12132:176;:::o;11922:121::-;11978:7;12021:14;;9048:16;12005:30;;;;:::i;10912:590::-;11008:10;;-1:-1:-1;;;;;11008:10:0;10994;:24;10986:52;;;;-1:-1:-1;;;10986:52:0;;4853:2:1;10986:52:0;;;4835:21:1;4892:2;4872:18;;;4865:30;-1:-1:-1;;;4911:18:1;;;4904:45;4966:18;;10986:52:0;4651:339:1;10986:52:0;-1:-1:-1;;;;;11057:16:0;;11049:46;;;;-1:-1:-1;;;11049:46:0;;5197:2:1;11049:46:0;;;5179:21:1;5236:2;5216:18;;;5209:30;-1:-1:-1;;;5255:18:1;;;5248:47;5312:18;;11049:46:0;4995:341:1;11049:46:0;9048:16;11131:9;11114:14;;:26;;;;:::i;:::-;:43;;11106:77;;;;-1:-1:-1;;;11106:77:0;;5673:2:1;11106:77:0;;;5655:21:1;5712:2;5692:18;;;5685:30;-1:-1:-1;;;5731:18:1;;;5724:51;5792:18;;11106:77:0;5471:345:1;11106:77:0;11265:19;11287:15;:9;11299:3;11287:15;:::i;:::-;11265:37;;11341:9;11323:14;;:27;;;;;;;:::i;:::-;;;;;;;;11381:11;11361:16;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;11413:20:0;;-1:-1:-1;11419:2:0;11423:9;11413:5;:20::i;:::-;11451:43;;;5995:25:1;;;6051:2;6036:18;;6029:34;;;-1:-1:-1;;;;;11451:43:0;;;;;5968:18:1;11451:43:0;;;;;;;10975:527;10912:590;;:::o;1368:103::-;1058:13;:11;:13::i;:::-;1433:30:::1;1460:1;1433:18;:30::i;:::-;1368:103::o:0;12682:660::-;12737:18;12766:20;12797:23;12831:26;12868:28;12907:25;12943:23;12977;8979:16;13066:13;5323:12;;;5244:99;13066:13;13094:14;;13123:30;13094:14;9048:16;13123:30;:::i;:::-;9048:16;13189:14;;13206:5;13189:22;;;;:::i;:::-;13188:40;;;;:::i;:::-;13247:16;;13308:15;;13019:315;;;;-1:-1:-1;13019:315:0;;-1:-1:-1;13019:315:0;;-1:-1:-1;13019:315:0;-1:-1:-1;13247:16:0;-1:-1:-1;9140:14:0;;-1:-1:-1;13308:15:0;;;;;-1:-1:-1;12682:660:0;-1:-1:-1;12682:660:0:o;10374:321::-;1058:13;:11;:13::i;:::-;10439:15:::1;::::0;::::1;;10438:16;10430:48;;;::::0;-1:-1:-1;;;10430:48:0;;6276:2:1;10430:48:0::1;::::0;::::1;6258:21:1::0;6315:2;6295:18;;;6288:30;-1:-1:-1;;;6334:18:1;;;6327:49;6393:18;;10430:48:0::1;6074:343:1::0;10430:48:0::1;10497:10;::::0;-1:-1:-1;;;;;10497:10:0::1;10489:56;;;::::0;-1:-1:-1;;;10489:56:0;;6624:2:1;10489:56:0::1;::::0;::::1;6606:21:1::0;6663:2;6643:18;;;6636:30;-1:-1:-1;;;6682:18:1;;;6675:49;6741:18;;10489:56:0::1;6422:343:1::0;10489:56:0::1;10558:15;:22:::0;;-1:-1:-1;;10558:22:0::1;10576:4;10558:22;::::0;;10597:10:::1;::::0;10591:34:::1;::::0;-1:-1:-1;;;;;10597:10:0::1;9140:14;10591:5;:34::i;:::-;10659:10;::::0;10643:44:::1;::::0;9140:14:::1;1741:25:1::0;;-1:-1:-1;;;;;10659:10:0;;::::1;::::0;10643:44:::1;::::0;1729:2:1;1714:18;10643:44:0::1;;;;;;;10374:321::o:0;5049:95::-;5096:13;5129:7;5122:14;;;;;:::i;11758:94::-;11804:7;11831:13;5323:12;;;5244:99;5477:182;5546:4;243:10;5602:27;243:10;5619:2;5623:5;5602:9;:27::i;1479:220::-;1058:13;:11;:13::i;:::-;-1:-1:-1;;;;;1564:22:0;::::1;1560:93;;1610:31;::::0;-1:-1:-1;;;1610:31:0;;1638:1:::1;1610:31;::::0;::::1;1342:51:1::0;1315:18;;1610:31:0::1;1196:203:1::0;1560:93:0::1;1663:28;1682:8;1663:18;:28::i;:::-;1479:220:::0;:::o;10101:216::-;1058:13;:11;:13::i;:::-;-1:-1:-1;;;;;10183:25:0;::::1;10175:57;;;::::0;-1:-1:-1;;;10175:57:0;;6972:2:1;10175:57:0::1;::::0;::::1;6954:21:1::0;7011:2;6991:18;;;6984:30;-1:-1:-1;;;7030:18:1;;;7023:49;7089:18;;10175:57:0::1;6770:343:1::0;10175:57:0::1;10243:10;:24:::0;;-1:-1:-1;;;;;;10243:24:0::1;-1:-1:-1::0;;;;;10243:24:0;::::1;::::0;;::::1;::::0;;;10283:26:::1;::::0;::::1;::::0;-1:-1:-1;;10283:26:0::1;10101:216:::0;:::o;7766:130::-;7851:37;7860:5;7867:7;7876:5;7883:4;7851:8;:37::i;:::-;7766:130;;;:::o;1194:166::-;1172:6;;-1:-1:-1;;;;;1172:6:0;243:10;1254:23;1250:103;;1301:40;;-1:-1:-1;;;1301:40:0;;243:10;1301:40;;;1342:51:1;1315:18;;1301:40:0;1196:203:1;8355:486:0;-1:-1:-1;;;;;5774:18:0;;;8455:24;5774:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;8522:36:0;;8518:316;;;8598:5;8579:16;:24;8575:132;;;8631:60;;-1:-1:-1;;;8631:60:0;;-1:-1:-1;;;;;7338:32:1;;8631:60:0;;;7320:51:1;7387:18;;;7380:34;;;7430:18;;;7423:34;;;7293:18;;8631:60:0;7118:345:1;8575:132:0;8750:57;8759:5;8766:7;8794:5;8775:16;:24;8801:5;8750:8;:57::i;:::-;8444:397;8355:486;;;:::o;6272:308::-;-1:-1:-1;;;;;6356:18:0;;6352:88;;6398:30;;-1:-1:-1;;;6398:30:0;;6425:1;6398:30;;;1342:51:1;1315:18;;6398:30:0;1196:203:1;6352:88:0;-1:-1:-1;;;;;6454:16:0;;6450:88;;6494:32;;-1:-1:-1;;;6494:32:0;;6523:1;6494:32;;;1342:51:1;1315:18;;6494:32:0;1196:203:1;6450:88:0;6548:24;6556:4;6562:2;6566:5;6548:7;:24::i;7326:213::-;-1:-1:-1;;;;;7397:21:0;;7393:93;;7442:32;;-1:-1:-1;;;7442:32:0;;7471:1;7442:32;;;1342:51:1;1315:18;;7442:32:0;1196:203:1;7393:93:0;7496:35;7512:1;7516:7;7525:5;7496:7;:35::i;:::-;7326:213;;:::o;1707:191::-;1800:6;;;-1:-1:-1;;;;;1817:17:0;;;-1:-1:-1;;;;;;1817:17:0;;;;;;;1850:40;;1800:6;;;1817:17;1800:6;;1850:40;;1781:16;;1850:40;1770:128;1707:191;:::o;7904:443::-;-1:-1:-1;;;;;8017:19:0;;8013:91;;8060:32;;-1:-1:-1;;;8060:32:0;;8089:1;8060:32;;;1342:51:1;1315:18;;8060:32:0;1196:203:1;8013:91:0;-1:-1:-1;;;;;8118:21:0;;8114:92;;8163:31;;-1:-1:-1;;;8163:31:0;;8191:1;8163:31;;;1342:51:1;1315:18;;8163:31:0;1196:203:1;8114:92:0;-1:-1:-1;;;;;8216:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;8262:78;;;;8313:7;-1:-1:-1;;;;;8297:31:0;8306:5;-1:-1:-1;;;;;8297:31:0;;8322:5;8297:31;;;;1741:25:1;;1729:2;1714:18;;1595:177;8297:31:0;;;;;;;;7904:443;;;;:::o;6588:730::-;-1:-1:-1;;;;;6678:18:0;;6674:369;;6729:5;6713:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6674:369:0;;-1:-1:-1;6674:369:0;;-1:-1:-1;;;;;6789:15:0;;6767:19;6789:15;;;;;;;;;;;6823:19;;;6819:117;;;6870:50;;-1:-1:-1;;;6870:50:0;;-1:-1:-1;;;;;7338:32:1;;6870:50:0;;;7320:51:1;7387:18;;;7380:34;;;7430:18;;;7423:34;;;7293:18;;6870:50:0;7118:345:1;6819:117:0;-1:-1:-1;;;;;6979:15:0;;:9;:15;;;;;;;;;;6997:19;;;;6979:37;;6674:369;-1:-1:-1;;;;;7059:16:0;;7055:213;;7121:12;:21;;;;;;;7055:213;;;-1:-1:-1;;;;;7219:13:0;;:9;:13;;;;;;;;;;:22;;;;;;7055:213;7300:2;-1:-1:-1;;;;;7285:25:0;7294:4;-1:-1:-1;;;;;7285:25:0;;7304:5;7285:25;;;;1741::1;;1729:2;1714:18;;1595:177;7285:25:0;;;;;;;;6588:730;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1404:186::-;1463:6;1516:2;1504:9;1495:7;1491:23;1487:32;1484:52;;;1532:1;1529;1522:12;1484:52;1555:29;1574:9;1555:29;:::i;:::-;1545:39;1404:186;-1:-1:-1;;;1404:186:1:o;1777:328::-;1854:6;1862;1870;1923:2;1911:9;1902:7;1898:23;1894:32;1891:52;;;1939:1;1936;1929:12;1891:52;1962:29;1981:9;1962:29;:::i;:::-;1952:39;;2010:38;2044:2;2033:9;2029:18;2010:38;:::i;:::-;2000:48;;2095:2;2084:9;2080:18;2067:32;2057:42;;1777:328;;;;;:::o;2993:260::-;3061:6;3069;3122:2;3110:9;3101:7;3097:23;3093:32;3090:52;;;3138:1;3135;3128:12;3090:52;3161:29;3180:9;3161:29;:::i;:::-;3151:39;;3209:38;3243:2;3232:9;3228:18;3209:38;:::i;:::-;3199:48;;2993:260;;;;;:::o;3258:380::-;3337:1;3333:12;;;;3380;;;3401:61;;3455:4;3447:6;3443:17;3433:27;;3401:61;3508:2;3500:6;3497:14;3477:18;3474:38;3471:161;;3554:10;3549:3;3545:20;3542:1;3535:31;3589:4;3586:1;3579:15;3617:4;3614:1;3607:15;3471:161;;3258:380;;;:::o;3991:127::-;4052:10;4047:3;4043:20;4040:1;4033:31;4083:4;4080:1;4073:15;4107:4;4104:1;4097:15;4123:168;4196:9;;;4227;;4244:15;;;4238:22;;4224:37;4214:71;;4265:18;;:::i;4296:217::-;4336:1;4362;4352:132;;4406:10;4401:3;4397:20;4394:1;4387:31;4441:4;4438:1;4431:15;4469:4;4466:1;4459:15;4352:132;-1:-1:-1;4498:9:1;;4296:217::o;4518:128::-;4585:9;;;4606:11;;;4603:37;;;4620:18;;:::i;5341:125::-;5406:9;;;5427:10;;;5424:36;;;5440:18;;:::i
Swarm Source
ipfs://ee871afa7b014dc0b1d26c3580cf73cb19f0458a58a4c2ce56705a18dfe0dbba
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.