More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 13,225 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Exit | 20271431 | 85 days ago | IN | 0 ETH | 0.0005841 | ||||
Exit | 20271429 | 85 days ago | IN | 0 ETH | 0.00047732 | ||||
Exit | 20271428 | 85 days ago | IN | 0 ETH | 0.00047573 | ||||
Exit | 20269583 | 85 days ago | IN | 0 ETH | 0.00072481 | ||||
Exit | 19828064 | 147 days ago | IN | 0 ETH | 0.0002047 | ||||
Withdraw | 19828064 | 147 days ago | IN | 0 ETH | 0.00022124 | ||||
Get Reward | 19828062 | 147 days ago | IN | 0 ETH | 0.00018918 | ||||
Withdraw | 19828060 | 147 days ago | IN | 0 ETH | 0.00019546 | ||||
Exit | 19699854 | 165 days ago | IN | 0 ETH | 0.00058393 | ||||
Exit | 19416394 | 205 days ago | IN | 0 ETH | 0.00425099 | ||||
Get Reward | 19134274 | 244 days ago | IN | 0 ETH | 0.00213973 | ||||
Withdraw | 19134271 | 244 days ago | IN | 0 ETH | 0.00305961 | ||||
Get Reward | 19033355 | 258 days ago | IN | 0 ETH | 0.00193603 | ||||
Withdraw | 19033353 | 258 days ago | IN | 0 ETH | 0.0021811 | ||||
Exit | 17243820 | 509 days ago | IN | 0 ETH | 0.00317149 | ||||
Get Reward | 17243815 | 509 days ago | IN | 0 ETH | 0.00367189 | ||||
Get Reward | 17243776 | 509 days ago | IN | 0 ETH | 0.00278278 | ||||
Get Reward | 16769630 | 576 days ago | IN | 0 ETH | 0.00212415 | ||||
Withdraw | 16769627 | 576 days ago | IN | 0 ETH | 0.00299128 | ||||
Get Reward | 16387087 | 630 days ago | IN | 0 ETH | 0.00243734 | ||||
Withdraw | 16387085 | 630 days ago | IN | 0 ETH | 0.00338775 | ||||
Get Reward | 16383348 | 630 days ago | IN | 0 ETH | 0.00099758 | ||||
Withdraw | 16383346 | 630 days ago | IN | 0 ETH | 0.0017091 | ||||
Get Reward | 16362808 | 633 days ago | IN | 0 ETH | 0.00128985 | ||||
Withdraw | 16362804 | 633 days ago | IN | 0 ETH | 0.00218802 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
dgStaking
Compiler Version
v0.7.5+commit.eb77ed08
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-12-09 */ // SPDX-License-Identifier: -- 🎲 -- pragma solidity ^0.7.5; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, 'SafeMath: addition overflow'); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, 'SafeMath: subtraction overflow'); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, 'SafeMath: multiplication overflow'); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, 'SafeMath: division by zero'); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, 'SafeMath: modulo by zero'); return a % b; } } library Math { function max(uint256 a, uint256 b) internal pure returns (uint256) { return a >= b ? a : b; } function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } function average(uint256 a, uint256 b) internal pure returns (uint256) { return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2); } } contract Context { constructor() {} function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = _msgSender(); emit OwnershipTransferred( address(0), _owner ); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require( isOwner(), 'Ownable: caller is not the owner' ); _; } function isOwner() public view returns (bool) { return _msgSender() == _owner; } function renounceOwnership() public onlyOwner { emit OwnershipTransferred( _owner, address(0x0) ); _owner = address(0x0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require( newOwner != address(0x0), 'Ownable: new owner is the zero address' ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } function toPayable(address account) internal pure returns (address payable) { return address(uint160(account)); } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, 'Address: insufficient balance' ); (bool success, ) = recipient.call{value: amount}(''); require( success, 'Address: unable to send value' ); } } library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer( IERC20 token, address to, uint256 value ) internal { callOptionalReturn( token, abi.encodeWithSelector( token.transfer.selector, to, value ) ); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { callOptionalReturn( token, abi.encodeWithSelector( token.transferFrom.selector, from, to, value ) ); } function safeApprove( IERC20 token, address spender, uint256 value ) internal { require( (value == 0) || (token.allowance(address(this), spender) == 0), 'SafeERC20: approve from non-zero to non-zero allowance' ); callOptionalReturn( token, abi.encodeWithSelector( token.approve.selector, spender, value ) ); } function safeIncreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance( address(this), spender ).add(value); callOptionalReturn( token, abi.encodeWithSelector( token.approve.selector, spender, newAllowance ) ); } function safeDecreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance( address(this), spender ).sub(value); callOptionalReturn( token, abi.encodeWithSelector( token.approve.selector, spender, newAllowance ) ); } function callOptionalReturn( IERC20 token, bytes memory data ) private { require( address(token).isContract(), 'SafeERC20: call to non-contract' ); (bool success, bytes memory returndata) = address(token).call(data); require( success, 'SafeERC20: low-level call failed' ); if (returndata.length > 0) { require( abi.decode(returndata, (bool)), 'SafeERC20: ERC20 operation did not succeed' ); } } } contract LPTokenWrapper { using SafeMath for uint256; using SafeERC20 for IERC20; IERC20 public bpt = IERC20( 0xEE06A81a695750E71a662B51066F2c74CF4478a0 ); uint256 private _totalSupply; mapping(address => uint256) private _balances; function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function _stake(uint256 amount) internal { _totalSupply = _totalSupply.add(amount); _balances[msg.sender] = _balances[msg.sender].add(amount); bpt.safeTransferFrom( msg.sender, address(this), amount ); } function _withdraw(uint256 amount) internal { _totalSupply = _totalSupply.sub(amount); _balances[msg.sender] = _balances[msg.sender].sub(amount); bpt.safeTransfer( msg.sender, amount ); } } contract dgStaking is LPTokenWrapper, Ownable { using SafeMath for uint256; using SafeERC20 for IERC20; IERC20 public dg = IERC20( 0xEE06A81a695750E71a662B51066F2c74CF4478a0 ); uint256 public constant DURATION = 5 weeks; uint256 public periodFinish; uint256 public rewardRate; uint256 public lastUpdateTime; uint256 public rewardPerTokenStored; mapping(address => uint256) public userRewardPerTokenPaid; mapping(address => uint256) public rewards; event RewardAdded( uint256 reward ); event Staked( address indexed user, uint256 amount ); event Withdrawn( address indexed user, uint256 amount ); event RewardPaid( address indexed user, uint256 reward ); modifier updateReward(address account) { rewardPerTokenStored = rewardPerToken(); lastUpdateTime = lastTimeRewardApplicable(); if (account != address(0)) { rewards[account] = earned(account); userRewardPerTokenPaid[account] = rewardPerTokenStored; } _; } function lastTimeRewardApplicable() public view returns (uint256) { return Math.min( block.timestamp, periodFinish ); } function rewardPerToken() public view returns (uint256) { if (totalSupply() == 0) { return rewardPerTokenStored; } return rewardPerTokenStored.add( lastTimeRewardApplicable() .sub(lastUpdateTime) .mul(rewardRate) .mul(1e18) .div(totalSupply()) ); } function earned( address account ) public view returns (uint256) { return balanceOf(account) .mul(rewardPerToken().sub(userRewardPerTokenPaid[account])) .div(1E18) .add(rewards[account]); } function stake( uint256 amount ) public updateReward(msg.sender) { require( amount > 0, 'Cannot stake 0' ); _stake(amount); emit Staked( msg.sender, amount ); } function withdraw( uint256 amount ) public updateReward(msg.sender) { require( amount > 0, 'Cannot withdraw 0' ); _withdraw(amount); emit Withdrawn( msg.sender, amount ); } function exit() external { withdraw(balanceOf(msg.sender)); getReward(); } function getReward() public updateReward(msg.sender) returns (uint256 reward) { reward = earned(msg.sender); if (reward > 0) { rewards[msg.sender] = 0; dg.safeTransfer(msg.sender, reward); emit RewardPaid(msg.sender, reward); } } function notifyRewardAmount(uint256 reward) external onlyOwner updateReward(address(0x0)) { if (block.timestamp >= periodFinish) { rewardRate = reward.div(DURATION); } else { uint256 remaining = periodFinish.sub(block.timestamp); uint256 leftover = remaining.mul(rewardRate); rewardRate = reward.add(leftover).div(DURATION); } lastUpdateTime = block.timestamp; periodFinish = block.timestamp.add(DURATION); emit RewardAdded(reward); } }
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":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[],"name":"DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bpt","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dg","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getReward","outputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","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":"address","name":"","type":"address"}],"name":"userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405273ee06a81a695750e71a662b51066f2c74cf4478a06000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ee06a81a695750e71a662b51066f2c74cf4478a0600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156100b957600080fd5b506100c861018a60201b60201c565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3610192565b600033905090565b611bff806101a16000396000f3fe608060405234801561001057600080fd5b506004361061014c5760003560e01c80637b0a47ee116100c3578063c8f33c911161007c578063c8f33c9114610497578063cd3daf9d146104b5578063df136d65146104d3578063e9fad8ee146104f1578063ebe2b12b146104fb578063f2fde38b146105195761014c565b80637b0a47ee1461038157806380faa57d1461039f5780638b876347146103bd5780638da5cb5b146104155780638f32d59b14610449578063a694fc3a146104695761014c565b80633c6b16ab116101155780633c6b16ab1461026b5780633d18b91214610299578063546af3c3146102b757806355568b03146102eb57806370a082311461031f578063715018a6146103775761014c565b80628cc262146101515780630700037d146101a957806318160ddd146102015780631be052891461021f5780632e1a7d4d1461023d575b600080fd5b6101936004803603602081101561016757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061055d565b6040518082815260200191505060405180910390f35b6101eb600480360360208110156101bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610644565b6040518082815260200191505060405180910390f35b61020961065c565b6040518082815260200191505060405180910390f35b610227610666565b6040518082815260200191505060405180910390f35b6102696004803603602081101561025357600080fd5b810190808035906020019092919050505061066d565b005b6102976004803603602081101561028157600080fd5b8101908080359060200190929190505050610822565b005b6102a1610a6c565b6040518082815260200191505060405180910390f35b6102bf610c4b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102f3610c6f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103616004803603602081101561033557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c95565b6040518082815260200191505060405180910390f35b61037f610cde565b005b610389610e19565b6040518082815260200191505060405180910390f35b6103a7610e1f565b6040518082815260200191505060405180910390f35b6103ff600480360360208110156103d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e32565b6040518082815260200191505060405180910390f35b61041d610e4a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610451610e74565b60405180821515815260200191505060405180910390f35b6104956004803603602081101561047f57600080fd5b8101908080359060200190929190505050610ed3565b005b61049f611088565b6040518082815260200191505060405180910390f35b6104bd61108e565b6040518082815260200191505060405180910390f35b6104db611126565b6040518082815260200191505060405180910390f35b6104f961112c565b005b610503611148565b6040518082815260200191505060405180910390f35b61055b6004803603602081101561052f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061114e565b005b600061063d600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461062f670de0b6b3a764000061062161060a600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105fc61108e565b6111d490919063ffffffff16565b61061388610c95565b61125d90919063ffffffff16565b6112e390919063ffffffff16565b61137290919063ffffffff16565b9050919050565b600a6020528060005260406000206000915090505481565b6000600154905090565b622e248081565b3361067661108e565b600881905550610684610e1f565b600781905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610751576106c78161055d565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600854600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600082116107c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b6107d0826113fa565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b61082a610e74565b61089c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006108a661108e565b6008819055506108b4610e1f565b600781905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610981576108f78161055d565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600854600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60055442106109ab576109a0622e2480836112e390919063ffffffff16565b600681905550610a0e565b60006109c2426005546111d490919063ffffffff16565b905060006109db6006548361125d90919063ffffffff16565b9050610a05622e24806109f7838761137290919063ffffffff16565b6112e390919063ffffffff16565b60068190555050505b42600781905550610a2b622e24804261137290919063ffffffff16565b6005819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d826040518082815260200191505060405180910390a15050565b600033610a7761108e565b600881905550610a85610e1f565b600781905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b5257610ac88161055d565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600854600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b5b3361055d565b91506000821115610c47576000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bf83383600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114f89092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486836040518082815260200191505060405180910390a25b5090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ce6610e74565b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b6000610e2d4260055461159a565b905090565b60096020528060005260406000206000915090505481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb76115b3565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b33610edc61108e565b600881905550610eea610e1f565b600781905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fb757610f2d8161055d565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600854600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000821161102d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b611036826115bb565b3373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040518082815260200191505060405180910390a25050565b60075481565b60008061109961065c565b14156110a9576008549050611123565b61112061110f6110b761065c565b611101670de0b6b3a76400006110f36006546110e56007546110d7610e1f565b6111d490919063ffffffff16565b61125d90919063ffffffff16565b61125d90919063ffffffff16565b6112e390919063ffffffff16565b60085461137290919063ffffffff16565b90505b90565b60085481565b61113d61113833610c95565b61066d565b611145610a6c565b50565b60055481565b611156610e74565b6111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6111d1816116bb565b50565b60008282111561124c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b60008083141561127057600090506112dd565b600082840290508284828161128157fe5b04146112d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611b7f6021913960400191505060405180910390fd5b809150505b92915050565b600080821161135a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b600082848161136557fe5b0490508091505092915050565b6000808284019050838110156113f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b61140f816001546111d490919063ffffffff16565b60018190555061146781600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111d490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114f5338260008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114f89092919063ffffffff16565b50565b6115958363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611801565b505050565b60008183106115a957816115ab565b825b905092915050565b600033905090565b6115d08160015461137290919063ffffffff16565b60018190555061162881600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461137290919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116b833308360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a4c909392919063ffffffff16565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611b596026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118208273ffffffffffffffffffffffffffffffffffffffff16611b0d565b611892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083106118e157805182526020820191506020810190506020830392506118be565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611943576040519150601f19603f3d011682016040523d82523d6000602084013e611948565b606091505b5091509150816119c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115611a46578080602001905160208110156119df57600080fd5b8101908080519060200190929190505050611a45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611ba0602a913960400191505060405180910390fd5b5b50505050565b611b07846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611801565b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b8214158015611b4f5750808214155b9250505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220379e7770a11f10b493ad1f1fb955affc57948796363107f6409995db3702f62764736f6c63430007050033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014c5760003560e01c80637b0a47ee116100c3578063c8f33c911161007c578063c8f33c9114610497578063cd3daf9d146104b5578063df136d65146104d3578063e9fad8ee146104f1578063ebe2b12b146104fb578063f2fde38b146105195761014c565b80637b0a47ee1461038157806380faa57d1461039f5780638b876347146103bd5780638da5cb5b146104155780638f32d59b14610449578063a694fc3a146104695761014c565b80633c6b16ab116101155780633c6b16ab1461026b5780633d18b91214610299578063546af3c3146102b757806355568b03146102eb57806370a082311461031f578063715018a6146103775761014c565b80628cc262146101515780630700037d146101a957806318160ddd146102015780631be052891461021f5780632e1a7d4d1461023d575b600080fd5b6101936004803603602081101561016757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061055d565b6040518082815260200191505060405180910390f35b6101eb600480360360208110156101bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610644565b6040518082815260200191505060405180910390f35b61020961065c565b6040518082815260200191505060405180910390f35b610227610666565b6040518082815260200191505060405180910390f35b6102696004803603602081101561025357600080fd5b810190808035906020019092919050505061066d565b005b6102976004803603602081101561028157600080fd5b8101908080359060200190929190505050610822565b005b6102a1610a6c565b6040518082815260200191505060405180910390f35b6102bf610c4b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102f3610c6f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103616004803603602081101561033557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c95565b6040518082815260200191505060405180910390f35b61037f610cde565b005b610389610e19565b6040518082815260200191505060405180910390f35b6103a7610e1f565b6040518082815260200191505060405180910390f35b6103ff600480360360208110156103d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e32565b6040518082815260200191505060405180910390f35b61041d610e4a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610451610e74565b60405180821515815260200191505060405180910390f35b6104956004803603602081101561047f57600080fd5b8101908080359060200190929190505050610ed3565b005b61049f611088565b6040518082815260200191505060405180910390f35b6104bd61108e565b6040518082815260200191505060405180910390f35b6104db611126565b6040518082815260200191505060405180910390f35b6104f961112c565b005b610503611148565b6040518082815260200191505060405180910390f35b61055b6004803603602081101561052f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061114e565b005b600061063d600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461062f670de0b6b3a764000061062161060a600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105fc61108e565b6111d490919063ffffffff16565b61061388610c95565b61125d90919063ffffffff16565b6112e390919063ffffffff16565b61137290919063ffffffff16565b9050919050565b600a6020528060005260406000206000915090505481565b6000600154905090565b622e248081565b3361067661108e565b600881905550610684610e1f565b600781905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610751576106c78161055d565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600854600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600082116107c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b6107d0826113fa565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b61082a610e74565b61089c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006108a661108e565b6008819055506108b4610e1f565b600781905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610981576108f78161055d565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600854600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60055442106109ab576109a0622e2480836112e390919063ffffffff16565b600681905550610a0e565b60006109c2426005546111d490919063ffffffff16565b905060006109db6006548361125d90919063ffffffff16565b9050610a05622e24806109f7838761137290919063ffffffff16565b6112e390919063ffffffff16565b60068190555050505b42600781905550610a2b622e24804261137290919063ffffffff16565b6005819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d826040518082815260200191505060405180910390a15050565b600033610a7761108e565b600881905550610a85610e1f565b600781905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b5257610ac88161055d565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600854600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b5b3361055d565b91506000821115610c47576000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bf83383600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114f89092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486836040518082815260200191505060405180910390a25b5090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ce6610e74565b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b6000610e2d4260055461159a565b905090565b60096020528060005260406000206000915090505481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb76115b3565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b33610edc61108e565b600881905550610eea610e1f565b600781905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fb757610f2d8161055d565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600854600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000821161102d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b611036826115bb565b3373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040518082815260200191505060405180910390a25050565b60075481565b60008061109961065c565b14156110a9576008549050611123565b61112061110f6110b761065c565b611101670de0b6b3a76400006110f36006546110e56007546110d7610e1f565b6111d490919063ffffffff16565b61125d90919063ffffffff16565b61125d90919063ffffffff16565b6112e390919063ffffffff16565b60085461137290919063ffffffff16565b90505b90565b60085481565b61113d61113833610c95565b61066d565b611145610a6c565b50565b60055481565b611156610e74565b6111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6111d1816116bb565b50565b60008282111561124c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b60008083141561127057600090506112dd565b600082840290508284828161128157fe5b04146112d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611b7f6021913960400191505060405180910390fd5b809150505b92915050565b600080821161135a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b600082848161136557fe5b0490508091505092915050565b6000808284019050838110156113f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b61140f816001546111d490919063ffffffff16565b60018190555061146781600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111d490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114f5338260008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114f89092919063ffffffff16565b50565b6115958363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611801565b505050565b60008183106115a957816115ab565b825b905092915050565b600033905090565b6115d08160015461137290919063ffffffff16565b60018190555061162881600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461137290919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116b833308360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a4c909392919063ffffffff16565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611b596026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118208273ffffffffffffffffffffffffffffffffffffffff16611b0d565b611892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083106118e157805182526020820191506020810190506020830392506118be565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611943576040519150601f19603f3d011682016040523d82523d6000602084013e611948565b606091505b5091509150816119c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115611a46578080602001905160208110156119df57600080fd5b8101908080519060200190929190505050611a45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611ba0602a913960400191505060405180910390fd5b5b50505050565b611b07846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611801565b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b8214158015611b4f5750808214155b9250505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220379e7770a11f10b493ad1f1fb955affc57948796363107f6409995db3702f62764736f6c63430007050033
Deployed Bytecode Sourcemap
8644:3780:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10469:288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9126:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7845:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8861:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11076:315;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11844:577;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11504:332;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7661:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8767:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7944:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2504:181;;;:::i;:::-;;8950:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9836:200;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9062:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2164:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2402:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10765:303;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8982:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10044:417;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9018:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11399:97;;;:::i;:::-;;8916:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2693:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10469:288;10566:7;10598:151;10732:7;:16;10740:7;10732:16;;;;;;;;;;;;;;;;10598:115;10708:4;10598:91;10635:53;10656:22;:31;10679:7;10656:31;;;;;;;;;;;;;;;;10635:16;:14;:16::i;:::-;:20;;:53;;;;:::i;:::-;10598:18;10608:7;10598:9;:18::i;:::-;:36;;:91;;;;:::i;:::-;:109;;:115;;;;:::i;:::-;:133;;:151;;;;:::i;:::-;10591:158;;10469:288;;;:::o;9126:42::-;;;;;;;;;;;;;;;;;:::o;7845:91::-;7889:7;7916:12;;7909:19;;7845:91;:::o;8861:42::-;8896:7;8861:42;:::o;11076:315::-;11164:10;9569:16;:14;:16::i;:::-;9546:20;:39;;;;9613:26;:24;:26::i;:::-;9596:14;:43;;;;9675:1;9656:21;;:7;:21;;;9652:157;;9713:15;9720:7;9713:6;:15::i;:::-;9694:7;:16;9702:7;9694:16;;;;;;;;;;;;;;;:34;;;;9777:20;;9743:22;:31;9766:7;9743:31;;;;;;;;;;;;;;;:54;;;;9652:157;11223:1:::1;11214:6;:10;11192:77;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11282:17;11292:6;11282:9;:17::i;:::-;11341:10;11317:66;;;11366:6;11317:66;;;;;;;;;;;;;;;;;;11076:315:::0;;:::o;11844:577::-;2305:9;:7;:9::i;:::-;2283:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11955:3:::1;9569:16;:14;:16::i;:::-;9546:20;:39;;;;9613:26;:24;:26::i;:::-;9596:14;:43;;;;9675:1;9656:21;;:7;:21;;;9652:157;;9713:15;9720:7;9713:6;:15::i;:::-;9694:7;:16;9702:7;9694:16;;;;;;;;;;;;;;;:34;;;;9777:20;;9743:22;:31;9766:7;9743:31;;;;;;;;;;;;;;;:54;;;;9652:157;12000:12:::2;;11981:15;:31;11977:304;;12042:20;8896:7;12042:6;:10;;:20;;;;:::i;:::-;12029:10;:33;;;;11977:304;;;12095:17;12115:33;12132:15;12115:12;;:16;;:33;;;;:::i;:::-;12095:53;;12163:16;12182:25;12196:10;;12182:9;:13;;:25;;;;:::i;:::-;12163:44;;12235:34;8896:7;12235:20;12246:8;12235:6;:10;;:20;;;;:::i;:::-;:24;;:34;;;;:::i;:::-;12222:10;:47;;;;11977:304;;;12308:15;12291:14;:32;;;;12349:29;8896:7;12349:15;:19;;:29;;;;:::i;:::-;12334:12;:44;;;;12394:19;12406:6;12394:19;;;;;;;;;;;;;;;;;;2385:1:::1;11844:577:::0;:::o;11504:332::-;11593:14;11563:10;9569:16;:14;:16::i;:::-;9546:20;:39;;;;9613:26;:24;:26::i;:::-;9596:14;:43;;;;9675:1;9656:21;;:7;:21;;;9652:157;;9713:15;9720:7;9713:6;:15::i;:::-;9694:7;:16;9702:7;9694:16;;;;;;;;;;;;;;;:34;;;;9777:20;;9743:22;:31;9766:7;9743:31;;;;;;;;;;;;;;;:54;;;;9652:157;11634:18:::1;11641:10;11634:6;:18::i;:::-;11625:27;;11676:1;11667:6;:10;11663:166;;;11716:1;11694:7;:19;11702:10;11694:19;;;;;;;;;;;;;;;:23;;;;11732:35;11748:10;11760:6;11732:2;;;;;;;;;;;:15;;;;:35;;;;;:::i;:::-;11798:10;11787:30;;;11810:6;11787:30;;;;;;;;;;;;;;;;;;11663:166;11504:332:::0;;:::o;7661:86::-;;;;;;;;;;;;:::o;8767:85::-;;;;;;;;;;;;;:::o;7944:110::-;8001:7;8028:9;:18;8038:7;8028:18;;;;;;;;;;;;;;;;8021:25;;7944:110;;;:::o;2504:181::-;2305:9;:7;:9::i;:::-;2283:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2630:3:::1;2566:79;;2601:6;;;;;;;;;;;2566:79;;;;;;;;;;;;2673:3;2656:6;;:21;;;;;;;;;;;;;;;;;;2504:181::o:0;8950:25::-;;;;:::o;9836:200::-;9920:7;9952:76;9975:15;10005:12;;9952:8;:76::i;:::-;9945:83;;9836:200;:::o;9062:57::-;;;;;;;;;;;;;;;;;:::o;2164:79::-;2202:7;2229:6;;;;;;;;;;;2222:13;;2164:79;:::o;2402:94::-;2442:4;2482:6;;;;;;;;;;;2466:22;;:12;:10;:12::i;:::-;:22;;;2459:29;;2402:94;:::o;10765:303::-;10850:10;9569:16;:14;:16::i;:::-;9546:20;:39;;;;9613:26;:24;:26::i;:::-;9596:14;:43;;;;9675:1;9656:21;;:7;:21;;;9652:157;;9713:15;9720:7;9713:6;:15::i;:::-;9694:7;:16;9702:7;9694:16;;;;;;;;;;;;;;;:34;;;;9777:20;;9743:22;:31;9766:7;9743:31;;;;;;;;;;;;;;;:54;;;;9652:157;10909:1:::1;10900:6;:10;10878:74;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10965:14;10972:6;10965;:14::i;:::-;11018:10;10997:63;;;11043:6;10997:63;;;;;;;;;;;;;;;;;;10765:303:::0;;:::o;8982:29::-;;;;:::o;10044:417::-;10118:7;10164:1;10147:13;:11;:13::i;:::-;:18;10143:78;;;10189:20;;10182:27;;;;10143:78;10240:213;10279:163;10428:13;:11;:13::i;:::-;10279:126;10400:4;10279:98;10366:10;;10279:64;10328:14;;10279:26;:24;:26::i;:::-;:48;;:64;;;;:::i;:::-;:86;;:98;;;;:::i;:::-;:120;;:126;;;;:::i;:::-;:148;;:163;;;;:::i;:::-;10240:20;;:24;;:213;;;;:::i;:::-;10233:220;;10044:417;;:::o;9018:35::-;;;;:::o;11399:97::-;11435:31;11444:21;11454:10;11444:9;:21::i;:::-;11435:8;:31::i;:::-;11477:11;:9;:11::i;:::-;;11399:97::o;8916:27::-;;;;:::o;2693:109::-;2305:9;:7;:9::i;:::-;2283:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2766:28:::1;2785:8;2766:18;:28::i;:::-;2693:109:::0;:::o;282:182::-;340:7;373:1;368;:6;;360:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;420:9;436:1;432;:5;420:17;;455:1;448:8;;;282:182;;;;:::o;472:248::-;530:7;559:1;554;:6;550:47;;;584:1;577:8;;;;550:47;609:9;625:1;621;:5;609:17;;654:1;649;645;:5;;;;;;:10;637:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;711:1;704:8;;;472:248;;;;;:::o;728:264::-;786:7;818:1;814;:5;806:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;861:9;877:1;873;:5;;;;;;861:17;;983:1;976:8;;;728:264;;;;:::o;95:179::-;153:7;173:9;189:1;185;:5;173:17;;214:1;209;:6;;201:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;265:1;258:8;;;95:179;;;;:::o;8368:269::-;8440:24;8457:6;8440:12;;:16;;:24;;;;:::i;:::-;8425:12;:39;;;;8510:33;8536:6;8510:9;:21;8520:10;8510:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;8477:9;:21;8487:10;8477:21;;;;;;;;;;;;;;;:66;;;;8556:73;8587:10;8612:6;8556:3;;;;;;;;;;:16;;;;:73;;;;;:::i;:::-;8368:269;:::o;4728:327::-;4859:188;4892:5;4953:23;;;4995:2;5016:5;4912:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4859:18;:188::i;:::-;4728:327;;;:::o;1296:106::-;1354:7;1385:1;1381;:5;:13;;1393:1;1381:13;;;1389:1;1381:13;1374:20;;1296:106;;;;:::o;1605:98::-;1650:15;1685:10;1678:17;;1605:98;:::o;8062:298::-;8131:24;8148:6;8131:12;;:16;;:24;;;;:::i;:::-;8116:12;:39;;;;8201:33;8227:6;8201:9;:21;8211:10;8201:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;8168:9;:21;8178:10;8168:21;;;;;;;;;;;;;;;:66;;;;8247:105;8282:10;8315:4;8335:6;8247:3;;;;;;;;;;:20;;;;:105;;;;;;:::i;:::-;8062:298;:::o;2810:268::-;2918:3;2898:24;;:8;:24;;;;2876:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3033:8;3004:38;;3025:6;;;;;;;;;;;3004:38;;;;;;;;;;;;3062:8;3053:6;;:17;;;;;;;;;;;;;;;;;;2810:268;:::o;6938:615::-;7079:27;7087:5;7079:25;;;:27::i;:::-;7057:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7179:12;7193:23;7228:5;7220:19;;7240:4;7220:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7178:67;;;;7278:7;7256:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7382:1;7362:10;:17;:21;7358:188;;;7437:10;7426:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7400:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7358:188;6938:615;;;;:::o;5063:381::-;5221:215;5254:5;5315:27;;;5361:4;5384:2;5405:5;5274:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5221:18;:215::i;:::-;5063:381;;;;:::o;3803:317::-;3863:4;3880:16;3907:19;3929:66;3907:88;;;;4041:7;4029:20;4017:32;;4081:3;4069:15;;:8;:15;;:42;;;;;4100:11;4088:8;:23;;4069:42;4061:51;;;;3803:317;;;:::o
Swarm Source
ipfs://379e7770a11f10b493ad1f1fb955affc57948796363107f6409995db3702f627
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $15.5 | 2,220.7211 | $34,421.18 |
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.