More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 111 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deposit | 11427150 | 1455 days ago | IN | 0 ETH | 0.01999404 | ||||
Withdraw | 11392681 | 1461 days ago | IN | 0 ETH | 0.00200466 | ||||
Claim Divs | 11392669 | 1461 days ago | IN | 0 ETH | 0.00164147 | ||||
Withdraw | 11376887 | 1463 days ago | IN | 0 ETH | 0.001248 | ||||
Withdraw | 11373160 | 1464 days ago | IN | 0 ETH | 0.0018018 | ||||
Claim Divs | 11373159 | 1464 days ago | IN | 0 ETH | 0.00140087 | ||||
Withdraw | 11370567 | 1464 days ago | IN | 0 ETH | 0.01404216 | ||||
Claim Divs | 11369618 | 1464 days ago | IN | 0 ETH | 0.01631592 | ||||
Claim Divs | 11368840 | 1464 days ago | IN | 0 ETH | 0.00038523 | ||||
Claim Divs | 11368258 | 1464 days ago | IN | 0 ETH | 0.00151288 | ||||
Withdraw | 11364313 | 1465 days ago | IN | 0 ETH | 0.01404216 | ||||
Claim Divs | 11364312 | 1465 days ago | IN | 0 ETH | 0.01631592 | ||||
Withdraw | 11363561 | 1465 days ago | IN | 0 ETH | 0.0058518 | ||||
Deposit | 11363012 | 1465 days ago | IN | 0 ETH | 0.02538972 | ||||
Withdraw | 11362133 | 1465 days ago | IN | 0 ETH | 0.00378042 | ||||
Withdraw | 11361168 | 1465 days ago | IN | 0 ETH | 0.01404432 | ||||
Claim Divs | 11361166 | 1465 days ago | IN | 0 ETH | 0.01091592 | ||||
Withdraw | 11361152 | 1465 days ago | IN | 0 ETH | 0.00585 | ||||
Withdraw | 11361092 | 1465 days ago | IN | 0 ETH | 0.0011316 | ||||
Withdraw | 11361077 | 1465 days ago | IN | 0 ETH | 0.00468072 | ||||
Deposit | 11360597 | 1466 days ago | IN | 0 ETH | 0.00855 | ||||
Deposit | 11360554 | 1466 days ago | IN | 0 ETH | 0.00927 | ||||
Deposit | 11360552 | 1466 days ago | IN | 0 ETH | 0.0103 | ||||
Withdraw | 11360504 | 1466 days ago | IN | 0 ETH | 0.004368 | ||||
Withdraw | 11360495 | 1466 days ago | IN | 0 ETH | 0.01404216 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
YFIClassicStaking
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-13 */ pragma solidity 0.6.12; // SPDX-License-Identifier: none library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } library EnumerableSet { struct Set { bytes32[] _values; mapping (bytes32 => uint256) _indexes; } function _add(Set storage set, bytes32 value) private returns (bool) { if (!_contains(set, value)) { set._values.push(value); set._indexes[value] = set._values.length; return true; } else { return false; } } function _remove(Set storage set, bytes32 value) private returns (bool) { // We read and store the value's index to prevent multiple reads from the same storage slot uint256 valueIndex = set._indexes[value]; if (valueIndex != 0) { // Equivalent to contains(set, value) uint256 toDeleteIndex = valueIndex - 1; uint256 lastIndex = set._values.length - 1; bytes32 lastvalue = set._values[lastIndex]; // Move the last value to the index where the value to delete is set._values[toDeleteIndex] = lastvalue; // Update the index for the moved value set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based // Delete the slot where the moved value was stored set._values.pop(); // Delete the index for the deleted slot delete set._indexes[value]; return true; } else { return false; } } /** * @dev Returns true if the value is in the set. O(1). */ function _contains(Set storage set, bytes32 value) private view returns (bool) { return set._indexes[value] != 0; } function _length(Set storage set) private view returns (uint256) { return set._values.length; } function _at(Set storage set, uint256 index) private view returns (bytes32) { require(set._values.length > index, "EnumerableSet: index out of bounds"); return set._values[index]; } // AddressSet struct AddressSet { Set _inner; } function add(AddressSet storage set, address value) internal returns (bool) { return _add(set._inner, bytes32(uint256(value))); } function remove(AddressSet storage set, address value) internal returns (bool) { return _remove(set._inner, bytes32(uint256(value))); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(AddressSet storage set, address value) internal view returns (bool) { return _contains(set._inner, bytes32(uint256(value))); } /** * @dev Returns the number of values in the set. O(1). */ function length(AddressSet storage set) internal view returns (uint256) { return _length(set._inner); } function at(AddressSet storage set, uint256 index) internal view returns (address) { return address(uint256(_at(set._inner, index))); } // UintSet struct UintSet { Set _inner; } function add(UintSet storage set, uint256 value) internal returns (bool) { return _add(set._inner, bytes32(value)); } function remove(UintSet storage set, uint256 value) internal returns (bool) { return _remove(set._inner, bytes32(value)); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(UintSet storage set, uint256 value) internal view returns (bool) { return _contains(set._inner, bytes32(value)); } function length(UintSet storage set) internal view returns (uint256) { return _length(set._inner); } function at(UintSet storage set, uint256 index) internal view returns (uint256) { return uint256(_at(set._inner, index)); } } contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner); _; } function transferOwnership(address newOwner) onlyOwner public { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } interface Token { function transferFrom(address, address, uint) external returns (bool); function transfer(address, uint) external returns (bool); } contract YFIClassicStaking is Ownable { using SafeMath for uint; using EnumerableSet for EnumerableSet.AddressSet; event RewardsTransferred(address holder, uint amount); // YFIC token contract address address public constant tokenAddress = 0x704135ECBb0BEA17FD3DAad8E3583ccC6f6f7f0E; // reward rate 100.00% per year uint public constant rewardRate = 10000; // 10000 ÷ 100 = 100 % uint public constant rewardInterval = 365 days; // staking fee 1 percent uint public constant stakingFeeRate = 100; // 100 ÷ 100 = 1 % // unstaking fee 0.5 percent uint public constant unstakingFeeRate = 50; // 50 ÷ 100 = 0.5 % // unstaking possible after 72 hours // 3 Days uint public constant cliffTime = 72 hours; uint public totalClaimedRewards = 0; EnumerableSet.AddressSet private holders; mapping (address => uint) public depositedTokens; mapping (address => uint) public stakingTime; mapping (address => uint) public lastClaimedTime; mapping (address => uint) public totalEarnedTokens; function updateAccount(address account) private { uint pendingDivs = getPendingDivs(account); if (pendingDivs > 0) { require(Token(tokenAddress).transfer(account, pendingDivs), "Could not transfer tokens."); totalEarnedTokens[account] = totalEarnedTokens[account].add(pendingDivs); totalClaimedRewards = totalClaimedRewards.add(pendingDivs); emit RewardsTransferred(account, pendingDivs); } lastClaimedTime[account] = now; } function getPendingDivs(address _holder) public view returns (uint) { if (!holders.contains(_holder)) return 0; if (depositedTokens[_holder] == 0) return 0; uint timeDiff = now.sub(lastClaimedTime[_holder]); uint stakedAmount = depositedTokens[_holder]; uint pendingDivs = stakedAmount .mul(rewardRate) .mul(timeDiff) .div(rewardInterval) .div(1e4); return pendingDivs; } function getNumberOfHolders() public view returns (uint) { return holders.length(); } function deposit(uint amountToStake) public { require(amountToStake > 0, "Cannot deposit 0 Tokens"); require(Token(tokenAddress).transferFrom(msg.sender, address(this), amountToStake), "Insufficient Token Allowance"); updateAccount(msg.sender); uint fee = amountToStake.mul(stakingFeeRate).div(1e4); uint amountAfterFee = amountToStake.sub(fee); require(Token(tokenAddress).transfer(owner, fee), "Could not transfer deposit fee."); depositedTokens[msg.sender] = depositedTokens[msg.sender].add(amountAfterFee); if (!holders.contains(msg.sender)) { holders.add(msg.sender); stakingTime[msg.sender] = now; } } function withdraw(uint amountToWithdraw) public { require(depositedTokens[msg.sender] >= amountToWithdraw, "Invalid amount to withdraw"); require(now.sub(stakingTime[msg.sender]) > cliffTime, "You recently staked, please wait before withdrawing."); updateAccount(msg.sender); uint fee = amountToWithdraw.mul(unstakingFeeRate).div(1e4); uint amountAfterFee = amountToWithdraw.sub(fee); require(Token(tokenAddress).transfer(owner, fee), "Could not transfer withdraw fee."); require(Token(tokenAddress).transfer(msg.sender, amountAfterFee), "Could not transfer tokens."); depositedTokens[msg.sender] = depositedTokens[msg.sender].sub(amountToWithdraw); if (holders.contains(msg.sender) && depositedTokens[msg.sender] == 0) { holders.remove(msg.sender); } } function claimDivs() public { updateAccount(msg.sender); } uint private constant stakingAndDaoTokens = 7350e18; function getStakingAndDaoAmount() public view returns (uint) { if (totalClaimedRewards >= stakingAndDaoTokens) { return 0; } uint remaining = stakingAndDaoTokens.sub(totalClaimedRewards); return remaining; } // function to allow admin to claim *other* ERC20 tokens sent to this contract (by mistake) function transferAnyERC20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner { if (_tokenAddr == tokenAddress) { if (_amount > getStakingAndDaoAmount()) { revert(); } totalClaimedRewards = totalClaimedRewards.add(_amount); } Token(_tokenAddr).transfer(_to, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsTransferred","type":"event"},{"inputs":[],"name":"claimDivs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cliffTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToStake","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"depositedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNumberOfHolders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_holder","type":"address"}],"name":"getPendingDivs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakingAndDaoAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastClaimedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalClaimedRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalEarnedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstakingFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToWithdraw","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600060015534801561001557600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a20806100656000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063c326bf4f11610071578063c326bf4f14610429578063d578ceab14610481578063d816c7d51461049f578063f2fde38b146104bd578063f3f91fa0146105015761012c565b80638da5cb5b1461031d57806398896d10146103515780639d76ea58146103a9578063b6b55f25146103dd578063bec4de3f1461040b5761012c565b8063583d42fd116100f4578063583d42fd146101c35780635ef057be1461021b5780636270cd18146102395780636a395ccb146102915780637b0a47ee146102ff5761012c565b80630f1a64441461013157806319aa70e71461014f578063268cab49146101595780632e1a7d4d14610177578063308feec3146101a5575b600080fd5b610139610559565b6040518082815260200191505060405180910390f35b610157610560565b005b61016161056b565b6040518082815260200191505060405180910390f35b6101a36004803603602081101561018d57600080fd5b81019080803590602001909291905050506105b4565b005b6101ad610af9565b6040518082815260200191505060405180910390f35b610205600480360360208110156101d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b0a565b6040518082815260200191505060405180910390f35b610223610b22565b6040518082815260200191505060405180910390f35b61027b6004803603602081101561024f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b27565b6040518082815260200191505060405180910390f35b6102fd600480360360608110156102a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b3f565b005b610307610cc1565b6040518082815260200191505060405180910390f35b610325610cc7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103936004803603602081101561036757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ceb565b6040518082815260200191505060405180910390f35b6103b1610e5a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610409600480360360208110156103f357600080fd5b8101908080359060200190929190505050610e72565b005b6104136112e2565b6040518082815260200191505060405180910390f35b61046b6004803603602081101561043f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ea565b6040518082815260200191505060405180910390f35b610489611302565b6040518082815260200191505060405180910390f35b6104a7611308565b6040518082815260200191505060405180910390f35b6104ff600480360360208110156104d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061130d565b005b6105436004803603602081101561051757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061145c565b6040518082815260200191505060405180910390f35b6203f48081565b61056933611474565b565b600069018e71bd8a07f11800006001541061058957600090506105b1565b60006105aa60015469018e71bd8a07f118000061170a90919063ffffffff16565b9050809150505b90565b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f496e76616c696420616d6f756e7420746f20776974686472617700000000000081525060200191505060405180910390fd5b6203f4806106bf600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261170a90919063ffffffff16565b11610715576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806119b76034913960400191505060405180910390fd5b61071e33611474565b600061074861271061073a60328561172190919063ffffffff16565b61175090919063ffffffff16565b9050600061075f828461170a90919063ffffffff16565b905073704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561080657600080fd5b505af115801561081a573d6000803e3d6000fd5b505050506040513d602081101561083057600080fd5b81019080805190602001909291905050506108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74207472616e73666572207769746864726177206665652e81525060200191505060405180910390fd5b73704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561093857600080fd5b505af115801561094c573d6000803e3d6000fd5b505050506040513d602081101561096257600080fd5b81019080805190602001909291905050506109e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f74207472616e7366657220746f6b656e732e00000000000081525060200191505060405180910390fd5b610a3783600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170a90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a8e33600261176990919063ffffffff16565b8015610ad957506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15610af457610af233600261179990919063ffffffff16565b505b505050565b6000610b0560026117c9565b905090565b60056020528060005260406000206000915090505481565b606481565b60076020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b9757600080fd5b73704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c0f57610be761056b565b811115610bf357600080fd5b610c08816001546117de90919063ffffffff16565b6001819055505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c8057600080fd5b505af1158015610c94573d6000803e3d6000fd5b505050506040513d6020811015610caa57600080fd5b810190808051906020019092919050505050505050565b61271081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d0182600261176990919063ffffffff16565b610d0e5760009050610e55565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610d5f5760009050610e55565b6000610db3600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261170a90919063ffffffff16565b90506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000610e4c612710610e3e6301e13380610e3087610e226127108961172190919063ffffffff16565b61172190919063ffffffff16565b61175090919063ffffffff16565b61175090919063ffffffff16565b90508093505050505b919050565b73704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e81565b60008111610ee8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e6e6f74206465706f736974203020546f6b656e7300000000000000000081525060200191505060405180910390fd5b73704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e73ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610f8b57600080fd5b505af1158015610f9f573d6000803e3d6000fd5b505050506040513d6020811015610fb557600080fd5b8101908080519060200190929190505050611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e73756666696369656e7420546f6b656e20416c6c6f77616e63650000000081525060200191505060405180910390fd5b61104133611474565b600061106b61271061105d60648561172190919063ffffffff16565b61175090919063ffffffff16565b90506000611082828461170a90919063ffffffff16565b905073704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561112957600080fd5b505af115801561113d573d6000803e3d6000fd5b505050506040513d602081101561115357600080fd5b81019080805190602001909291905050506111d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f74207472616e73666572206465706f736974206665652e0081525060200191505060405180910390fd5b61122881600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117de90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061127f33600261176990919063ffffffff16565b6112dd576112973360026117fa90919063ffffffff16565b5042600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b6301e1338081565b60046020528060005260406000206000915090505481565b60015481565b603281565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461136557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561139f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60066020528060005260406000206000915090505481565b600061147f82610ceb565b905060008111156116c25773704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561150f57600080fd5b505af1158015611523573d6000803e3d6000fd5b505050506040513d602081101561153957600080fd5b81019080805190602001909291905050506115bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f74207472616e7366657220746f6b656e732e00000000000081525060200191505060405180910390fd5b61160e81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117de90919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611666816001546117de90919063ffffffff16565b6001819055507f586b2e63a21a7a4e1402e36f48ce10cb1ec94684fea254c186b76d1f98ecf1308282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60008282111561171657fe5b818303905092915050565b6000808284029050600084148061174057508284828161173d57fe5b04145b61174657fe5b8091505092915050565b60008082848161175c57fe5b0490508091505092915050565b6000611791836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61182a565b905092915050565b60006117c1836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61184d565b905092915050565b60006117d782600001611935565b9050919050565b6000808284019050838110156117f057fe5b8091505092915050565b6000611822836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611946565b905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114611929576000600182039050600060018660000180549050039050600086600001828154811061189857fe5b90600052602060002001549050808760000184815481106118b557fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806118ed57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061192f565b60009150505b92915050565b600081600001805490509050919050565b6000611952838361182a565b6119ab5782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506119b0565b600090505b9291505056fe596f7520726563656e746c79207374616b65642c20706c656173652077616974206265666f7265207769746864726177696e672ea2646970667358221220e36987e4fb9267a66e4f7bdb2720322bb2ccc7ebf89c6cedcafe59c563a697da64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063c326bf4f11610071578063c326bf4f14610429578063d578ceab14610481578063d816c7d51461049f578063f2fde38b146104bd578063f3f91fa0146105015761012c565b80638da5cb5b1461031d57806398896d10146103515780639d76ea58146103a9578063b6b55f25146103dd578063bec4de3f1461040b5761012c565b8063583d42fd116100f4578063583d42fd146101c35780635ef057be1461021b5780636270cd18146102395780636a395ccb146102915780637b0a47ee146102ff5761012c565b80630f1a64441461013157806319aa70e71461014f578063268cab49146101595780632e1a7d4d14610177578063308feec3146101a5575b600080fd5b610139610559565b6040518082815260200191505060405180910390f35b610157610560565b005b61016161056b565b6040518082815260200191505060405180910390f35b6101a36004803603602081101561018d57600080fd5b81019080803590602001909291905050506105b4565b005b6101ad610af9565b6040518082815260200191505060405180910390f35b610205600480360360208110156101d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b0a565b6040518082815260200191505060405180910390f35b610223610b22565b6040518082815260200191505060405180910390f35b61027b6004803603602081101561024f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b27565b6040518082815260200191505060405180910390f35b6102fd600480360360608110156102a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b3f565b005b610307610cc1565b6040518082815260200191505060405180910390f35b610325610cc7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103936004803603602081101561036757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ceb565b6040518082815260200191505060405180910390f35b6103b1610e5a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610409600480360360208110156103f357600080fd5b8101908080359060200190929190505050610e72565b005b6104136112e2565b6040518082815260200191505060405180910390f35b61046b6004803603602081101561043f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ea565b6040518082815260200191505060405180910390f35b610489611302565b6040518082815260200191505060405180910390f35b6104a7611308565b6040518082815260200191505060405180910390f35b6104ff600480360360208110156104d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061130d565b005b6105436004803603602081101561051757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061145c565b6040518082815260200191505060405180910390f35b6203f48081565b61056933611474565b565b600069018e71bd8a07f11800006001541061058957600090506105b1565b60006105aa60015469018e71bd8a07f118000061170a90919063ffffffff16565b9050809150505b90565b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f496e76616c696420616d6f756e7420746f20776974686472617700000000000081525060200191505060405180910390fd5b6203f4806106bf600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261170a90919063ffffffff16565b11610715576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806119b76034913960400191505060405180910390fd5b61071e33611474565b600061074861271061073a60328561172190919063ffffffff16565b61175090919063ffffffff16565b9050600061075f828461170a90919063ffffffff16565b905073704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561080657600080fd5b505af115801561081a573d6000803e3d6000fd5b505050506040513d602081101561083057600080fd5b81019080805190602001909291905050506108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74207472616e73666572207769746864726177206665652e81525060200191505060405180910390fd5b73704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561093857600080fd5b505af115801561094c573d6000803e3d6000fd5b505050506040513d602081101561096257600080fd5b81019080805190602001909291905050506109e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f74207472616e7366657220746f6b656e732e00000000000081525060200191505060405180910390fd5b610a3783600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170a90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a8e33600261176990919063ffffffff16565b8015610ad957506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15610af457610af233600261179990919063ffffffff16565b505b505050565b6000610b0560026117c9565b905090565b60056020528060005260406000206000915090505481565b606481565b60076020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b9757600080fd5b73704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c0f57610be761056b565b811115610bf357600080fd5b610c08816001546117de90919063ffffffff16565b6001819055505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c8057600080fd5b505af1158015610c94573d6000803e3d6000fd5b505050506040513d6020811015610caa57600080fd5b810190808051906020019092919050505050505050565b61271081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d0182600261176990919063ffffffff16565b610d0e5760009050610e55565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610d5f5760009050610e55565b6000610db3600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261170a90919063ffffffff16565b90506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000610e4c612710610e3e6301e13380610e3087610e226127108961172190919063ffffffff16565b61172190919063ffffffff16565b61175090919063ffffffff16565b61175090919063ffffffff16565b90508093505050505b919050565b73704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e81565b60008111610ee8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e6e6f74206465706f736974203020546f6b656e7300000000000000000081525060200191505060405180910390fd5b73704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e73ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610f8b57600080fd5b505af1158015610f9f573d6000803e3d6000fd5b505050506040513d6020811015610fb557600080fd5b8101908080519060200190929190505050611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e73756666696369656e7420546f6b656e20416c6c6f77616e63650000000081525060200191505060405180910390fd5b61104133611474565b600061106b61271061105d60648561172190919063ffffffff16565b61175090919063ffffffff16565b90506000611082828461170a90919063ffffffff16565b905073704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561112957600080fd5b505af115801561113d573d6000803e3d6000fd5b505050506040513d602081101561115357600080fd5b81019080805190602001909291905050506111d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f74207472616e73666572206465706f736974206665652e0081525060200191505060405180910390fd5b61122881600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117de90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061127f33600261176990919063ffffffff16565b6112dd576112973360026117fa90919063ffffffff16565b5042600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b6301e1338081565b60046020528060005260406000206000915090505481565b60015481565b603281565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461136557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561139f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60066020528060005260406000206000915090505481565b600061147f82610ceb565b905060008111156116c25773704135ecbb0bea17fd3daad8e3583ccc6f6f7f0e73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561150f57600080fd5b505af1158015611523573d6000803e3d6000fd5b505050506040513d602081101561153957600080fd5b81019080805190602001909291905050506115bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f74207472616e7366657220746f6b656e732e00000000000081525060200191505060405180910390fd5b61160e81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117de90919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611666816001546117de90919063ffffffff16565b6001819055507f586b2e63a21a7a4e1402e36f48ce10cb1ec94684fea254c186b76d1f98ecf1308282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60008282111561171657fe5b818303905092915050565b6000808284029050600084148061174057508284828161173d57fe5b04145b61174657fe5b8091505092915050565b60008082848161175c57fe5b0490508091505092915050565b6000611791836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61182a565b905092915050565b60006117c1836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61184d565b905092915050565b60006117d782600001611935565b9050919050565b6000808284019050838110156117f057fe5b8091505092915050565b6000611822836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611946565b905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114611929576000600182039050600060018660000180549050039050600086600001828154811061189857fe5b90600052602060002001549050808760000184815481106118b557fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806118ed57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061192f565b60009150505b92915050565b600081600001805490509050919050565b6000611952838361182a565b6119ab5782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506119b0565b600090505b9291505056fe596f7520726563656e746c79207374616b65642c20706c656173652077616974206265666f7265207769746864726177696e672ea2646970667358221220e36987e4fb9267a66e4f7bdb2720322bb2ccc7ebf89c6cedcafe59c563a697da64736f6c634300060c0033
Deployed Bytecode Sourcemap
5265:5017:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6067:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9380:72;;;:::i;:::-;;9534:261;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8447:921;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7559:99;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6277:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5804:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6383:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9904:375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5634:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4662:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6975:572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5503:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7676:759;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5715:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6222:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6121:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5931:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4915:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6328:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6067:41;6100:8;6067:41;:::o;9380:72::-;9419:25;9433:10;9419:13;:25::i;:::-;9380:72::o;9534:261::-;9589:4;9514:7;9610:19;;:42;9606:83;;9676:1;9669:8;;;;9606:83;9699:14;9716:44;9740:19;;9514:7;9716:23;;:44;;;;:::i;:::-;9699:61;;9778:9;9771:16;;;9534:261;;:::o;8447:921::-;8545:16;8514:15;:27;8530:10;8514:27;;;;;;;;;;;;;;;;:47;;8506:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6100:8;8621:32;8629:11;:23;8641:10;8629:23;;;;;;;;;;;;;;;;8621:3;:7;;:32;;;;:::i;:::-;:44;8613:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8743:25;8757:10;8743:13;:25::i;:::-;8789:8;8800:47;8843:3;8800:38;5971:2;8800:16;:20;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;8789:58;;8858:19;8880:25;8901:3;8880:16;:20;;:25;;;;:::i;:::-;8858:47;;5542:42;8934:28;;;8963:5;;;;;;;;;;8970:3;8934:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8926:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5542:42;9030:28;;;9059:10;9071:14;9030:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9022:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9168:49;9200:16;9168:15;:27;9184:10;9168:27;;;;;;;;;;;;;;;;:31;;:49;;;;:::i;:::-;9138:15;:27;9154:10;9138:27;;;;;;;;;;;;;;;:79;;;;9242:28;9259:10;9242:7;:16;;:28;;;;:::i;:::-;:64;;;;;9305:1;9274:15;:27;9290:10;9274:27;;;;;;;;;;;;;;;;:32;9242:64;9238:123;;;9323:26;9338:10;9323:7;:14;;:26;;;;:::i;:::-;;9238:123;8447:921;;;:::o;7559:99::-;7610:4;7634:16;:7;:14;:16::i;:::-;7627:23;;7559:99;:::o;6277:44::-;;;;;;;;;;;;;;;;;:::o;5804:41::-;5842:3;5804:41;:::o;6383:50::-;;;;;;;;;;;;;;;;;:::o;9904:375::-;4889:5;;;;;;;;;;4875:19;;:10;:19;;;4867:28;;;;;;5542:42:::1;10015:26;;:10;:26;;;10011:210;;;10072:24;:22;:24::i;:::-;10062:7;:34;10058:83;;;10117:8;::::0;::::1;10058:83;10177:32;10201:7;10177:19;;:23;;:32;;;;:::i;:::-;10155:19;:54;;;;10011:210;10237:10;10231:26;;;10258:3;10263:7;10231:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;9904:375:::0;;;:::o;5634:39::-;5668:5;5634:39;:::o;4662:20::-;;;;;;;;;;;;:::o;6975:572::-;7037:4;7059:25;7076:7;7059;:16;;:25;;;;:::i;:::-;7054:40;;7093:1;7086:8;;;;7054:40;7137:1;7109:15;:24;7125:7;7109:24;;;;;;;;;;;;;;;;:29;7105:43;;;7147:1;7140:8;;;;7105:43;7161:13;7177:33;7185:15;:24;7201:7;7185:24;;;;;;;;;;;;;;;;7177:3;:7;;:33;;;;:::i;:::-;7161:49;;7221:17;7241:15;:24;7257:7;7241:24;;;;;;;;;;;;;;;;7221:44;;7286:16;7305:191;7492:3;7305:152;5753:8;7305:102;7398:8;7305:58;5668:5;7305:12;:46;;:58;;;;:::i;:::-;:92;;:102;;;;:::i;:::-;:136;;:152;;;;:::i;:::-;:186;;:191;;;;:::i;:::-;7286:210;;7528:11;7521:18;;;;;6975:572;;;;:::o;5503:81::-;5542:42;5503:81;:::o;7676:759::-;7755:1;7739:13;:17;7731:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5542:42;7803:32;;;7836:10;7856:4;7863:13;7803:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7795:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7931:25;7945:10;7931:13;:25::i;:::-;7977:8;7988:42;8026:3;7988:33;5842:3;7988:13;:17;;:33;;;;:::i;:::-;:37;;:42;;;;:::i;:::-;7977:53;;8041:19;8063:22;8081:3;8063:13;:17;;:22;;;;:::i;:::-;8041:44;;5542:42;8104:28;;;8133:5;;;;;;;;;;8140:3;8104:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8096:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8231:47;8263:14;8231:15;:27;8247:10;8231:27;;;;;;;;;;;;;;;;:31;;:47;;;;:::i;:::-;8201:15;:27;8217:10;8201:27;;;;;;;;;;;;;;;:77;;;;8304:28;8321:10;8304:7;:16;;:28;;;;:::i;:::-;8299:129;;8349:23;8361:10;8349:7;:11;;:23;;;;:::i;:::-;;8413:3;8387:11;:23;8399:10;8387:23;;;;;;;;;;;;;;;:29;;;;8299:129;7676:759;;;:::o;5715:46::-;5753:8;5715:46;:::o;6222:48::-;;;;;;;;;;;;;;;;;:::o;6121:35::-;;;;:::o;5931:42::-;5971:2;5931:42;:::o;4915:178::-;4889:5;;;;;;;;;;4875:19;;:10;:19;;;4867:28;;;;;;5012:1:::1;4992:22;;:8;:22;;;;4984:31;;;::::0;::::1;;5055:8;5027:37;;5048:5;::::0;::::1;;;;;;;;5027:37;;;;;;;;;;;;5079:8;5071:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;4915:178:::0;:::o;6328:48::-;;;;;;;;;;;;;;;;;:::o;6446:517::-;6505:16;6524:23;6539:7;6524:14;:23::i;:::-;6505:42;;6576:1;6562:11;:15;6558:357;;;5542:42;6602:28;;;6631:7;6640:11;6602:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6594:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6727:43;6758:11;6727:17;:26;6745:7;6727:26;;;;;;;;;;;;;;;;:30;;:43;;;;:::i;:::-;6698:17;:26;6716:7;6698:26;;;;;;;;;;;;;;;:72;;;;6807:36;6831:11;6807:19;;:23;;:36;;;;:::i;:::-;6785:19;:58;;;;6863:40;6882:7;6891:11;6863:40;;;;;;;;;;;;;;;;;;;;;;;;;;6558:357;6952:3;6925:15;:24;6941:7;6925:24;;;;;;;;;;;;;;;:30;;;;6446:517;;:::o;514:113::-;572:7;600:1;595;:6;;588:14;;;;620:1;616;:5;609:12;;514:113;;;;:::o;85:147::-;143:7;159:9;175:1;171;:5;159:17;;195:1;190;:6;:20;;;;209:1;204;200;:5;;;;;;:10;190:20;183:28;;;;225:1;218:8;;;85:147;;;;:::o;238:270::-;296:7;387:9;403:1;399;:5;;;;;;387:17;;501:1;494:8;;;238:270;;;;:::o;3260:158::-;3340:4;3364:46;3374:3;:10;;3402:5;3394:14;;3386:23;;3364:9;:46::i;:::-;3357:53;;3260:158;;;;:::o;3025:149::-;3098:4;3122:44;3130:3;:10;;3158:5;3150:14;;3142:23;;3122:7;:44::i;:::-;3115:51;;3025:149;;;;:::o;3504:117::-;3567:7;3594:19;3602:3;:10;;3594:7;:19::i;:::-;3587:26;;3504:117;;;:::o;633:133::-;691:7;707:9;723:1;719;:5;707:17;;743:1;738;:6;;731:14;;;;759:1;752:8;;;633:133;;;;:::o;2874:143::-;2944:4;2968:41;2973:3;:10;;3001:5;2993:14;;2985:23;;2968:4;:41::i;:::-;2961:48;;2874:143;;;;:::o;2332:129::-;2405:4;2452:1;2429:3;:12;;:19;2442:5;2429:19;;;;;;;;;;;;:24;;2422:31;;2332:129;;;;:::o;1210:1036::-;1276:4;1394:18;1415:3;:12;;:19;1428:5;1415:19;;;;;;;;;;;;1394:40;;1465:1;1451:10;:15;1447:792;;1531:21;1568:1;1555:10;:14;1531:38;;1584:17;1625:1;1604:3;:11;;:18;;;;:22;1584:42;;1645:17;1665:3;:11;;1677:9;1665:22;;;;;;;;;;;;;;;;1645:42;;1811:9;1782:3;:11;;1794:13;1782:26;;;;;;;;;;;;;;;:38;;;;1930:1;1914:13;:17;1888:3;:12;;:23;1901:9;1888:23;;;;;;;;;;;:43;;;;2040:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;2135:3;:12;;:19;2148:5;2135:19;;;;;;;;;;;2128:26;;;2178:4;2171:11;;;;;;;;1447:792;2222:5;2215:12;;;1210:1036;;;;;:::o;2469:109::-;2525:7;2552:3;:11;;:18;;;;2545:25;;2469:109;;;:::o;909:293::-;972:4;994:21;1004:3;1009:5;994:9;:21::i;:::-;989:206;;1032:3;:11;;1049:5;1032:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:3;:11;;:18;;;;1072:3;:12;;:19;1085:5;1072:19;;;;;;;;;;;:40;;;;1134:4;1127:11;;;;989:206;1178:5;1171:12;;909:293;;;;;:::o
Swarm Source
ipfs://e36987e4fb9267a66e4f7bdb2720322bb2ccc7ebf89c6cedcafe59c563a697da
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.