More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 451 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Tokens | 21202663 | 38 days ago | IN | 0 ETH | 0.00112299 | ||||
Withdraw Tokens | 21169761 | 42 days ago | IN | 0 ETH | 0.00242243 | ||||
Withdraw Tokens | 21016306 | 64 days ago | IN | 0 ETH | 0.00113832 | ||||
Withdraw Tokens | 20670538 | 112 days ago | IN | 0 ETH | 0.00102209 | ||||
Withdraw Tokens | 20626442 | 118 days ago | IN | 0 ETH | 0.00021275 | ||||
Withdraw Tokens | 20626428 | 118 days ago | IN | 0 ETH | 0.00027349 | ||||
Withdraw Tokens | 20530733 | 132 days ago | IN | 0 ETH | 0.00017956 | ||||
Withdraw Tokens | 20515277 | 134 days ago | IN | 0 ETH | 0.00032878 | ||||
Withdraw Tokens | 20515260 | 134 days ago | IN | 0 ETH | 0.00098549 | ||||
Withdraw Tokens | 20512963 | 134 days ago | IN | 0 ETH | 0.00092986 | ||||
Withdraw Tokens | 20477792 | 139 days ago | IN | 0 ETH | 0.00173417 | ||||
Withdraw Tokens | 20475315 | 139 days ago | IN | 0 ETH | 0.00023637 | ||||
Withdraw Tokens | 20455391 | 142 days ago | IN | 0 ETH | 0.00023126 | ||||
Withdraw Tokens | 20446923 | 143 days ago | IN | 0 ETH | 0.00018261 | ||||
Withdraw Tokens | 20427321 | 146 days ago | IN | 0 ETH | 0.00199953 | ||||
Withdraw Tokens | 20423651 | 146 days ago | IN | 0 ETH | 0.00034736 | ||||
Withdraw Tokens | 20422219 | 147 days ago | IN | 0 ETH | 0.00051467 | ||||
Withdraw Tokens | 20411767 | 148 days ago | IN | 0 ETH | 0.00022643 | ||||
Withdraw Tokens | 20397091 | 150 days ago | IN | 0 ETH | 0.00020827 | ||||
Withdraw Tokens | 20396960 | 150 days ago | IN | 0 ETH | 0.00016754 | ||||
Withdraw Tokens | 20393745 | 151 days ago | IN | 0 ETH | 0.00017788 | ||||
Withdraw Tokens | 20372915 | 154 days ago | IN | 0 ETH | 0.00019322 | ||||
Withdraw Tokens | 20371409 | 154 days ago | IN | 0 ETH | 0.00072262 | ||||
Withdraw Tokens | 20354831 | 156 days ago | IN | 0 ETH | 0.00028243 | ||||
Withdraw Tokens | 20348505 | 157 days ago | IN | 0 ETH | 0.00080104 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
zkGUNVesting
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-23 */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.24; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == _ENTERED; } } /** * @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; } } /** * @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); } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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); } /** * @title VestingContract * @dev This contract handles the vesting of ERC20 tokens for investors based on a configurable schedule. * Vesting intervals can be set during initialization and only by the owner to ensure controlled deployment. */ contract zkGUNVesting is Ownable, ReentrancyGuard { IERC20 public token; // Interface to the ERC20 token contract uint256 public vestingStartTime; // Timestamp when the vesting starts, set during initialization struct Investor { uint256 totalAllocated; // Total tokens allocated to the investor uint256 withdrawn; // Total tokens already withdrawn by the investor } mapping(address => Investor) public investors; // Mapping from investor address to their vesting details // Events to log significant contract activities event VestingInitialized(uint256 vestingStartTime); event TokensAllocated(address indexed investor, uint256 amount); event TokensUpdated(address indexed investor, uint256 newAmount); event TokensWithdrawn(address indexed investor, uint256 amount); event EmergencyWithdrawal(uint256 amountWithdrawn); /** * @param initialOwner Address of the initial owner, usually the deployer. */ constructor(address initialOwner) Ownable(initialOwner) { } /** * @dev Initializes the vesting process by setting the start time to now. */ function initializeVesting() external onlyOwner { require(vestingStartTime == 0, "Vesting already initialized"); vestingStartTime = block.timestamp; emit VestingInitialized(vestingStartTime); } /** * @dev Sets the token allocation for multiple investors at once. * @param addresses Array of investor addresses. * @param amounts Array of token amounts corresponding to each investor. */ function setAllocation(address[] calldata addresses, uint256[] calldata amounts) external onlyOwner { require(addresses.length == amounts.length, "Mismatched inputs"); for (uint i = 0; i < addresses.length; i++) { investors[addresses[i]] = Investor(amounts[i], 0); emit TokensAllocated(addresses[i], amounts[i]); } } function setTokenAddressToVest(address tokenAdd) external onlyOwner { require(tokenAdd != address(0), "Vesting Token Address cannot be zero address"); token = IERC20(tokenAdd); } /** * @dev Allows the owner to update the token allocation for a specific investor. * @param investor Address of the investor. * @param newAmount New total allocation for the investor. */ function updateAllocation(address investor, uint256 newAmount) external onlyOwner { require(newAmount >= investors[investor].withdrawn, "New amount cannot be less than already withdrawn"); investors[investor].totalAllocated = newAmount; emit TokensUpdated(investor, newAmount); } /** * @dev Withdraws available tokens based on the vesting schedule. * First withdrawal: 50% at launch. * Next 5 withdrawals: 10% each Week after Launch. */ function withdrawTokens() external nonReentrant { require(vestingStartTime != 0 && block.timestamp >= vestingStartTime, "Vesting period hasn't started yet"); Investor storage investor = investors[msg.sender]; uint256 timeSinceStart = block.timestamp - vestingStartTime; uint256 weeksSinceStart = timeSinceStart / 1 weeks; uint256 totalAllowedToWithdraw; if (weeksSinceStart == 0) { // 50% can be withdrawn immediately at launch totalAllowedToWithdraw = investor.totalAllocated * 50 / 100; } else { // Additional 10% for each subsequent week totalAllowedToWithdraw = investor.totalAllocated * (50 + (weeksSinceStart * 10)) / 100; } if (totalAllowedToWithdraw > investor.totalAllocated) { totalAllowedToWithdraw = investor.totalAllocated; } uint256 availableToWithdraw = totalAllowedToWithdraw - investor.withdrawn; require(availableToWithdraw > 0, "No tokens available for withdrawal"); investor.withdrawn += availableToWithdraw; require(token.transfer(msg.sender, availableToWithdraw), "Token transfer failed"); emit TokensWithdrawn(msg.sender, availableToWithdraw); } /** * @dev Allows the owner to withdraw all tokens from the contract in case of emergencies. */ function emergencyWithdraw(uint256 amount) external onlyOwner { uint256 balance = token.balanceOf(address(this)); require(amount <= balance, "Insufficient balance"); require(token.transfer(owner(), amount), "Emergency withdrawal failed"); emit EmergencyWithdrawal(amount); } // withdraw ETH if stuck or someone sends to the address function withdrawStuckETH() external onlyOwner { bool success; (success,) = address(msg.sender).call{value: address(this).balance}(""); } /** * @dev Provides a read-only function that returns the total allocated and withdrawn tokens for an investor. * @param investor Address of the investor to check. * @return totalAllocated Total tokens allocated to the investor. * @return withdrawn Total tokens withdrawn by the investor so far. */ function checkAllocation(address investor) external view returns (uint256 totalAllocated, uint256 withdrawn) { return (investors[investor].totalAllocated, investors[investor].withdrawn); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"uint256","name":"amountWithdrawn","type":"uint256"}],"name":"EmergencyWithdrawal","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":"investor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"TokensUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"vestingStartTime","type":"uint256"}],"name":"VestingInitialized","type":"event"},{"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"checkAllocation","outputs":[{"internalType":"uint256","name":"totalAllocated","type":"uint256"},{"internalType":"uint256","name":"withdrawn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initializeVesting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"investors","outputs":[{"internalType":"uint256","name":"totalAllocated","type":"uint256"},{"internalType":"uint256","name":"withdrawn","type":"uint256"}],"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":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"setAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"}],"name":"setTokenAddressToVest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"investor","type":"address"},{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vestingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801562000010575f80fd5b5060405162001bec38038062001bec8339818101604052810190620000369190620001f0565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000aa575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a1919062000231565b60405180910390fd5b620000bb81620000ca60201b60201c565b5060018081905550506200024c565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620001ba826200018f565b9050919050565b620001cc81620001ae565b8114620001d7575f80fd5b50565b5f81519050620001ea81620001c1565b92915050565b5f602082840312156200020857620002076200018b565b5b5f6200021784828501620001da565b91505092915050565b6200022b81620001ae565b82525050565b5f602082019050620002465f83018462000220565b92915050565b611992806200025a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e8575f3560e01c8063715018a61161008a578063a8660a7811610064578063a8660a78146101fa578063f2fde38b14610218578063f5648a4f14610234578063fc0c546a1461023e576100e8565b8063715018a6146101c85780638d8f2adb146101d25780638da5cb5b146101dc576100e8565b80633102b21a116100c65780633102b21a146101435780635312ea8e1461015f5780636f7bc9be1461017b57806370851703146101ac576100e8565b806317aed201146100ec57806321ffef0c146100f65780632d6d911714610127575b5f80fd5b6100f461025c565b005b610110600480360381019061010b9190610f59565b6102ea565b60405161011e929190610f9c565b60405180910390f35b610141600480360381019061013c9190610f59565b610376565b005b61015d60048036038101906101589190611079565b61042f565b005b61017960048036038101906101749190611121565b6105d5565b005b61019560048036038101906101909190610f59565b6107d9565b6040516101a3929190610f9c565b60405180910390f35b6101c660048036038101906101c1919061114c565b6107f9565b005b6101d061091a565b005b6101da61092d565b005b6101e4610c05565b6040516101f19190611199565b60405180910390f35b610202610c2c565b60405161020f91906111b2565b60405180910390f35b610232600480360381019061022d9190610f59565b610c32565b005b61023c610cb6565b005b610246610d2b565b6040516102539190611226565b60405180910390f35b610264610d50565b5f600354146102a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029f90611299565b60405180910390fd5b426003819055507f5e1fc654b1f2de8a2a47d73f2ba9a16b9d8973961ed1492c9a74699e2e0e70bd6003546040516102e091906111b2565b60405180910390a1565b5f8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015460045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015491509150915091565b61037e610d50565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e390611327565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610437610d50565b81819050848490501461047f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104769061138f565b60405180910390fd5b5f5b848490508110156105ce5760405180604001604052808484848181106104aa576104a96113ad565b5b9050602002013581526020015f81525060045f8787858181106104d0576104cf6113ad565b5b90506020020160208101906104e59190610f59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015560208201518160010155905050848482818110610546576105456113ad565b5b905060200201602081019061055b9190610f59565b73ffffffffffffffffffffffffffffffffffffffff167f3b87361b8a201c697d51aaa7a509f6dfb3870db9e5c5501d22d3e9fae858f7258484848181106105a5576105a46113ad565b5b905060200201356040516105b991906111b2565b60405180910390a28080600101915050610481565b5050505050565b6105dd610d50565b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106389190611199565b602060405180830381865afa158015610653573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067791906113ee565b9050808211156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390611463565b60405180910390fd5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610701610c05565b846040518363ffffffff1660e01b815260040161071f929190611481565b6020604051808303815f875af115801561073b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075f91906114dd565b61079e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079590611552565b60405180910390fd5b7fcbba13897c2ac3f7fdb11e857b1a5a5c47f51e3fbeffa74d430f2b06177b45c0826040516107cd91906111b2565b60405180910390a15050565b6004602052805f5260405f205f91509050805f0154908060010154905082565b610801610d50565b60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154811015610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087b906115e0565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01819055508173ffffffffffffffffffffffffffffffffffffffff167fa4f4df726d60e3886846ea1ee4281c6404b9090c5520f72046c34ccbcb20c60e8260405161090e91906111b2565b60405180910390a25050565b610922610d50565b61092b5f610dd7565b565b610935610e98565b5f6003541415801561094957506003544210155b610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097f9061166e565b60405180910390fd5b5f60045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f600354426109d791906116b9565b90505f62093a80826109e99190611719565b90505f808203610a165760646032855f0154610a059190611749565b610a0f9190611719565b9050610a4c565b6064600a83610a259190611749565b6032610a31919061178a565b855f0154610a3f9190611749565b610a499190611719565b90505b835f0154811115610a5e57835f015490505b5f846001015482610a6f91906116b9565b90505f8111610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa9061182d565b60405180910390fd5b80856001015f828254610ac6919061178a565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610b29929190611481565b6020604051808303815f875af1158015610b45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6991906114dd565b610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90611895565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b82604051610bee91906111b2565b60405180910390a25050505050610c03610ee7565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b610c3a610d50565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610caa575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ca19190611199565b60405180910390fd5b610cb381610dd7565b50565b610cbe610d50565b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051610ce3906118e0565b5f6040518083038185875af1925050503d805f8114610d1d576040519150601f19603f3d011682016040523d82523d5f602084013e610d22565b606091505b50508091505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d58610ef0565b73ffffffffffffffffffffffffffffffffffffffff16610d76610c05565b73ffffffffffffffffffffffffffffffffffffffff1614610dd557610d99610ef0565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610dcc9190611199565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600260015403610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed49061193e565b60405180910390fd5b6002600181905550565b60018081905550565b5f33905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f2882610eff565b9050919050565b610f3881610f1e565b8114610f42575f80fd5b50565b5f81359050610f5381610f2f565b92915050565b5f60208284031215610f6e57610f6d610ef7565b5b5f610f7b84828501610f45565b91505092915050565b5f819050919050565b610f9681610f84565b82525050565b5f604082019050610faf5f830185610f8d565b610fbc6020830184610f8d565b9392505050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610fe457610fe3610fc3565b5b8235905067ffffffffffffffff81111561100157611000610fc7565b5b60208301915083602082028301111561101d5761101c610fcb565b5b9250929050565b5f8083601f84011261103957611038610fc3565b5b8235905067ffffffffffffffff81111561105657611055610fc7565b5b60208301915083602082028301111561107257611071610fcb565b5b9250929050565b5f805f806040858703121561109157611090610ef7565b5b5f85013567ffffffffffffffff8111156110ae576110ad610efb565b5b6110ba87828801610fcf565b9450945050602085013567ffffffffffffffff8111156110dd576110dc610efb565b5b6110e987828801611024565b925092505092959194509250565b61110081610f84565b811461110a575f80fd5b50565b5f8135905061111b816110f7565b92915050565b5f6020828403121561113657611135610ef7565b5b5f6111438482850161110d565b91505092915050565b5f806040838503121561116257611161610ef7565b5b5f61116f85828601610f45565b92505060206111808582860161110d565b9150509250929050565b61119381610f1e565b82525050565b5f6020820190506111ac5f83018461118a565b92915050565b5f6020820190506111c55f830184610f8d565b92915050565b5f819050919050565b5f6111ee6111e96111e484610eff565b6111cb565b610eff565b9050919050565b5f6111ff826111d4565b9050919050565b5f611210826111f5565b9050919050565b61122081611206565b82525050565b5f6020820190506112395f830184611217565b92915050565b5f82825260208201905092915050565b7f56657374696e6720616c726561647920696e697469616c697a656400000000005f82015250565b5f611283601b8361123f565b915061128e8261124f565b602082019050919050565b5f6020820190508181035f8301526112b081611277565b9050919050565b7f56657374696e6720546f6b656e20416464726573732063616e6e6f74206265205f8201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b5f611311602c8361123f565b915061131c826112b7565b604082019050919050565b5f6020820190508181035f83015261133e81611305565b9050919050565b7f4d69736d61746368656420696e707574730000000000000000000000000000005f82015250565b5f61137960118361123f565b915061138482611345565b602082019050919050565b5f6020820190508181035f8301526113a68161136d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506113e8816110f7565b92915050565b5f6020828403121561140357611402610ef7565b5b5f611410848285016113da565b91505092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f61144d60148361123f565b915061145882611419565b602082019050919050565b5f6020820190508181035f83015261147a81611441565b9050919050565b5f6040820190506114945f83018561118a565b6114a16020830184610f8d565b9392505050565b5f8115159050919050565b6114bc816114a8565b81146114c6575f80fd5b50565b5f815190506114d7816114b3565b92915050565b5f602082840312156114f2576114f1610ef7565b5b5f6114ff848285016114c9565b91505092915050565b7f456d657267656e6379207769746864726177616c206661696c656400000000005f82015250565b5f61153c601b8361123f565b915061154782611508565b602082019050919050565b5f6020820190508181035f83015261156981611530565b9050919050565b7f4e657720616d6f756e742063616e6e6f74206265206c657373207468616e20615f8201527f6c72656164792077697468647261776e00000000000000000000000000000000602082015250565b5f6115ca60308361123f565b91506115d582611570565b604082019050919050565b5f6020820190508181035f8301526115f7816115be565b9050919050565b7f56657374696e6720706572696f64206861736e277420737461727465642079655f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f61165860218361123f565b9150611663826115fe565b604082019050919050565b5f6020820190508181035f8301526116858161164c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6116c382610f84565b91506116ce83610f84565b92508282039050818111156116e6576116e561168c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61172382610f84565b915061172e83610f84565b92508261173e5761173d6116ec565b5b828204905092915050565b5f61175382610f84565b915061175e83610f84565b925082820261176c81610f84565b915082820484148315176117835761178261168c565b5b5092915050565b5f61179482610f84565b915061179f83610f84565b92508282019050808211156117b7576117b661168c565b5b92915050565b7f4e6f20746f6b656e7320617661696c61626c6520666f722077697468647261775f8201527f616c000000000000000000000000000000000000000000000000000000000000602082015250565b5f61181760228361123f565b9150611822826117bd565b604082019050919050565b5f6020820190508181035f8301526118448161180b565b9050919050565b7f546f6b656e207472616e73666572206661696c656400000000000000000000005f82015250565b5f61187f60158361123f565b915061188a8261184b565b602082019050919050565b5f6020820190508181035f8301526118ac81611873565b9050919050565b5f81905092915050565b50565b5f6118cb5f836118b3565b91506118d6826118bd565b5f82019050919050565b5f6118ea826118c0565b9150819050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f611928601f8361123f565b9150611933826118f4565b602082019050919050565b5f6020820190508181035f8301526119558161191c565b905091905056fea264697066735822122057b52e8b22dd97b3c76cfba015fd043571326d10b92ac5a55e830c0bd1ac1d7b64736f6c634300081800330000000000000000000000001851174428f842028ff69774a674f3a9209ccb54
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100e8575f3560e01c8063715018a61161008a578063a8660a7811610064578063a8660a78146101fa578063f2fde38b14610218578063f5648a4f14610234578063fc0c546a1461023e576100e8565b8063715018a6146101c85780638d8f2adb146101d25780638da5cb5b146101dc576100e8565b80633102b21a116100c65780633102b21a146101435780635312ea8e1461015f5780636f7bc9be1461017b57806370851703146101ac576100e8565b806317aed201146100ec57806321ffef0c146100f65780632d6d911714610127575b5f80fd5b6100f461025c565b005b610110600480360381019061010b9190610f59565b6102ea565b60405161011e929190610f9c565b60405180910390f35b610141600480360381019061013c9190610f59565b610376565b005b61015d60048036038101906101589190611079565b61042f565b005b61017960048036038101906101749190611121565b6105d5565b005b61019560048036038101906101909190610f59565b6107d9565b6040516101a3929190610f9c565b60405180910390f35b6101c660048036038101906101c1919061114c565b6107f9565b005b6101d061091a565b005b6101da61092d565b005b6101e4610c05565b6040516101f19190611199565b60405180910390f35b610202610c2c565b60405161020f91906111b2565b60405180910390f35b610232600480360381019061022d9190610f59565b610c32565b005b61023c610cb6565b005b610246610d2b565b6040516102539190611226565b60405180910390f35b610264610d50565b5f600354146102a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029f90611299565b60405180910390fd5b426003819055507f5e1fc654b1f2de8a2a47d73f2ba9a16b9d8973961ed1492c9a74699e2e0e70bd6003546040516102e091906111b2565b60405180910390a1565b5f8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015460045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015491509150915091565b61037e610d50565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e390611327565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610437610d50565b81819050848490501461047f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104769061138f565b60405180910390fd5b5f5b848490508110156105ce5760405180604001604052808484848181106104aa576104a96113ad565b5b9050602002013581526020015f81525060045f8787858181106104d0576104cf6113ad565b5b90506020020160208101906104e59190610f59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015560208201518160010155905050848482818110610546576105456113ad565b5b905060200201602081019061055b9190610f59565b73ffffffffffffffffffffffffffffffffffffffff167f3b87361b8a201c697d51aaa7a509f6dfb3870db9e5c5501d22d3e9fae858f7258484848181106105a5576105a46113ad565b5b905060200201356040516105b991906111b2565b60405180910390a28080600101915050610481565b5050505050565b6105dd610d50565b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106389190611199565b602060405180830381865afa158015610653573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067791906113ee565b9050808211156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390611463565b60405180910390fd5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610701610c05565b846040518363ffffffff1660e01b815260040161071f929190611481565b6020604051808303815f875af115801561073b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075f91906114dd565b61079e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079590611552565b60405180910390fd5b7fcbba13897c2ac3f7fdb11e857b1a5a5c47f51e3fbeffa74d430f2b06177b45c0826040516107cd91906111b2565b60405180910390a15050565b6004602052805f5260405f205f91509050805f0154908060010154905082565b610801610d50565b60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154811015610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087b906115e0565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01819055508173ffffffffffffffffffffffffffffffffffffffff167fa4f4df726d60e3886846ea1ee4281c6404b9090c5520f72046c34ccbcb20c60e8260405161090e91906111b2565b60405180910390a25050565b610922610d50565b61092b5f610dd7565b565b610935610e98565b5f6003541415801561094957506003544210155b610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097f9061166e565b60405180910390fd5b5f60045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f600354426109d791906116b9565b90505f62093a80826109e99190611719565b90505f808203610a165760646032855f0154610a059190611749565b610a0f9190611719565b9050610a4c565b6064600a83610a259190611749565b6032610a31919061178a565b855f0154610a3f9190611749565b610a499190611719565b90505b835f0154811115610a5e57835f015490505b5f846001015482610a6f91906116b9565b90505f8111610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa9061182d565b60405180910390fd5b80856001015f828254610ac6919061178a565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610b29929190611481565b6020604051808303815f875af1158015610b45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6991906114dd565b610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90611895565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b82604051610bee91906111b2565b60405180910390a25050505050610c03610ee7565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b610c3a610d50565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610caa575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ca19190611199565b60405180910390fd5b610cb381610dd7565b50565b610cbe610d50565b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051610ce3906118e0565b5f6040518083038185875af1925050503d805f8114610d1d576040519150601f19603f3d011682016040523d82523d5f602084013e610d22565b606091505b50508091505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d58610ef0565b73ffffffffffffffffffffffffffffffffffffffff16610d76610c05565b73ffffffffffffffffffffffffffffffffffffffff1614610dd557610d99610ef0565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610dcc9190611199565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600260015403610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed49061193e565b60405180910390fd5b6002600181905550565b60018081905550565b5f33905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f2882610eff565b9050919050565b610f3881610f1e565b8114610f42575f80fd5b50565b5f81359050610f5381610f2f565b92915050565b5f60208284031215610f6e57610f6d610ef7565b5b5f610f7b84828501610f45565b91505092915050565b5f819050919050565b610f9681610f84565b82525050565b5f604082019050610faf5f830185610f8d565b610fbc6020830184610f8d565b9392505050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610fe457610fe3610fc3565b5b8235905067ffffffffffffffff81111561100157611000610fc7565b5b60208301915083602082028301111561101d5761101c610fcb565b5b9250929050565b5f8083601f84011261103957611038610fc3565b5b8235905067ffffffffffffffff81111561105657611055610fc7565b5b60208301915083602082028301111561107257611071610fcb565b5b9250929050565b5f805f806040858703121561109157611090610ef7565b5b5f85013567ffffffffffffffff8111156110ae576110ad610efb565b5b6110ba87828801610fcf565b9450945050602085013567ffffffffffffffff8111156110dd576110dc610efb565b5b6110e987828801611024565b925092505092959194509250565b61110081610f84565b811461110a575f80fd5b50565b5f8135905061111b816110f7565b92915050565b5f6020828403121561113657611135610ef7565b5b5f6111438482850161110d565b91505092915050565b5f806040838503121561116257611161610ef7565b5b5f61116f85828601610f45565b92505060206111808582860161110d565b9150509250929050565b61119381610f1e565b82525050565b5f6020820190506111ac5f83018461118a565b92915050565b5f6020820190506111c55f830184610f8d565b92915050565b5f819050919050565b5f6111ee6111e96111e484610eff565b6111cb565b610eff565b9050919050565b5f6111ff826111d4565b9050919050565b5f611210826111f5565b9050919050565b61122081611206565b82525050565b5f6020820190506112395f830184611217565b92915050565b5f82825260208201905092915050565b7f56657374696e6720616c726561647920696e697469616c697a656400000000005f82015250565b5f611283601b8361123f565b915061128e8261124f565b602082019050919050565b5f6020820190508181035f8301526112b081611277565b9050919050565b7f56657374696e6720546f6b656e20416464726573732063616e6e6f74206265205f8201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b5f611311602c8361123f565b915061131c826112b7565b604082019050919050565b5f6020820190508181035f83015261133e81611305565b9050919050565b7f4d69736d61746368656420696e707574730000000000000000000000000000005f82015250565b5f61137960118361123f565b915061138482611345565b602082019050919050565b5f6020820190508181035f8301526113a68161136d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506113e8816110f7565b92915050565b5f6020828403121561140357611402610ef7565b5b5f611410848285016113da565b91505092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f61144d60148361123f565b915061145882611419565b602082019050919050565b5f6020820190508181035f83015261147a81611441565b9050919050565b5f6040820190506114945f83018561118a565b6114a16020830184610f8d565b9392505050565b5f8115159050919050565b6114bc816114a8565b81146114c6575f80fd5b50565b5f815190506114d7816114b3565b92915050565b5f602082840312156114f2576114f1610ef7565b5b5f6114ff848285016114c9565b91505092915050565b7f456d657267656e6379207769746864726177616c206661696c656400000000005f82015250565b5f61153c601b8361123f565b915061154782611508565b602082019050919050565b5f6020820190508181035f83015261156981611530565b9050919050565b7f4e657720616d6f756e742063616e6e6f74206265206c657373207468616e20615f8201527f6c72656164792077697468647261776e00000000000000000000000000000000602082015250565b5f6115ca60308361123f565b91506115d582611570565b604082019050919050565b5f6020820190508181035f8301526115f7816115be565b9050919050565b7f56657374696e6720706572696f64206861736e277420737461727465642079655f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f61165860218361123f565b9150611663826115fe565b604082019050919050565b5f6020820190508181035f8301526116858161164c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6116c382610f84565b91506116ce83610f84565b92508282039050818111156116e6576116e561168c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61172382610f84565b915061172e83610f84565b92508261173e5761173d6116ec565b5b828204905092915050565b5f61175382610f84565b915061175e83610f84565b925082820261176c81610f84565b915082820484148315176117835761178261168c565b5b5092915050565b5f61179482610f84565b915061179f83610f84565b92508282019050808211156117b7576117b661168c565b5b92915050565b7f4e6f20746f6b656e7320617661696c61626c6520666f722077697468647261775f8201527f616c000000000000000000000000000000000000000000000000000000000000602082015250565b5f61181760228361123f565b9150611822826117bd565b604082019050919050565b5f6020820190508181035f8301526118448161180b565b9050919050565b7f546f6b656e207472616e73666572206661696c656400000000000000000000005f82015250565b5f61187f60158361123f565b915061188a8261184b565b602082019050919050565b5f6020820190508181035f8301526118ac81611873565b9050919050565b5f81905092915050565b50565b5f6118cb5f836118b3565b91506118d6826118bd565b5f82019050919050565b5f6118ea826118c0565b9150819050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f611928601f8361123f565b9150611933826118f4565b602082019050919050565b5f6020820190508181035f8301526119558161191c565b905091905056fea264697066735822122057b52e8b22dd97b3c76cfba015fd043571326d10b92ac5a55e830c0bd1ac1d7b64736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001851174428f842028ff69774a674f3a9209ccb54
-----Decoded View---------------
Arg [0] : initialOwner (address): 0x1851174428f842028fF69774a674F3a9209cCb54
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001851174428f842028ff69774a674f3a9209ccb54
Deployed Bytecode Sourcemap
10003:5412:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11187:225;;;:::i;:::-;;15210:202;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12021:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11641:374;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14329:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10421:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12447:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6186:103;;;:::i;:::-;;12949:1261;;;:::i;:::-;;5511:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10127:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6444:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14710:160;;;:::i;:::-;;10060:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11187:225;5397:13;:11;:13::i;:::-;11274:1:::1;11254:16;;:21;11246:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;11337:15;11318:16;:34;;;;11368:36;11387:16;;11368:36;;;;;;:::i;:::-;;;;;;;;11187:225::o:0;15210:202::-;15276:22;15300:17;15338:9;:19;15348:8;15338:19;;;;;;;;;;;;;;;:34;;;15374:9;:19;15384:8;15374:19;;;;;;;;;;;;;;;:29;;;15330:74;;;;15210:202;;;:::o;12021:201::-;5397:13;:11;:13::i;:::-;12128:1:::1;12108:22;;:8;:22;;::::0;12100:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12205:8;12190:5;;:24;;;;;;;;;;;;;;;;;;12021:201:::0;:::o;11641:374::-;5397:13;:11;:13::i;:::-;11780:7:::1;;:14;;11760:9;;:16;;:34;11752:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11832:6;11827:181;11848:9;;:16;;11844:1;:20;11827:181;;;11912:23;;;;;;;;11921:7;;11929:1;11921:10;;;;;;;:::i;:::-;;;;;;;;11912:23;;;;11933:1;11912:23;;::::0;11886:9:::1;:23;11896:9;;11906:1;11896:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11886:23;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;;11971:9;;11981:1;11971:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11955:41;;;11985:7;;11993:1;11985:10;;;;;;;:::i;:::-;;;;;;;;11955:41;;;;;;:::i;:::-;;;;;;;;11866:3;;;;;;;11827:181;;;;11641:374:::0;;;;:::o;14329:311::-;5397:13;:11;:13::i;:::-;14402:15:::1;14420:5;;;;;;;;;;;:15;;;14444:4;14420:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14402:48;;14479:7;14469:6;:17;;14461:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;14530:5;;;;;;;;;;;:14;;;14545:7;:5;:7::i;:::-;14554:6;14530:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14522:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14609:27;14629:6;14609:27;;;;;;:::i;:::-;;;;;;;;14391:249;14329:311:::0;:::o;10421:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12447:311::-;5397:13;:11;:13::i;:::-;12561:9:::1;:19;12571:8;12561:19;;;;;;;;;;;;;;;:29;;;12548:9;:42;;12540:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;12691:9;12654;:19;12664:8;12654:19;;;;;;;;;;;;;;;:34;;:46;;;;12730:8;12716:34;;;12740:9;12716:34;;;;;;:::i;:::-;;;;;;;;12447:311:::0;;:::o;6186:103::-;5397:13;:11;:13::i;:::-;6251:30:::1;6278:1;6251:18;:30::i;:::-;6186:103::o:0;12949:1261::-;2240:21;:19;:21::i;:::-;13036:1:::1;13016:16;;:21;;:60;;;;;13060:16;;13041:15;:35;;13016:60;13008:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;13125:25;13153:9;:21;13163:10;13153:21;;;;;;;;;;;;;;;13125:49;;13187:22;13230:16;;13212:15;:34;;;;:::i;:::-;13187:59;;13257:23;13300:7;13283:14;:24;;;;:::i;:::-;13257:50;;13320:30;13386:1:::0;13367:15:::1;:20:::0;13363:338:::1;;13519:3;13514:2;13488:8;:23;;;:28;;;;:::i;:::-;:34;;;;:::i;:::-;13463:59;;13363:338;;;13686:3;13679:2;13661:15;:20;;;;:::i;:::-;13655:2;:27;;;;:::i;:::-;13628:8;:23;;;:55;;;;:::i;:::-;:61;;;;:::i;:::-;13603:86;;13363:338;13735:8;:23;;;13710:22;:48;13706:122;;;13796:8;:23;;;13771:48;;13706:122;13842:27;13897:8;:18;;;13872:22;:43;;;;:::i;:::-;13842:73;;13956:1;13934:19;:23;13926:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14031:19;14009:8;:18;;;:41;;;;;;;:::i;:::-;;;;;;;;14069:5;;;;;;;;;;;:14;;;14084:10;14096:19;14069:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14061:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;14174:10;14158:48;;;14186:19;14158:48;;;;;;:::i;:::-;;;;;;;;12997:1213;;;;;2284:20:::0;:18;:20::i;:::-;12949:1261::o;5511:87::-;5557:7;5584:6;;;;;;;;;;;5577:13;;5511:87;:::o;10127:31::-;;;;:::o;6444:220::-;5397:13;:11;:13::i;:::-;6549:1:::1;6529:22;;:8;:22;;::::0;6525:93:::1;;6603:1;6575:31;;;;;;;;;;;:::i;:::-;;;;;;;;6525:93;6628:28;6647:8;6628:18;:28::i;:::-;6444:220:::0;:::o;14710:160::-;5397:13;:11;:13::i;:::-;14768:12:::1;14812:10;14804:24;;14836:21;14804:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14791:71;;;;;14757:113;14710:160::o:0;10060:19::-;;;;;;;;;;;;;:::o;5676:166::-;5747:12;:10;:12::i;:::-;5736:23;;:7;:5;:7::i;:::-;:23;;;5732:103;;5810:12;:10;:12::i;:::-;5783:40;;;;;;;;;;;:::i;:::-;;;;;;;;5732:103;5676:166::o;6824:191::-;6898:16;6917:6;;;;;;;;;;;6898:25;;6943:8;6934:6;;:17;;;;;;;;;;;;;;;;;;6998:8;6967:40;;6988:8;6967:40;;;;;;;;;;;;6887:128;6824:191;:::o;2320:293::-;1722:1;2454:7;;:19;2446:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1722:1;2587:7;:18;;;;2320:293::o;2621:213::-;1678:1;2804:7;:22;;;;2621:213::o;3677:98::-;3730:7;3757:10;3750:17;;3677:98;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310: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:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:332::-;1504:4;1542:2;1531:9;1527:18;1519:26;;1555:71;1623:1;1612:9;1608:17;1599:6;1555:71;:::i;:::-;1636:72;1704:2;1693:9;1689:18;1680:6;1636:72;:::i;:::-;1383:332;;;;;:::o;1721:117::-;1830:1;1827;1820:12;1844:117;1953:1;1950;1943:12;1967:117;2076:1;2073;2066:12;2107:568;2180:8;2190:6;2240:3;2233:4;2225:6;2221:17;2217:27;2207:122;;2248:79;;:::i;:::-;2207:122;2361:6;2348:20;2338:30;;2391:18;2383:6;2380:30;2377:117;;;2413:79;;:::i;:::-;2377:117;2527:4;2519:6;2515:17;2503:29;;2581:3;2573:4;2565:6;2561:17;2551:8;2547:32;2544:41;2541:128;;;2588:79;;:::i;:::-;2541:128;2107:568;;;;;:::o;2698:::-;2771:8;2781:6;2831:3;2824:4;2816:6;2812:17;2808:27;2798:122;;2839:79;;:::i;:::-;2798:122;2952:6;2939:20;2929:30;;2982:18;2974:6;2971:30;2968:117;;;3004:79;;:::i;:::-;2968:117;3118:4;3110:6;3106:17;3094:29;;3172:3;3164:4;3156:6;3152:17;3142:8;3138:32;3135:41;3132:128;;;3179:79;;:::i;:::-;3132:128;2698:568;;;;;:::o;3272:934::-;3394:6;3402;3410;3418;3467:2;3455:9;3446:7;3442:23;3438:32;3435:119;;;3473:79;;:::i;:::-;3435:119;3621:1;3610:9;3606:17;3593:31;3651:18;3643:6;3640:30;3637:117;;;3673:79;;:::i;:::-;3637:117;3786:80;3858:7;3849:6;3838:9;3834:22;3786:80;:::i;:::-;3768:98;;;;3564:312;3943:2;3932:9;3928:18;3915:32;3974:18;3966:6;3963:30;3960:117;;;3996:79;;:::i;:::-;3960:117;4109:80;4181:7;4172:6;4161:9;4157:22;4109:80;:::i;:::-;4091:98;;;;3886:313;3272:934;;;;;;;:::o;4212:122::-;4285:24;4303:5;4285:24;:::i;:::-;4278:5;4275:35;4265:63;;4324:1;4321;4314:12;4265:63;4212:122;:::o;4340:139::-;4386:5;4424:6;4411:20;4402:29;;4440:33;4467:5;4440:33;:::i;:::-;4340:139;;;;:::o;4485:329::-;4544:6;4593:2;4581:9;4572:7;4568:23;4564:32;4561:119;;;4599:79;;:::i;:::-;4561:119;4719:1;4744:53;4789:7;4780:6;4769:9;4765:22;4744:53;:::i;:::-;4734:63;;4690:117;4485:329;;;;:::o;4820:474::-;4888:6;4896;4945:2;4933:9;4924:7;4920:23;4916:32;4913:119;;;4951:79;;:::i;:::-;4913:119;5071:1;5096:53;5141:7;5132:6;5121:9;5117:22;5096:53;:::i;:::-;5086:63;;5042:117;5198:2;5224:53;5269:7;5260:6;5249:9;5245:22;5224:53;:::i;:::-;5214:63;;5169:118;4820:474;;;;;:::o;5300:118::-;5387:24;5405:5;5387:24;:::i;:::-;5382:3;5375:37;5300:118;;:::o;5424:222::-;5517:4;5555:2;5544:9;5540:18;5532:26;;5568:71;5636:1;5625:9;5621:17;5612:6;5568:71;:::i;:::-;5424:222;;;;:::o;5652:::-;5745:4;5783:2;5772:9;5768:18;5760:26;;5796:71;5864:1;5853:9;5849:17;5840:6;5796:71;:::i;:::-;5652:222;;;;:::o;5880:60::-;5908:3;5929:5;5922:12;;5880:60;;;:::o;5946:142::-;5996:9;6029:53;6047:34;6056:24;6074:5;6056:24;:::i;:::-;6047:34;:::i;:::-;6029:53;:::i;:::-;6016:66;;5946:142;;;:::o;6094:126::-;6144:9;6177:37;6208:5;6177:37;:::i;:::-;6164:50;;6094:126;;;:::o;6226:140::-;6290:9;6323:37;6354:5;6323:37;:::i;:::-;6310:50;;6226:140;;;:::o;6372:159::-;6473:51;6518:5;6473:51;:::i;:::-;6468:3;6461:64;6372:159;;:::o;6537:250::-;6644:4;6682:2;6671:9;6667:18;6659:26;;6695:85;6777:1;6766:9;6762:17;6753:6;6695:85;:::i;:::-;6537:250;;;;:::o;6793:169::-;6877:11;6911:6;6906:3;6899:19;6951:4;6946:3;6942:14;6927:29;;6793:169;;;;:::o;6968:177::-;7108:29;7104:1;7096:6;7092:14;7085:53;6968:177;:::o;7151:366::-;7293:3;7314:67;7378:2;7373:3;7314:67;:::i;:::-;7307:74;;7390:93;7479:3;7390:93;:::i;:::-;7508:2;7503:3;7499:12;7492:19;;7151:366;;;:::o;7523:419::-;7689:4;7727:2;7716:9;7712:18;7704:26;;7776:9;7770:4;7766:20;7762:1;7751:9;7747:17;7740:47;7804:131;7930:4;7804:131;:::i;:::-;7796:139;;7523:419;;;:::o;7948:231::-;8088:34;8084:1;8076:6;8072:14;8065:58;8157:14;8152:2;8144:6;8140:15;8133:39;7948:231;:::o;8185:366::-;8327:3;8348:67;8412:2;8407:3;8348:67;:::i;:::-;8341:74;;8424:93;8513:3;8424:93;:::i;:::-;8542:2;8537:3;8533:12;8526:19;;8185:366;;;:::o;8557:419::-;8723:4;8761:2;8750:9;8746:18;8738:26;;8810:9;8804:4;8800:20;8796:1;8785:9;8781:17;8774:47;8838:131;8964:4;8838:131;:::i;:::-;8830:139;;8557:419;;;:::o;8982:167::-;9122:19;9118:1;9110:6;9106:14;9099:43;8982:167;:::o;9155:366::-;9297:3;9318:67;9382:2;9377:3;9318:67;:::i;:::-;9311:74;;9394:93;9483:3;9394:93;:::i;:::-;9512:2;9507:3;9503:12;9496:19;;9155:366;;;:::o;9527:419::-;9693:4;9731:2;9720:9;9716:18;9708:26;;9780:9;9774:4;9770:20;9766:1;9755:9;9751:17;9744:47;9808:131;9934:4;9808:131;:::i;:::-;9800:139;;9527:419;;;:::o;9952:180::-;10000:77;9997:1;9990:88;10097:4;10094:1;10087:15;10121:4;10118:1;10111:15;10138:143;10195:5;10226:6;10220:13;10211:22;;10242:33;10269:5;10242:33;:::i;:::-;10138:143;;;;:::o;10287:351::-;10357:6;10406:2;10394:9;10385:7;10381:23;10377:32;10374:119;;;10412:79;;:::i;:::-;10374:119;10532:1;10557:64;10613:7;10604:6;10593:9;10589:22;10557:64;:::i;:::-;10547:74;;10503:128;10287:351;;;;:::o;10644:170::-;10784:22;10780:1;10772:6;10768:14;10761:46;10644:170;:::o;10820:366::-;10962:3;10983:67;11047:2;11042:3;10983:67;:::i;:::-;10976:74;;11059:93;11148:3;11059:93;:::i;:::-;11177:2;11172:3;11168:12;11161:19;;10820:366;;;:::o;11192:419::-;11358:4;11396:2;11385:9;11381:18;11373:26;;11445:9;11439:4;11435:20;11431:1;11420:9;11416:17;11409:47;11473:131;11599:4;11473:131;:::i;:::-;11465:139;;11192:419;;;:::o;11617:332::-;11738:4;11776:2;11765:9;11761:18;11753:26;;11789:71;11857:1;11846:9;11842:17;11833:6;11789:71;:::i;:::-;11870:72;11938:2;11927:9;11923:18;11914:6;11870:72;:::i;:::-;11617:332;;;;;:::o;11955:90::-;11989:7;12032:5;12025:13;12018:21;12007:32;;11955:90;;;:::o;12051:116::-;12121:21;12136:5;12121:21;:::i;:::-;12114:5;12111:32;12101:60;;12157:1;12154;12147:12;12101:60;12051:116;:::o;12173:137::-;12227:5;12258:6;12252:13;12243:22;;12274:30;12298:5;12274:30;:::i;:::-;12173:137;;;;:::o;12316:345::-;12383:6;12432:2;12420:9;12411:7;12407:23;12403:32;12400:119;;;12438:79;;:::i;:::-;12400:119;12558:1;12583:61;12636:7;12627:6;12616:9;12612:22;12583:61;:::i;:::-;12573:71;;12529:125;12316:345;;;;:::o;12667:177::-;12807:29;12803:1;12795:6;12791:14;12784:53;12667:177;:::o;12850:366::-;12992:3;13013:67;13077:2;13072:3;13013:67;:::i;:::-;13006:74;;13089:93;13178:3;13089:93;:::i;:::-;13207:2;13202:3;13198:12;13191:19;;12850:366;;;:::o;13222:419::-;13388:4;13426:2;13415:9;13411:18;13403:26;;13475:9;13469:4;13465:20;13461:1;13450:9;13446:17;13439:47;13503:131;13629:4;13503:131;:::i;:::-;13495:139;;13222:419;;;:::o;13647:235::-;13787:34;13783:1;13775:6;13771:14;13764:58;13856:18;13851:2;13843:6;13839:15;13832:43;13647:235;:::o;13888:366::-;14030:3;14051:67;14115:2;14110:3;14051:67;:::i;:::-;14044:74;;14127:93;14216:3;14127:93;:::i;:::-;14245:2;14240:3;14236:12;14229:19;;13888:366;;;:::o;14260:419::-;14426:4;14464:2;14453:9;14449:18;14441:26;;14513:9;14507:4;14503:20;14499:1;14488:9;14484:17;14477:47;14541:131;14667:4;14541:131;:::i;:::-;14533:139;;14260:419;;;:::o;14685:220::-;14825:34;14821:1;14813:6;14809:14;14802:58;14894:3;14889:2;14881:6;14877:15;14870:28;14685:220;:::o;14911:366::-;15053:3;15074:67;15138:2;15133:3;15074:67;:::i;:::-;15067:74;;15150:93;15239:3;15150:93;:::i;:::-;15268:2;15263:3;15259:12;15252:19;;14911:366;;;:::o;15283:419::-;15449:4;15487:2;15476:9;15472:18;15464:26;;15536:9;15530:4;15526:20;15522:1;15511:9;15507:17;15500:47;15564:131;15690:4;15564:131;:::i;:::-;15556:139;;15283:419;;;:::o;15708:180::-;15756:77;15753:1;15746:88;15853:4;15850:1;15843:15;15877:4;15874:1;15867:15;15894:194;15934:4;15954:20;15972:1;15954:20;:::i;:::-;15949:25;;15988:20;16006:1;15988:20;:::i;:::-;15983:25;;16032:1;16029;16025:9;16017:17;;16056:1;16050:4;16047:11;16044:37;;;16061:18;;:::i;:::-;16044:37;15894:194;;;;:::o;16094:180::-;16142:77;16139:1;16132:88;16239:4;16236:1;16229:15;16263:4;16260:1;16253:15;16280:185;16320:1;16337:20;16355:1;16337:20;:::i;:::-;16332:25;;16371:20;16389:1;16371:20;:::i;:::-;16366:25;;16410:1;16400:35;;16415:18;;:::i;:::-;16400:35;16457:1;16454;16450:9;16445:14;;16280:185;;;;:::o;16471:410::-;16511:7;16534:20;16552:1;16534:20;:::i;:::-;16529:25;;16568:20;16586:1;16568:20;:::i;:::-;16563:25;;16623:1;16620;16616:9;16645:30;16663:11;16645:30;:::i;:::-;16634:41;;16824:1;16815:7;16811:15;16808:1;16805:22;16785:1;16778:9;16758:83;16735:139;;16854:18;;:::i;:::-;16735:139;16519:362;16471:410;;;;:::o;16887:191::-;16927:3;16946:20;16964:1;16946:20;:::i;:::-;16941:25;;16980:20;16998:1;16980:20;:::i;:::-;16975:25;;17023:1;17020;17016:9;17009:16;;17044:3;17041:1;17038:10;17035:36;;;17051:18;;:::i;:::-;17035:36;16887:191;;;;:::o;17084:221::-;17224:34;17220:1;17212:6;17208:14;17201:58;17293:4;17288:2;17280:6;17276:15;17269:29;17084:221;:::o;17311:366::-;17453:3;17474:67;17538:2;17533:3;17474:67;:::i;:::-;17467:74;;17550:93;17639:3;17550:93;:::i;:::-;17668:2;17663:3;17659:12;17652:19;;17311:366;;;:::o;17683:419::-;17849:4;17887:2;17876:9;17872:18;17864:26;;17936:9;17930:4;17926:20;17922:1;17911:9;17907:17;17900:47;17964:131;18090:4;17964:131;:::i;:::-;17956:139;;17683:419;;;:::o;18108:171::-;18248:23;18244:1;18236:6;18232:14;18225:47;18108:171;:::o;18285:366::-;18427:3;18448:67;18512:2;18507:3;18448:67;:::i;:::-;18441:74;;18524:93;18613:3;18524:93;:::i;:::-;18642:2;18637:3;18633:12;18626:19;;18285:366;;;:::o;18657:419::-;18823:4;18861:2;18850:9;18846:18;18838:26;;18910:9;18904:4;18900:20;18896:1;18885:9;18881:17;18874:47;18938:131;19064:4;18938:131;:::i;:::-;18930:139;;18657:419;;;:::o;19082:147::-;19183:11;19220:3;19205:18;;19082:147;;;;:::o;19235:114::-;;:::o;19355:398::-;19514:3;19535:83;19616:1;19611:3;19535:83;:::i;:::-;19528:90;;19627:93;19716:3;19627:93;:::i;:::-;19745:1;19740:3;19736:11;19729:18;;19355:398;;;:::o;19759:379::-;19943:3;19965:147;20108:3;19965:147;:::i;:::-;19958:154;;20129:3;20122:10;;19759:379;;;:::o;20144:181::-;20284:33;20280:1;20272:6;20268:14;20261:57;20144:181;:::o;20331:366::-;20473:3;20494:67;20558:2;20553:3;20494:67;:::i;:::-;20487:74;;20570:93;20659:3;20570:93;:::i;:::-;20688:2;20683:3;20679:12;20672:19;;20331:366;;;:::o;20703:419::-;20869:4;20907:2;20896:9;20892:18;20884:26;;20956:9;20950:4;20946:20;20942:1;20931:9;20927:17;20920:47;20984:131;21110:4;20984:131;:::i;:::-;20976:139;;20703:419;;;:::o
Swarm Source
ipfs://57b52e8b22dd97b3c76cfba015fd043571326d10b92ac5a55e830c0bd1ac1d7b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.000622 | 16,552,917.6926 | $10,299.11 |
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.