More Info
Private Name Tags
ContractCreator
Multichain Info
Latest 25 from a total of 135 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake Deposit | 19999665 | 138 days ago | IN | 0 ETH | 0.00057904 | ||||
Unstake Deposit | 19879471 | 155 days ago | IN | 0 ETH | 0.00077177 | ||||
Stake | 19760920 | 172 days ago | IN | 0 ETH | 0.00211633 | ||||
Stake | 19758159 | 172 days ago | IN | 0 ETH | 0.00080725 | ||||
Unstake Deposit | 19716165 | 178 days ago | IN | 0 ETH | 0.00219872 | ||||
Unstake Deposit | 19705434 | 179 days ago | IN | 0 ETH | 0.00083283 | ||||
Stake | 19517011 | 206 days ago | IN | 0 ETH | 0.00365328 | ||||
Unstake Deposit | 19512503 | 206 days ago | IN | 0 ETH | 0.00458995 | ||||
Unstake Deposit | 19494177 | 209 days ago | IN | 0 ETH | 0.00191897 | ||||
Unstake Deposit | 19460275 | 214 days ago | IN | 0 ETH | 0.0018178 | ||||
Unstake Deposit | 19457233 | 214 days ago | IN | 0 ETH | 0.00290481 | ||||
Unstake Deposit | 19447312 | 216 days ago | IN | 0 ETH | 0.00667284 | ||||
Unstake Deposit | 19414896 | 220 days ago | IN | 0 ETH | 0.00562859 | ||||
Unstake Deposit | 19396184 | 223 days ago | IN | 0 ETH | 0.00436894 | ||||
Unstake Deposit | 19396178 | 223 days ago | IN | 0 ETH | 0.00469988 | ||||
Unstake Deposit | 19396175 | 223 days ago | IN | 0 ETH | 0.00487474 | ||||
Unstake Deposit | 19396165 | 223 days ago | IN | 0 ETH | 0.01023963 | ||||
Unstake Deposit | 19374184 | 226 days ago | IN | 0 ETH | 0.01233484 | ||||
Stake | 19341551 | 230 days ago | IN | 0 ETH | 0.01126923 | ||||
Stake | 19312965 | 234 days ago | IN | 0 ETH | 0.01151344 | ||||
Unstake Deposit | 19312895 | 234 days ago | IN | 0 ETH | 0.0063928 | ||||
Stake | 19294937 | 237 days ago | IN | 0 ETH | 0.00393885 | ||||
Unstake Deposit | 19294922 | 237 days ago | IN | 0 ETH | 0.00220249 | ||||
Stake | 19290976 | 238 days ago | IN | 0 ETH | 0.01941868 | ||||
Stake | 19290543 | 238 days ago | IN | 0 ETH | 0.01104717 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
AstroXStakingV3
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-12-11 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.23; // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) /** * @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 amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 amount) external returns (bool); } // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) /** * @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; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @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 { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @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 { require(newOwner != address(0), "Ownable: new owner is the zero address"); _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); } } contract AstroXStakingV3 is Ownable { IERC20 public token; uint256 public totalStakedAmount; uint256 public totalRewardsAmount; address public withdrawPenaltyAddress = address(0x47871801c9842CA9645624933EE32E833616e623); uint64 public withdrawPenalty = 50; // 5% is 5 uint64 public withdrawPenaltyBasis = 1000; // 100% uint64 public lockDuration = 2 weeks; struct StakingDeposit { uint120 depositId; uint64 createdAt; uint64 unlocksAt; bool isWithdrawn; uint256 amount; address depositor; } StakingDeposit[] public stakingDeposits; mapping(address => uint256 totalStaked) public totalStaked; event Staked(uint256 depositId, address indexed user, uint256 amount); event Unstaked(uint256 depositId, address indexed user, uint256 amount); event RewardsFunded(address source, uint256 amount); constructor(address _tokenAddress) { token = IERC20(_tokenAddress); } function changeContractSettings( address _withdrawPenaltyAddress, uint64 _withdrawPenalty, uint64 _withdrawPenaltyBasis, uint64 _lockDuration ) external onlyOwner { require(_withdrawPenaltyAddress != address(0), "Invalid penalty address"); require(_withdrawPenaltyBasis > 0, "Invalid penalty basis"); require(_withdrawPenalty <= _withdrawPenaltyBasis, "Invalid penalty"); require(_lockDuration > 0, "Invalid lock duration"); withdrawPenaltyAddress = _withdrawPenaltyAddress; withdrawPenalty = _withdrawPenalty; withdrawPenaltyBasis = _withdrawPenaltyBasis; lockDuration = _lockDuration; } function getDeposits() external view returns (StakingDeposit[] memory) { return stakingDeposits; } function _calculateReward(uint256 _amount) internal view returns (uint256) { require(totalStakedAmount > 0, "No staked amount"); return (_amount * totalRewardsAmount) / totalStakedAmount; } function _calculateWithdrawPenalty(uint256 _amount) internal view returns (uint256) { return (_amount * withdrawPenalty) / withdrawPenaltyBasis; } function fundRewards(uint256 amount) external { require(amount > 0, "Cannot fund 0 tokens"); require(token.transferFrom(msg.sender, address(this), amount), "Failed to transfer tokens"); totalRewardsAmount += amount; emit RewardsFunded(msg.sender, amount); } function stake(uint256 amount) external { require(amount > 0, "Cannot stake 0 tokens"); require(token.transferFrom(msg.sender, address(this), amount), "Failed to transfer tokens"); uint256 _depositId = stakingDeposits.length; stakingDeposits.push( StakingDeposit({ depositId: uint120(_depositId), amount: amount, createdAt: uint64(block.timestamp), unlocksAt: uint64(block.timestamp + lockDuration), isWithdrawn: false, depositor: msg.sender }) ); unchecked { totalStaked[msg.sender] += amount; totalStakedAmount += amount; } emit Staked(_depositId, msg.sender, amount); } function unstakeDeposit(uint256 _depositId) external { StakingDeposit storage deposit = stakingDeposits[_depositId]; require(_depositId < stakingDeposits.length, "Invalid deposit ID"); require(!deposit.isWithdrawn, "Deposit already withdrawn"); require(deposit.depositor == msg.sender, "Not depositor"); require(deposit.unlocksAt <= block.timestamp, "Deposit is still locked"); uint256 reward = _calculateReward(deposit.amount); require(reward > 0, "No reward to claim"); deposit.isWithdrawn = true; unchecked { totalStaked[msg.sender] -= deposit.amount; totalStakedAmount -= deposit.amount; totalRewardsAmount -= reward; } require(token.transfer(msg.sender, deposit.amount), "Failed to transfer tokens"); require(token.transfer(msg.sender, reward), "Failed to transfer tokens"); emit Unstaked(deposit.depositId, msg.sender, deposit.amount); } function emergencyWithdraw(uint256 _depositId) external { StakingDeposit storage deposit = stakingDeposits[_depositId]; require(_depositId < stakingDeposits.length, "Invalid deposit ID"); require(!deposit.isWithdrawn, "Deposit already withdrawn"); require(deposit.depositor == msg.sender, "Not depositor"); deposit.isWithdrawn = true; uint256 amountToWithdraw = deposit.amount; uint256 withdrawPenaltyWei = _calculateWithdrawPenalty(amountToWithdraw); amountToWithdraw -= withdrawPenaltyWei; // Send the penalty to the penalty address require(token.transfer(withdrawPenaltyAddress, withdrawPenaltyWei), "Failed to transfer tokens"); unchecked { totalStaked[msg.sender] -= deposit.amount; totalStakedAmount -= deposit.amount; } require(token.transfer(msg.sender, amountToWithdraw), "Failed to transfer tokens"); emit Unstaked(deposit.depositId, msg.sender, deposit.amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"address","name":"source","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsFunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"depositId","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"depositId","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unstaked","type":"event"},{"inputs":[{"internalType":"address","name":"_withdrawPenaltyAddress","type":"address"},{"internalType":"uint64","name":"_withdrawPenalty","type":"uint64"},{"internalType":"uint64","name":"_withdrawPenaltyBasis","type":"uint64"},{"internalType":"uint64","name":"_lockDuration","type":"uint64"}],"name":"changeContractSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_depositId","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDeposits","outputs":[{"components":[{"internalType":"uint120","name":"depositId","type":"uint120"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint64","name":"unlocksAt","type":"uint64"},{"internalType":"bool","name":"isWithdrawn","type":"bool"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"depositor","type":"address"}],"internalType":"struct AstroXStakingV3.StakingDeposit[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockDuration","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"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":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakingDeposits","outputs":[{"internalType":"uint120","name":"depositId","type":"uint120"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint64","name":"unlocksAt","type":"uint64"},{"internalType":"bool","name":"isWithdrawn","type":"bool"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"depositor","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardsAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"totalStaked","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_depositId","type":"uint256"}],"name":"unstakeDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawPenalty","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawPenaltyAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawPenaltyBasis","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052600480546001600160e01b031916743247871801c9842ca9645624933ee32e833616e623179055600580546001600160801b0319166a12750000000000000003e8179055348015610053575f80fd5b506040516114fc3803806114fc833981016040819052610072916100ef565b61007b336100a0565b600180546001600160a01b0319166001600160a01b039290921691909117905561011c565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100ff575f80fd5b81516001600160a01b0381168114610115575f80fd5b9392505050565b6113d3806101295f395ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c80638da5cb5b1161009e578063a694fc3a1161006e578063a694fc3a1461029a578063ab6ccbac146102ad578063e63665eb146102c0578063f2fde38b146102d3578063fc0c546a146102e6575f80fd5b80638da5cb5b146102455780638f90c6e31461025557806393707a19146102685780639bfd8d611461027b575f80fd5b80631e1f1d37116100e45780631e1f1d37146101a85780635312ea8e1461020a578063567e98f91461021f5780636b149d8714610228578063715018a61461023d575f80fd5b806304554443146101155780630acb27a11461014c5780630d6ceef2146101775780631a1ce2fc1461018e575b5f80fd5b60055461012f90600160401b90046001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b60045461015f906001600160a01b031681565b6040516001600160a01b039091168152602001610143565b61018060035481565b604051908152602001610143565b60045461012f90600160a01b90046001600160401b031681565b6101bb6101b6366004611173565b6102f9565b604080516001600160781b039790971687526001600160401b03958616602088015293909416928501929092521515606084015260808301526001600160a01b031660a082015260c001610143565b61021d610218366004611173565b610365565b005b61018060025481565b610230610649565b604051610143919061118a565b61021d610709565b5f546001600160a01b031661015f565b61021d610263366004611252565b61071c565b61021d610276366004611173565b6108d4565b6101806102893660046112a3565b60076020525f908152604090205481565b61021d6102a8366004611173565b610a00565b61021d6102bb366004611173565b610c50565b60055461012f906001600160401b031681565b61021d6102e13660046112a3565b610fc6565b60015461015f906001600160a01b031681565b60068181548110610308575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160781b03821693506001600160401b03600160781b8304811693600160b81b84049091169260ff600160f81b90910416916001600160a01b031686565b5f60068281548110610379576103796112c3565b905f5260205f209060030201905060068054905082106103d55760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590819195c1bdcda5d08125160721b60448201526064015b60405180910390fd5b8054600160f81b900460ff161561042a5760405162461bcd60e51b81526020600482015260196024820152782232b837b9b4ba1030b63932b0b23c903bb4ba34323930bbb760391b60448201526064016103cc565b60028101546001600160a01b031633146104765760405162461bcd60e51b815260206004820152600d60248201526c2737ba103232b837b9b4ba37b960991b60448201526064016103cc565b80546001600160f81b0316600160f81b17815560018101545f6104988261103f565b90506104a481836112eb565b6001546004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820185905292945091169063a9059cbb906044016020604051808303815f875af11580156104fc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052091906112fe565b61053c5760405162461bcd60e51b81526004016103cc9061131d565b60018381018054335f81815260076020526040908190208054939093039092559154600280549190910390559154915163a9059cbb60e01b81526004810191909152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af11580156105b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105da91906112fe565b6105f65760405162461bcd60e51b81526004016103cc9061131d565b82546001840154604080516001600160781b039093168352602083019190915233917f37375b03d8924bd8f076f11f8411b9962aa5c02fb489021507bc6bb6f850e365910160405180910390a250505050565b60606006805480602002602001604051908101604052809291908181526020015f905b82821015610700575f8481526020908190206040805160c0810182526003860290920180546001600160781b0381168452600160781b81046001600160401b0390811685870152600160b81b82041692840192909252600160f81b90910460ff161515606083015260018082015460808401526002909101546001600160a01b031660a0830152908352909201910161066c565b50505050905090565b610711611076565b61071a5f6110cf565b565b610724611076565b6001600160a01b03841661077a5760405162461bcd60e51b815260206004820152601760248201527f496e76616c69642070656e616c7479206164647265737300000000000000000060448201526064016103cc565b5f826001600160401b0316116107ca5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642070656e616c747920626173697360581b60448201526064016103cc565b816001600160401b0316836001600160401b0316111561081e5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c69642070656e616c747960881b60448201526064016103cc565b5f816001600160401b03161161086e5760405162461bcd60e51b815260206004820152601560248201527424b73b30b634b2103637b1b590323ab930ba34b7b760591b60448201526064016103cc565b600480546001600160401b03948516600160a01b026001600160e01b03199091166001600160a01b03909616959095179490941790935560058054938316600160401b026fffffffffffffffffffffffffffffffff199094169190921617919091179055565b5f811161091a5760405162461bcd60e51b815260206004820152601460248201527343616e6e6f742066756e64203020746f6b656e7360601b60448201526064016103cc565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303815f875af115801561096e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099291906112fe565b6109ae5760405162461bcd60e51b81526004016103cc9061131d565b8060035f8282546109bf9190611354565b909155505060408051338152602081018390527fd53214ca07be5520e229c395f05a3e5c0697ec6279184ffbe2758d304fd322cc910160405180910390a150565b5f8111610a475760405162461bcd60e51b815260206004820152601560248201527443616e6e6f74207374616b65203020746f6b656e7360581b60448201526064016103cc565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303815f875af1158015610a9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abf91906112fe565b610adb5760405162461bcd60e51b81526004016103cc9061131d565b600680546040805160c0810182526001600160781b03831681526001600160401b034281811660208401526005549495949293840192610b2492600160401b9091041690611354565b6001600160401b0390811682525f60208084018290526040808501899052336060958601819052875460018082018a5598855283852088516003909202018054898601518a860151998b01511515600160f81b026001600160f81b039a8a16600160b81b029a909a166001600160b81b0391909916600160781b026001600160b81b03199092166001600160781b039094169390931717919091169590951795909517845560808601519684019690965560a090940151600292830180546001600160a01b039092166001600160a01b0319909216919091179055828152600784528490208054870190558054860190558251848152918201859052917f18dcd430020e4d4899772fd94a8b40451dc5044dfb70bc46b532eeae431c864f910160405180910390a25050565b5f60068281548110610c6457610c646112c3565b905f5260205f20906003020190506006805490508210610cbb5760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590819195c1bdcda5d08125160721b60448201526064016103cc565b8054600160f81b900460ff1615610d105760405162461bcd60e51b81526020600482015260196024820152782232b837b9b4ba1030b63932b0b23c903bb4ba34323930bbb760391b60448201526064016103cc565b60028101546001600160a01b03163314610d5c5760405162461bcd60e51b815260206004820152600d60248201526c2737ba103232b837b9b4ba37b960991b60448201526064016103cc565b805442600160b81b9091046001600160401b03161115610dbe5760405162461bcd60e51b815260206004820152601760248201527f4465706f736974206973207374696c6c206c6f636b656400000000000000000060448201526064016103cc565b5f610dcc826001015461111e565b90505f8111610e125760405162461bcd60e51b81526020600482015260126024820152714e6f2072657761726420746f20636c61696d60701b60448201526064016103cc565b81546001600160f81b0316600160f81b17825560018083018054335f818152600760205260409081902080549390930390925582546002805491909103905560038054869003905592549154905163a9059cbb60e01b8152600481019390935260248301526001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610ea6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eca91906112fe565b610ee65760405162461bcd60e51b81526004016103cc9061131d565b60015460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610f34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5891906112fe565b610f745760405162461bcd60e51b81526004016103cc9061131d565b81546001830154604080516001600160781b039093168352602083019190915233917f37375b03d8924bd8f076f11f8411b9962aa5c02fb489021507bc6bb6f850e365910160405180910390a2505050565b610fce611076565b6001600160a01b0381166110335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103cc565b61103c816110cf565b50565b6005546004545f916001600160401b039081169161106691600160a01b9091041684611367565b611070919061137e565b92915050565b5f546001600160a01b0316331461071a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cc565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f80600254116111635760405162461bcd60e51b815260206004820152601060248201526f139bc81cdd185ad95908185b5bdd5b9d60821b60448201526064016103cc565b6002546003546110669084611367565b5f60208284031215611183575f80fd5b5035919050565b602080825282518282018190525f919060409081850190868401855b8281101561121457815180516001600160781b03168552868101516001600160401b03908116888701528682015116868601526060808201511515908601526080808201519086015260a0908101516001600160a01b03169085015260c090930192908501906001016111a6565b5091979650505050505050565b80356001600160a01b0381168114611237575f80fd5b919050565b80356001600160401b0381168114611237575f80fd5b5f805f8060808587031215611265575f80fd5b61126e85611221565b935061127c6020860161123c565b925061128a6040860161123c565b91506112986060860161123c565b905092959194509250565b5f602082840312156112b3575f80fd5b6112bc82611221565b9392505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115611070576110706112d7565b5f6020828403121561130e575f80fd5b815180151581146112bc575f80fd5b60208082526019908201527f4661696c656420746f207472616e7366657220746f6b656e7300000000000000604082015260600190565b80820180821115611070576110706112d7565b8082028115828204841417611070576110706112d7565b5f8261139857634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220050a8b2dd7b40f06033fe2493d3e864b6b4d36f46e4a007344c43c8780a6184364736f6c634300081700330000000000000000000000000eb1e72204c42de2263d37db606fb25c21d649b8
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610111575f3560e01c80638da5cb5b1161009e578063a694fc3a1161006e578063a694fc3a1461029a578063ab6ccbac146102ad578063e63665eb146102c0578063f2fde38b146102d3578063fc0c546a146102e6575f80fd5b80638da5cb5b146102455780638f90c6e31461025557806393707a19146102685780639bfd8d611461027b575f80fd5b80631e1f1d37116100e45780631e1f1d37146101a85780635312ea8e1461020a578063567e98f91461021f5780636b149d8714610228578063715018a61461023d575f80fd5b806304554443146101155780630acb27a11461014c5780630d6ceef2146101775780631a1ce2fc1461018e575b5f80fd5b60055461012f90600160401b90046001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b60045461015f906001600160a01b031681565b6040516001600160a01b039091168152602001610143565b61018060035481565b604051908152602001610143565b60045461012f90600160a01b90046001600160401b031681565b6101bb6101b6366004611173565b6102f9565b604080516001600160781b039790971687526001600160401b03958616602088015293909416928501929092521515606084015260808301526001600160a01b031660a082015260c001610143565b61021d610218366004611173565b610365565b005b61018060025481565b610230610649565b604051610143919061118a565b61021d610709565b5f546001600160a01b031661015f565b61021d610263366004611252565b61071c565b61021d610276366004611173565b6108d4565b6101806102893660046112a3565b60076020525f908152604090205481565b61021d6102a8366004611173565b610a00565b61021d6102bb366004611173565b610c50565b60055461012f906001600160401b031681565b61021d6102e13660046112a3565b610fc6565b60015461015f906001600160a01b031681565b60068181548110610308575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160781b03821693506001600160401b03600160781b8304811693600160b81b84049091169260ff600160f81b90910416916001600160a01b031686565b5f60068281548110610379576103796112c3565b905f5260205f209060030201905060068054905082106103d55760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590819195c1bdcda5d08125160721b60448201526064015b60405180910390fd5b8054600160f81b900460ff161561042a5760405162461bcd60e51b81526020600482015260196024820152782232b837b9b4ba1030b63932b0b23c903bb4ba34323930bbb760391b60448201526064016103cc565b60028101546001600160a01b031633146104765760405162461bcd60e51b815260206004820152600d60248201526c2737ba103232b837b9b4ba37b960991b60448201526064016103cc565b80546001600160f81b0316600160f81b17815560018101545f6104988261103f565b90506104a481836112eb565b6001546004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820185905292945091169063a9059cbb906044016020604051808303815f875af11580156104fc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052091906112fe565b61053c5760405162461bcd60e51b81526004016103cc9061131d565b60018381018054335f81815260076020526040908190208054939093039092559154600280549190910390559154915163a9059cbb60e01b81526004810191909152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af11580156105b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105da91906112fe565b6105f65760405162461bcd60e51b81526004016103cc9061131d565b82546001840154604080516001600160781b039093168352602083019190915233917f37375b03d8924bd8f076f11f8411b9962aa5c02fb489021507bc6bb6f850e365910160405180910390a250505050565b60606006805480602002602001604051908101604052809291908181526020015f905b82821015610700575f8481526020908190206040805160c0810182526003860290920180546001600160781b0381168452600160781b81046001600160401b0390811685870152600160b81b82041692840192909252600160f81b90910460ff161515606083015260018082015460808401526002909101546001600160a01b031660a0830152908352909201910161066c565b50505050905090565b610711611076565b61071a5f6110cf565b565b610724611076565b6001600160a01b03841661077a5760405162461bcd60e51b815260206004820152601760248201527f496e76616c69642070656e616c7479206164647265737300000000000000000060448201526064016103cc565b5f826001600160401b0316116107ca5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642070656e616c747920626173697360581b60448201526064016103cc565b816001600160401b0316836001600160401b0316111561081e5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c69642070656e616c747960881b60448201526064016103cc565b5f816001600160401b03161161086e5760405162461bcd60e51b815260206004820152601560248201527424b73b30b634b2103637b1b590323ab930ba34b7b760591b60448201526064016103cc565b600480546001600160401b03948516600160a01b026001600160e01b03199091166001600160a01b03909616959095179490941790935560058054938316600160401b026fffffffffffffffffffffffffffffffff199094169190921617919091179055565b5f811161091a5760405162461bcd60e51b815260206004820152601460248201527343616e6e6f742066756e64203020746f6b656e7360601b60448201526064016103cc565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303815f875af115801561096e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099291906112fe565b6109ae5760405162461bcd60e51b81526004016103cc9061131d565b8060035f8282546109bf9190611354565b909155505060408051338152602081018390527fd53214ca07be5520e229c395f05a3e5c0697ec6279184ffbe2758d304fd322cc910160405180910390a150565b5f8111610a475760405162461bcd60e51b815260206004820152601560248201527443616e6e6f74207374616b65203020746f6b656e7360581b60448201526064016103cc565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303815f875af1158015610a9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abf91906112fe565b610adb5760405162461bcd60e51b81526004016103cc9061131d565b600680546040805160c0810182526001600160781b03831681526001600160401b034281811660208401526005549495949293840192610b2492600160401b9091041690611354565b6001600160401b0390811682525f60208084018290526040808501899052336060958601819052875460018082018a5598855283852088516003909202018054898601518a860151998b01511515600160f81b026001600160f81b039a8a16600160b81b029a909a166001600160b81b0391909916600160781b026001600160b81b03199092166001600160781b039094169390931717919091169590951795909517845560808601519684019690965560a090940151600292830180546001600160a01b039092166001600160a01b0319909216919091179055828152600784528490208054870190558054860190558251848152918201859052917f18dcd430020e4d4899772fd94a8b40451dc5044dfb70bc46b532eeae431c864f910160405180910390a25050565b5f60068281548110610c6457610c646112c3565b905f5260205f20906003020190506006805490508210610cbb5760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590819195c1bdcda5d08125160721b60448201526064016103cc565b8054600160f81b900460ff1615610d105760405162461bcd60e51b81526020600482015260196024820152782232b837b9b4ba1030b63932b0b23c903bb4ba34323930bbb760391b60448201526064016103cc565b60028101546001600160a01b03163314610d5c5760405162461bcd60e51b815260206004820152600d60248201526c2737ba103232b837b9b4ba37b960991b60448201526064016103cc565b805442600160b81b9091046001600160401b03161115610dbe5760405162461bcd60e51b815260206004820152601760248201527f4465706f736974206973207374696c6c206c6f636b656400000000000000000060448201526064016103cc565b5f610dcc826001015461111e565b90505f8111610e125760405162461bcd60e51b81526020600482015260126024820152714e6f2072657761726420746f20636c61696d60701b60448201526064016103cc565b81546001600160f81b0316600160f81b17825560018083018054335f818152600760205260409081902080549390930390925582546002805491909103905560038054869003905592549154905163a9059cbb60e01b8152600481019390935260248301526001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610ea6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eca91906112fe565b610ee65760405162461bcd60e51b81526004016103cc9061131d565b60015460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610f34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5891906112fe565b610f745760405162461bcd60e51b81526004016103cc9061131d565b81546001830154604080516001600160781b039093168352602083019190915233917f37375b03d8924bd8f076f11f8411b9962aa5c02fb489021507bc6bb6f850e365910160405180910390a2505050565b610fce611076565b6001600160a01b0381166110335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103cc565b61103c816110cf565b50565b6005546004545f916001600160401b039081169161106691600160a01b9091041684611367565b611070919061137e565b92915050565b5f546001600160a01b0316331461071a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cc565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f80600254116111635760405162461bcd60e51b815260206004820152601060248201526f139bc81cdd185ad95908185b5bdd5b9d60821b60448201526064016103cc565b6002546003546110669084611367565b5f60208284031215611183575f80fd5b5035919050565b602080825282518282018190525f919060409081850190868401855b8281101561121457815180516001600160781b03168552868101516001600160401b03908116888701528682015116868601526060808201511515908601526080808201519086015260a0908101516001600160a01b03169085015260c090930192908501906001016111a6565b5091979650505050505050565b80356001600160a01b0381168114611237575f80fd5b919050565b80356001600160401b0381168114611237575f80fd5b5f805f8060808587031215611265575f80fd5b61126e85611221565b935061127c6020860161123c565b925061128a6040860161123c565b91506112986060860161123c565b905092959194509250565b5f602082840312156112b3575f80fd5b6112bc82611221565b9392505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115611070576110706112d7565b5f6020828403121561130e575f80fd5b815180151581146112bc575f80fd5b60208082526019908201527f4661696c656420746f207472616e7366657220746f6b656e7300000000000000604082015260600190565b80820180821115611070576110706112d7565b8082028115828204841417611070576110706112d7565b5f8261139857634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220050a8b2dd7b40f06033fe2493d3e864b6b4d36f46e4a007344c43c8780a6184364736f6c63430008170033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000eb1e72204c42de2263d37db606fb25c21d649b8
-----Decoded View---------------
Arg [0] : _tokenAddress (address): 0x0Eb1e72204c42DE2263d37db606Fb25c21d649B8
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000eb1e72204c42de2263d37db606fb25c21d649b8
Deployed Bytecode Sourcemap
6234:5466:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6592:36;;;;;-1:-1:-1;;;6592:36:0;;-1:-1:-1;;;;;6592:36:0;;;;;;-1:-1:-1;;;;;176:31:1;;;158:50;;146:2;131:18;6592:36:0;;;;;;;;6386:91;;;;;-1:-1:-1;;;;;6386:91:0;;;;;;-1:-1:-1;;;;;383:32:1;;;365:51;;353:2;338:18;6386:91:0;219:203:1;6344:33:0;;;;;;;;;573:25:1;;;561:2;546:18;6344:33:0;427:177:1;6484:34:0;;;;;-1:-1:-1;;;6484:34:0;;-1:-1:-1;;;;;6484:34:0;;;6837:39;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;1089:45:1;;;;1071:64;;-1:-1:-1;;;;;1208:15:1;;;1203:2;1188:18;;1181:43;1260:15;;;;1240:18;;;1233:43;;;;1319:14;1312:22;1307:2;1292:18;;1285:50;1366:3;1351:19;;1344:35;-1:-1:-1;;;;;1416:32:1;1436:3;1395:19;;1388:61;1058:3;1043:19;6837:39:0;794:661:1;10648:1049:0;;;;;;:::i;:::-;;:::i;:::-;;6305:32;;;;;;7973:112;;;:::i;:::-;;;;;;;:::i;5417:103::-;;;:::i;4776:87::-;4822:7;4849:6;-1:-1:-1;;;;;4849:6:0;4776:87;;7257:708;;;;;;:::i;:::-;;:::i;8481:304::-;;;;;;:::i;:::-;;:::i;6885:58::-;;;;;;:::i;:::-;;;;;;;;;;;;;;8793:813;;;;;;:::i;:::-;;:::i;9614:1026::-;;;;;;:::i;:::-;;:::i;6536:41::-;;;;;-1:-1:-1;;;;;6536:41:0;;;5675:201;;;;;;:::i;:::-;;:::i;6277:19::-;;;;;-1:-1:-1;;;;;6277:19:0;;;6837:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6837:39:0;;;-1:-1:-1;;;;;;;;;6837:39:0;;;;;-1:-1:-1;;;6837:39:0;;;;;;;-1:-1:-1;;;6837:39:0;;;;;-1:-1:-1;;;;;6837:39:0;;:::o;10648:1049::-;10715:30;10748:15;10764:10;10748:27;;;;;;;;:::i;:::-;;;;;;;;;;;10715:60;;10809:15;:22;;;;10796:10;:35;10788:66;;;;-1:-1:-1;;;10788:66:0;;4253:2:1;10788:66:0;;;4235:21:1;4292:2;4272:18;;;4265:30;-1:-1:-1;;;4311:18:1;;;4304:48;4369:18;;10788:66:0;;;;;;;;;10876:19;;-1:-1:-1;;;10876:19:0;;;;10875:20;10867:58;;;;-1:-1:-1;;;10867:58:0;;4600:2:1;10867:58:0;;;4582:21:1;4639:2;4619:18;;;4612:30;-1:-1:-1;;;4658:18:1;;;4651:55;4723:18;;10867:58:0;4398:349:1;10867:58:0;10946:17;;;;-1:-1:-1;;;;;10946:17:0;10967:10;10946:31;10938:57;;;;-1:-1:-1;;;10938:57:0;;4954:2:1;10938:57:0;;;4936:21:1;4993:2;4973:18;;;4966:30;-1:-1:-1;;;5012:18:1;;;5005:43;5065:18;;10938:57:0;4752:337:1;10938:57:0;11008:26;;-1:-1:-1;;;;;11008:26:0;-1:-1:-1;;;11008:26:0;;;11030:4;11074:14;;;11008:19;11128:43;11074:14;11128:25;:43::i;:::-;11099:72;-1:-1:-1;11182:38:0;11099:72;11182:38;;:::i;:::-;11293:5;;11308:22;;;11293:58;;-1:-1:-1;;;11293:58:0;;-1:-1:-1;;;;;11308:22:0;;;11293:58;;;5533:51:1;;;;5600:18;;;5593:34;;;11182:38:0;;-1:-1:-1;11293:5:0;;;:14;;5506:18:1;;11293:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11285:96;;;;-1:-1:-1;;;11285:96:0;;;;;;;:::i;:::-;11446:14;;;;;;11431:10;11419:23;;;;:11;:23;;;;;;;:41;;;;;;;;;11496:14;;11475:17;:35;;;;;;;;11542:5;;:44;;-1:-1:-1;;;11542:44:0;;;;;5533:51:1;;;;5600:18;;;5593:34;;;-1:-1:-1;;;;;11542:5:0;;;;:14;;5506:18:1;;11542:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11534:82;;;;-1:-1:-1;;;11534:82:0;;;;;;;:::i;:::-;11643:17;;;11674:14;;;11634:55;;;-1:-1:-1;;;;;11643:17:0;;;6448:64:1;;6543:2;6528:18;;6521:34;;;;11662:10:0;;11634:55;;6421:18:1;11634:55:0;;;;;;;10704:993;;;10648:1049;:::o;7973:112::-;8019:23;8062:15;8055:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8055:22:0;;;;-1:-1:-1;;;8055:22:0;;-1:-1:-1;;;;;8055:22:0;;;;;;;-1:-1:-1;;;8055:22:0;;;;;;;;;;-1:-1:-1;;;8055:22:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8055:22:0;;;;;;;;;;;;;;;;;;;;;;7973:112;:::o;5417:103::-;4662:13;:11;:13::i;:::-;5482:30:::1;5509:1;5482:18;:30::i;:::-;5417:103::o:0;7257:708::-;4662:13;:11;:13::i;:::-;-1:-1:-1;;;;;7480:37:0;::::1;7472:73;;;::::0;-1:-1:-1;;;7472:73:0;;6768:2:1;7472:73:0::1;::::0;::::1;6750:21:1::0;6807:2;6787:18;;;6780:30;6846:25;6826:18;;;6819:53;6889:18;;7472:73:0::1;6566:347:1::0;7472:73:0::1;7588:1;7564:21;-1:-1:-1::0;;;;;7564:25:0::1;;7556:59;;;::::0;-1:-1:-1;;;7556:59:0;;7120:2:1;7556:59:0::1;::::0;::::1;7102:21:1::0;7159:2;7139:18;;;7132:30;-1:-1:-1;;;7178:18:1;;;7171:51;7239:18;;7556:59:0::1;6918:345:1::0;7556:59:0::1;7654:21;-1:-1:-1::0;;;;;7634:41:0::1;:16;-1:-1:-1::0;;;;;7634:41:0::1;;;7626:69;;;::::0;-1:-1:-1;;;7626:69:0;;7470:2:1;7626:69:0::1;::::0;::::1;7452:21:1::0;7509:2;7489:18;;;7482:30;-1:-1:-1;;;7528:18:1;;;7521:45;7583:18;;7626:69:0::1;7268:339:1::0;7626:69:0::1;7730:1;7714:13;-1:-1:-1::0;;;;;7714:17:0::1;;7706:51;;;::::0;-1:-1:-1;;;7706:51:0;;7814:2:1;7706:51:0::1;::::0;::::1;7796:21:1::0;7853:2;7833:18;;;7826:30;-1:-1:-1;;;7872:18:1;;;7865:51;7933:18;;7706:51:0::1;7612:345:1::0;7706:51:0::1;7770:22;:48:::0;;-1:-1:-1;;;;;7829:34:0;;::::1;-1:-1:-1::0;;;7829:34:0::1;-1:-1:-1::0;;;;;;7829:34:0;;;-1:-1:-1;;;;;7770:48:0;;::::1;7829:34:::0;;;;;;;::::1;::::0;;;7874:20:::1;:44:::0;;7929:28;;::::1;-1:-1:-1::0;;;7929:28:0::1;-1:-1:-1::0;;7929:28:0;;;7874:44;;;::::1;7929:28:::0;;;;::::1;::::0;;7257:708::o;8481:304::-;8555:1;8546:6;:10;8538:43;;;;-1:-1:-1;;;8538:43:0;;8164:2:1;8538:43:0;;;8146:21:1;8203:2;8183:18;;;8176:30;-1:-1:-1;;;8222:18:1;;;8215:50;8282:18;;8538:43:0;7962:344:1;8538:43:0;8602:5;;:53;;-1:-1:-1;;;8602:53:0;;8621:10;8602:53;;;8551:34:1;8641:4:0;8601:18:1;;;8594:43;8653:18;;;8646:34;;;-1:-1:-1;;;;;8602:5:0;;;;:18;;8486::1;;8602:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8594:91;;;;-1:-1:-1;;;8594:91:0;;;;;;;:::i;:::-;8720:6;8698:18;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;8744:33:0;;;8758:10;5533:51:1;;5615:2;5600:18;;5593:34;;;8744:33:0;;5506:18:1;8744:33:0;;;;;;;8481:304;:::o;8793:813::-;8861:1;8852:6;:10;8844:44;;;;-1:-1:-1;;;8844:44:0;;9023:2:1;8844:44:0;;;9005:21:1;9062:2;9042:18;;;9035:30;-1:-1:-1;;;9081:18:1;;;9074:51;9142:18;;8844:44:0;8821:345:1;8844:44:0;8909:5;;:53;;-1:-1:-1;;;8909:53:0;;8928:10;8909:53;;;8551:34:1;8948:4:0;8601:18:1;;;8594:43;8653:18;;;8646:34;;;-1:-1:-1;;;;;8909:5:0;;;;:18;;8486::1;;8909:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8901:91;;;;-1:-1:-1;;;8901:91:0;;;;;;;:::i;:::-;9026:15;:22;;9096:311;;;;;;;;-1:-1:-1;;;;;9096:311:0;;;;-1:-1:-1;;;;;9230:15:0;9096:311;;;;;;;9301:12;;9026:22;;:15;9096:311;;;;;9283:30;;-1:-1:-1;;;9301:12:0;;;;;9283:30;:::i;:::-;-1:-1:-1;;;;;9096:311:0;;;;;9346:5;9096:311;;;;;;;;;;;;;;9381:10;9096:311;;;;;;;9061:357;;9096:311;9061:357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9061:357:0;-1:-1:-1;;;;;9061:357:0;;;-1:-1:-1;;;9061:357:0;;;;;-1:-1:-1;;;;;9061:357:0;;;;-1:-1:-1;;;9061:357:0;-1:-1:-1;;;;;;9061:357:0;;;-1:-1:-1;;;;;9061:357:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9061:357:0;;;-1:-1:-1;;;;;;9061:357:0;;;;;;;;;9456:23;;;:11;:23;;;;;:33;;;;;;9504:27;;;;;;9560:38;;9345:25:1;;;9386:18;;;9379:34;;;9381:10:0;9560:38;;9318:18:1;9560:38:0;;;;;;;8833:773;8793:813;:::o;9614:1026::-;9678:30;9711:15;9727:10;9711:27;;;;;;;;:::i;:::-;;;;;;;;;;;9678:60;;9772:15;:22;;;;9759:10;:35;9751:66;;;;-1:-1:-1;;;9751:66:0;;4253:2:1;9751:66:0;;;4235:21:1;4292:2;4272:18;;;4265:30;-1:-1:-1;;;4311:18:1;;;4304:48;4369:18;;9751:66:0;4051:342:1;9751:66:0;9839:19;;-1:-1:-1;;;9839:19:0;;;;9838:20;9830:58;;;;-1:-1:-1;;;9830:58:0;;4600:2:1;9830:58:0;;;4582:21:1;4639:2;4619:18;;;4612:30;-1:-1:-1;;;4658:18:1;;;4651:55;4723:18;;9830:58:0;4398:349:1;9830:58:0;9909:17;;;;-1:-1:-1;;;;;9909:17:0;9930:10;9909:31;9901:57;;;;-1:-1:-1;;;9901:57:0;;4954:2:1;9901:57:0;;;4936:21:1;4993:2;4973:18;;;4966:30;-1:-1:-1;;;5012:18:1;;;5005:43;5065:18;;9901:57:0;4752:337:1;9901:57:0;9979:17;;10000:15;-1:-1:-1;;;9979:17:0;;;-1:-1:-1;;;;;9979:17:0;:36;;9971:72;;;;-1:-1:-1;;;9971:72:0;;9626:2:1;9971:72:0;;;9608:21:1;9665:2;9645:18;;;9638:30;9704:25;9684:18;;;9677:53;9747:18;;9971:72:0;9424:347:1;9971:72:0;10056:14;10073:32;10090:7;:14;;;10073:16;:32::i;:::-;10056:49;;10135:1;10126:6;:10;10118:41;;;;-1:-1:-1;;;10118:41:0;;9978:2:1;10118:41:0;;;9960:21:1;10017:2;9997:18;;;9990:30;-1:-1:-1;;;10036:18:1;;;10029:48;10094:18;;10118:41:0;9776:342:1;10118:41:0;10172:26;;-1:-1:-1;;;;;10172:26:0;-1:-1:-1;;;10172:26:0;;;-1:-1:-1;10263:14:0;;;;;10248:10;-1:-1:-1;10236:23:0;;;:11;:23;;;;;;;:41;;;;;;;;;10313:14;;10292:17;:35;;;;;;;;10342:18;:28;;;;;;;10402:5;;10429:14;;10402:42;;-1:-1:-1;;;10402:42:0;;;;;5533:51:1;;;;5600:18;;;5593:34;-1:-1:-1;;;;;10402:5:0;;:14;;5506:18:1;;10402:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10394:80;;;;-1:-1:-1;;;10394:80:0;;;;;;;:::i;:::-;10495:5;;:34;;-1:-1:-1;;;10495:34:0;;10510:10;10495:34;;;5533:51:1;5600:18;;;5593:34;;;-1:-1:-1;;;;;10495:5:0;;;;:14;;5506:18:1;;10495:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10487:72;;;;-1:-1:-1;;;10487:72:0;;;;;;;:::i;:::-;10586:17;;;10617:14;;;10577:55;;;-1:-1:-1;;;;;10586:17:0;;;6448:64:1;;6543:2;6528:18;;6521:34;;;;10605:10:0;;10577:55;;6421:18:1;10577:55:0;;;;;;;9667:973;;9614:1026;:::o;5675:201::-;4662:13;:11;:13::i;:::-;-1:-1:-1;;;;;5764:22:0;::::1;5756:73;;;::::0;-1:-1:-1;;;5756:73:0;;10325:2:1;5756:73:0::1;::::0;::::1;10307:21:1::0;10364:2;10344:18;;;10337:30;10403:34;10383:18;;;10376:62;-1:-1:-1;;;10454:18:1;;;10447:36;10500:19;;5756:73:0::1;10123:402:1::0;5756:73:0::1;5840:28;5859:8;5840:18;:28::i;:::-;5675:201:::0;:::o;8313:160::-;8445:20;;8426:15;;8388:7;;-1:-1:-1;;;;;8445:20:0;;;;8416:25;;-1:-1:-1;;;8426:15:0;;;;8416:7;:25;:::i;:::-;8415:50;;;;:::i;:::-;8408:57;8313:160;-1:-1:-1;;8313:160:0:o;4941:132::-;4822:7;4849:6;-1:-1:-1;;;;;4849:6:0;3565:10;5005:23;4997:68;;;;-1:-1:-1;;;4997:68:0;;11127:2:1;4997:68:0;;;11109:21:1;;;11146:18;;;11139:30;11205:34;11185:18;;;11178:62;11257:18;;4997:68:0;10925:356:1;6036:191:0;6110:16;6129:6;;-1:-1:-1;;;;;6146:17:0;;;-1:-1:-1;;;;;;6146:17:0;;;;;;6179:40;;6129:6;;;;;;;6179:40;;6110:16;6179:40;6099:128;6036:191;:::o;8093:212::-;8159:7;8207:1;8187:17;;:21;8179:50;;;;-1:-1:-1;;;8179:50:0;;11488:2:1;8179:50:0;;;11470:21:1;11527:2;11507:18;;;11500:30;-1:-1:-1;;;11546:18:1;;;11539:46;11602:18;;8179:50:0;11286:340:1;8179:50:0;8280:17;;8258:18;;8248:28;;:7;:28;:::i;609:180:1:-;668:6;721:2;709:9;700:7;696:23;692:32;689:52;;;737:1;734;727:12;689:52;-1:-1:-1;760:23:1;;609:180;-1:-1:-1;609:180:1:o;1460:1280::-;1693:2;1745:21;;;1815:13;;1718:18;;;1837:22;;;1664:4;;1693:2;1878;;1896:18;;;;1937:15;;;1664:4;1980:734;1994:6;1991:1;1988:13;1980:734;;;2053:13;;2095:9;;-1:-1:-1;;;;;2091:48:1;2079:61;;2179:11;;;2173:18;-1:-1:-1;;;;;2266:21:1;;;2252:12;;;2245:43;2332:11;;;2326:18;2322:27;2308:12;;;2301:49;2373:4;2431:11;;;2425:18;2418:26;2411:34;2397:12;;;2390:56;2469:4;2513:11;;;2507:18;2493:12;;;2486:40;2549:4;2597:11;;;2591:18;-1:-1:-1;;;;;2587:44:1;2573:12;;;2566:66;2661:4;2652:14;;;;2689:15;;;;2628:1;2009:9;1980:734;;;-1:-1:-1;2731:3:1;;1460:1280;-1:-1:-1;;;;;;;1460:1280:1:o;2745:173::-;2813:20;;-1:-1:-1;;;;;2862:31:1;;2852:42;;2842:70;;2908:1;2905;2898:12;2842:70;2745:173;;;:::o;2923:171::-;2990:20;;-1:-1:-1;;;;;3039:30:1;;3029:41;;3019:69;;3084:1;3081;3074:12;3099:403;3182:6;3190;3198;3206;3259:3;3247:9;3238:7;3234:23;3230:33;3227:53;;;3276:1;3273;3266:12;3227:53;3299:29;3318:9;3299:29;:::i;:::-;3289:39;;3347:37;3380:2;3369:9;3365:18;3347:37;:::i;:::-;3337:47;;3403:37;3436:2;3425:9;3421:18;3403:37;:::i;:::-;3393:47;;3459:37;3492:2;3481:9;3477:18;3459:37;:::i;:::-;3449:47;;3099:403;;;;;;;:::o;3507:186::-;3566:6;3619:2;3607:9;3598:7;3594:23;3590:32;3587:52;;;3635:1;3632;3625:12;3587:52;3658:29;3677:9;3658:29;:::i;:::-;3648:39;3507:186;-1:-1:-1;;;3507:186:1:o;3919:127::-;3980:10;3975:3;3971:20;3968:1;3961:31;4011:4;4008:1;4001:15;4035:4;4032:1;4025:15;5094:127;5155:10;5150:3;5146:20;5143:1;5136:31;5186:4;5183:1;5176:15;5210:4;5207:1;5200:15;5226:128;5293:9;;;5314:11;;;5311:37;;;5328:18;;:::i;5638:277::-;5705:6;5758:2;5746:9;5737:7;5733:23;5729:32;5726:52;;;5774:1;5771;5764:12;5726:52;5806:9;5800:16;5859:5;5852:13;5845:21;5838:5;5835:32;5825:60;;5881:1;5878;5871:12;5920:349;6122:2;6104:21;;;6161:2;6141:18;;;6134:30;6200:27;6195:2;6180:18;;6173:55;6260:2;6245:18;;5920:349::o;8691:125::-;8756:9;;;8777:10;;;8774:36;;;8790:18;;:::i;10530:168::-;10603:9;;;10634;;10651:15;;;10645:22;;10631:37;10621:71;;10672:18;;:::i;10703:217::-;10743:1;10769;10759:132;;10813:10;10808:3;10804:20;10801:1;10794:31;10848:4;10845:1;10838:15;10876:4;10873:1;10866:15;10759:132;-1:-1:-1;10905:9:1;;10703:217::o
Swarm Source
ipfs://050a8b2dd7b40f06033fe2493d3e864b6b4d36f46e4a007344c43c8780a61843
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.