Overview
ETH Balance
4.609665453067712567 ETH
Eth Value
$15,942.60 (@ $3,458.51/ETH)Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,011 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 15536883 | 678 days ago | IN | 0 ETH | 0.00037536 | ||||
Withdraw | 14803553 | 797 days ago | IN | 0 ETH | 0.00100166 | ||||
Payout | 14453168 | 852 days ago | IN | 0 ETH | 0.00227246 | ||||
Withdraw | 14432702 | 855 days ago | IN | 0 ETH | 0.00569296 | ||||
Withdraw | 14352211 | 867 days ago | IN | 0 ETH | 0.00153308 | ||||
Withdraw | 14325871 | 872 days ago | IN | 0 ETH | 0.00243984 | ||||
Withdraw | 14211733 | 889 days ago | IN | 0 ETH | 0.00650624 | ||||
Withdraw | 13676616 | 972 days ago | IN | 0 ETH | 0.01027614 | ||||
Payout | 13568089 | 990 days ago | IN | 0 ETH | 0.0032202 | ||||
Withdraw | 13525017 | 996 days ago | IN | 0 ETH | 0.01433256 | ||||
Withdraw | 13524995 | 996 days ago | IN | 0 ETH | 0.00880878 | ||||
Withdraw | 13396074 | 1017 days ago | IN | 0 ETH | 0.01171002 | ||||
Withdraw | 13396052 | 1017 days ago | IN | 0 ETH | 0.01171002 | ||||
Withdraw | 13357390 | 1023 days ago | IN | 0 ETH | 0.00685076 | ||||
Withdraw | 13346111 | 1024 days ago | IN | 0 ETH | 0.0051779 | ||||
Withdraw | 13345723 | 1024 days ago | IN | 0 ETH | 0.00239352 | ||||
Withdraw | 13344336 | 1025 days ago | IN | 0 ETH | 0.00304142 | ||||
Withdraw | 13342482 | 1025 days ago | IN | 0 ETH | 0.00669144 | ||||
Withdraw | 13342245 | 1025 days ago | IN | 0 ETH | 0.00462944 | ||||
Payout | 13307159 | 1030 days ago | IN | 0 ETH | 0.00404609 | ||||
Withdraw | 13289233 | 1033 days ago | IN | 0 ETH | 0.00578304 | ||||
Withdraw | 13289223 | 1033 days ago | IN | 0 ETH | 0.00644025 | ||||
Withdraw | 13255079 | 1039 days ago | IN | 0 ETH | 0.00335923 | ||||
Withdraw | 13236661 | 1041 days ago | IN | 0 ETH | 0.0040664 | ||||
Withdraw | 13233747 | 1042 days ago | IN | 0 ETH | 0.0054743 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
20245305 | 18 days ago | 0.000012 ETH | ||||
20245305 | 18 days ago | 0.00024 ETH | ||||
20245305 | 18 days ago | 0.00016 ETH | ||||
18489576 | 264 days ago | 0.000002 ETH | ||||
18180471 | 307 days ago | 0.00015999 ETH | ||||
18180471 | 307 days ago | 0.0002 ETH | ||||
16745669 | 509 days ago | 0.00000098 ETH | ||||
16745669 | 509 days ago | 0.0002546 ETH | ||||
16745669 | 509 days ago | 0.00007638 ETH | ||||
16745669 | 509 days ago | 0.00015277 ETH | ||||
16115028 | 597 days ago | 0.14342273 ETH | ||||
15536883 | 678 days ago | 0.00270888 ETH | ||||
15421669 | 696 days ago | 0.00136025 ETH | ||||
15421669 | 696 days ago | 0.00080001 ETH | ||||
15421669 | 696 days ago | 0.0016001 ETH | ||||
15421669 | 696 days ago | 0.0000848 ETH | ||||
15421669 | 696 days ago | 0.00024045 ETH | ||||
15421669 | 696 days ago | 0.000004 ETH | ||||
15421669 | 696 days ago | 0.00079988 ETH | ||||
15421669 | 696 days ago | 0.0008 ETH | ||||
15421669 | 696 days ago | 0.00032 ETH | ||||
15421669 | 696 days ago | 0.000056 ETH | ||||
15421669 | 696 days ago | 0.00010831 ETH | ||||
15421669 | 696 days ago | 0.00001738 ETH | ||||
15421568 | 696 days ago | 0.0000288 ETH |
Loading...
Loading
Contract Name:
UniTradeStaker01
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-27 */ // Dependency file: @openzeppelin/contracts/math/SafeMath.sol // SPDX-License-Identifier: MIT // pragma solidity ^0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // Dependency file: @openzeppelin/contracts/utils/ReentrancyGuard.sol // pragma solidity ^0.6.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor () internal { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } // Dependency file: @uniswap/lib/contracts/libraries/TransferHelper.sol // pragma solidity >=0.6.0; // helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false library TransferHelper { function safeApprove(address token, address to, uint value) internal { // bytes4(keccak256(bytes('approve(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED'); } function safeTransfer(address token, address to, uint value) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED'); } function safeTransferFrom(address token, address from, address to, uint value) internal { // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED'); } function safeTransferETH(address to, uint value) internal { (bool success,) = to.call{value:value}(new bytes(0)); require(success, 'TransferHelper: ETH_TRANSFER_FAILED'); } } // Dependency file: contracts/IUniTradeStaker.sol // pragma solidity ^0.6.6; interface IUniTradeStaker { function deposit() external payable; } // Root file: contracts/UniTradeStaker01.sol pragma solidity ^0.6.6; // import "@openzeppelin/contracts/math/SafeMath.sol"; // import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; // import "@uniswap/lib/contracts/libraries/TransferHelper.sol"; // import "contracts/IUniTradeStaker.sol"; contract UniTradeStaker01 is IUniTradeStaker, ReentrancyGuard { using SafeMath for uint256; address immutable unitrade; uint256 constant DEFAULT_STAKE_PERIOD = 30 days; uint256 public totalStake; uint256 totalWeight; uint256 public totalEthReceived; mapping(address => uint256) public staked; mapping(address => uint256) public timelock; mapping(address => uint256) weighted; mapping(address => uint256) accumulated; event Stake(address indexed staker, uint256 unitradeIn); event Withdraw(address indexed staker, uint256 unitradeOut, uint256 reward); event Deposit(address indexed depositor, uint256 amount); constructor(address _unitrade) public { unitrade = _unitrade; } function stake(uint256 unitradeIn) nonReentrant public { require(unitradeIn > 0, "Nothing to stake"); _stake(unitradeIn); timelock[msg.sender] = block.timestamp.add(DEFAULT_STAKE_PERIOD); TransferHelper.safeTransferFrom( unitrade, msg.sender, address(this), unitradeIn ); } function withdraw() nonReentrant public returns (uint256 unitradeOut, uint256 reward) { require(block.timestamp >= timelock[msg.sender], "Stake is locked"); (unitradeOut, reward) = _applyReward(); emit Withdraw(msg.sender, unitradeOut, reward); timelock[msg.sender] = 0; TransferHelper.safeTransfer(unitrade, msg.sender, unitradeOut); if (reward > 0) { TransferHelper.safeTransferETH(msg.sender, reward); } } function payout() nonReentrant public returns (uint256 reward) { (uint256 unitradeOut, uint256 _reward) = _applyReward(); emit Withdraw(msg.sender, unitradeOut, _reward); reward = _reward; require(reward > 0, "Nothing to pay out"); TransferHelper.safeTransferETH(msg.sender, reward); // restake after withdrawal _stake(unitradeOut); timelock[msg.sender] = block.timestamp.add(DEFAULT_STAKE_PERIOD); } function deposit() nonReentrant public override payable { require(msg.value > 0, "Nothing to deposit"); require(totalStake > 0, "Nothing staked"); totalEthReceived = totalEthReceived.add(msg.value); emit Deposit(msg.sender, msg.value); _distribute(msg.value, totalStake); } function _stake(uint256 unitradeIn) private { uint256 addBack; if (staked[msg.sender] > 0) { (uint256 unitradeOut, uint256 reward) = _applyReward(); addBack = unitradeOut; accumulated[msg.sender] = reward; staked[msg.sender] = unitradeOut; } staked[msg.sender] = staked[msg.sender].add(unitradeIn); weighted[msg.sender] = totalWeight; totalStake = totalStake.add(unitradeIn); if (addBack > 0) { totalStake = totalStake.add(addBack); } emit Stake(msg.sender, unitradeIn); } function _applyReward() private returns (uint256 unitradeOut, uint256 reward) { require(staked[msg.sender] > 0, "Nothing staked"); unitradeOut = staked[msg.sender]; reward = unitradeOut .mul(totalWeight.sub(weighted[msg.sender])) .div(10**18) .add(accumulated[msg.sender]); totalStake = totalStake.sub(unitradeOut); accumulated[msg.sender] = 0; staked[msg.sender] = 0; } function _distribute(uint256 _value, uint256 _totalStake) private { totalWeight = totalWeight.add(_value.mul(10**18).div(_totalStake)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_unitrade","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"depositor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"unitradeIn","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"unitradeOut","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"payout","outputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"unitradeIn","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"staked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"timelock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEthReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"unitradeOut","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a060405234801561001057600080fd5b50604051610f66380380610f668339818101604052602081101561003357600080fd5b505160016000556001600160601b031960609190911b1660805260805160601c610ef761006f6000398061029c52806104e95250610ef76000f3fe60806040526004361061007b5760003560e01c806398807d841161004e57806398807d841461011d578063a694fc3a14610150578063a9a18dda1461017c578063d0e30db0146101915761007b565b80633ccfd60b1461008057806363bd1d4a146100ae5780636b143bb8146100d55780638b0e9f3f14610108575b600080fd5b34801561008c57600080fd5b50610095610199565b6040805192835260208301919091528051918290030190f35b3480156100ba57600080fd5b506100c36102db565b60408051918252519081900360200190f35b3480156100e157600080fd5b506100c3600480360360208110156100f857600080fd5b50356001600160a01b0316610400565b34801561011457600080fd5b506100c3610412565b34801561012957600080fd5b506100c36004803603602081101561014057600080fd5b50356001600160a01b0316610418565b34801561015c57600080fd5b5061017a6004803603602081101561017357600080fd5b503561042a565b005b34801561018857600080fd5b506100c3610518565b61017a61051e565b600080600260005414156101e2576040805162461bcd60e51b815260206004820152601f6024820152600080516020610e3a833981519152604482015290519081900360640190fd5b600260009081553381526005602052604090205442101561023c576040805162461bcd60e51b815260206004820152600f60248201526e14dd185ad9481a5cc81b1bd8dad959608a1b604482015290519081900360640190fd5b610244610651565b6040805183815260208101839052815193955091935033927ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689281900390910190a2336000818152600560205260408120556102c2907f00000000000000000000000000000000000000000000000000000000000000009084610735565b80156102d2576102d2338261089f565b60016000559091565b600060026000541415610323576040805162461bcd60e51b815260206004820152601f6024820152600080516020610e3a833981519152604482015290519081900360640190fd5b6002600090815580610333610651565b6040805183815260208101839052815193955091935033927ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689281900390910190a2809250600083116103c2576040805162461bcd60e51b8152602060048201526012602482015271139bdd1a1a5b99c81d1bc81c185e481bdd5d60721b604482015290519081900360640190fd5b6103cc338461089f565b6103d582610997565b6103e24262278d00610a77565b33600090815260056020526040812091909155600190555090919050565b60056020526000908152604090205481565b60015481565b60046020526000908152604090205481565b60026000541415610470576040805162461bcd60e51b815260206004820152601f6024820152600080516020610e3a833981519152604482015290519081900360640190fd5b6002600055806104ba576040805162461bcd60e51b815260206004820152601060248201526f4e6f7468696e6720746f207374616b6560801b604482015290519081900360640190fd5b6104c381610997565b6104d04262278d00610a77565b33600081815260056020526040902091909155610510907f0000000000000000000000000000000000000000000000000000000000000000903084610ada565b506001600055565b60035481565b60026000541415610564576040805162461bcd60e51b815260206004820152601f6024820152600080516020610e3a833981519152604482015290519081900360640190fd5b6002600055346105b0576040805162461bcd60e51b8152602060048201526012602482015271139bdd1a1a5b99c81d1bc819195c1bdcda5d60721b604482015290519081900360640190fd5b6000600154116105f8576040805162461bcd60e51b815260206004820152600e60248201526d139bdd1a1a5b99c81cdd185ad95960921b604482015290519081900360640190fd5b6003546106059034610a77565b60035560408051348152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a261064a34600154610c37565b6001600055565b3360009081526004602052604081205481906106a5576040805162461bcd60e51b815260206004820152600e60248201526d139bdd1a1a5b99c81cdd185ad95960921b604482015290519081900360640190fd5b3360009081526004602090815260408083205460078352818420546006909352922054600254929450610701926106fb91670de0b6b3a7640000916106f5916106ee9190610c60565b8790610ca2565b90610cfb565b90610a77565b6001549091506107119083610c60565b60015533600090815260076020908152604080832083905560049091528120559091565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106107b25780518252601f199092019160209182019101610793565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610814576040519150601f19603f3d011682016040523d82523d6000602084013e610819565b606091505b5091509150818015610847575080511580610847575080806020019051602081101561084457600080fd5b50515b610898576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106108eb5780518252601f1990920191602091820191016108cc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461094d576040519150601f19603f3d011682016040523d82523d6000602084013e610952565b606091505b50509050806109925760405162461bcd60e51b8152600401808060200182810382526023815260200180610e7b6023913960400191505060405180910390fd5b505050565b33600090815260046020526040812054156109da576000806109b7610651565b336000908152600760209081526040808320939093556004905220819055925050505b336000908152600460205260409020546109f49083610a77565b33600090815260046020908152604080832093909355600254600690915291902055600154610a239083610a77565b6001558015610a3d57600154610a399082610a77565b6001555b60408051838152905133917febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a919081900360200190a25050565b600082820183811015610ad1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b60208310610b5f5780518252601f199092019160209182019101610b40565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610bc1576040519150601f19603f3d011682016040523d82523d6000602084013e610bc6565b606091505b5091509150818015610bf4575080511580610bf45750808060200190516020811015610bf157600080fd5b50515b610c2f5760405162461bcd60e51b8152600401808060200182810382526024815260200180610e9e6024913960400191505060405180910390fd5b505050505050565b610c59610c50826106f585670de0b6b3a7640000610ca2565b60025490610a77565b6002555050565b6000610ad183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d3d565b600082610cb157506000610ad4565b82820282848281610cbe57fe5b0414610ad15760405162461bcd60e51b8152600401808060200182810382526021815260200180610e5a6021913960400191505060405180910390fd5b6000610ad183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610dd4565b60008184841115610dcc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d91578181015183820152602001610d79565b50505050905090810190601f168015610dbe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610e235760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610d91578181015183820152602001610d79565b506000838581610e2f57fe5b049594505050505056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657248656c7065723a204554485f5452414e534645525f4641494c45445472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a2646970667358221220aa246d3f7afa0dbe17b9cd888c6b00170f5ae401273d6d8db77b80439621fb7164736f6c634300060c00330000000000000000000000006f87d756daf0503d08eb8993686c7fc01dc44fb1
Deployed Bytecode
0x60806040526004361061007b5760003560e01c806398807d841161004e57806398807d841461011d578063a694fc3a14610150578063a9a18dda1461017c578063d0e30db0146101915761007b565b80633ccfd60b1461008057806363bd1d4a146100ae5780636b143bb8146100d55780638b0e9f3f14610108575b600080fd5b34801561008c57600080fd5b50610095610199565b6040805192835260208301919091528051918290030190f35b3480156100ba57600080fd5b506100c36102db565b60408051918252519081900360200190f35b3480156100e157600080fd5b506100c3600480360360208110156100f857600080fd5b50356001600160a01b0316610400565b34801561011457600080fd5b506100c3610412565b34801561012957600080fd5b506100c36004803603602081101561014057600080fd5b50356001600160a01b0316610418565b34801561015c57600080fd5b5061017a6004803603602081101561017357600080fd5b503561042a565b005b34801561018857600080fd5b506100c3610518565b61017a61051e565b600080600260005414156101e2576040805162461bcd60e51b815260206004820152601f6024820152600080516020610e3a833981519152604482015290519081900360640190fd5b600260009081553381526005602052604090205442101561023c576040805162461bcd60e51b815260206004820152600f60248201526e14dd185ad9481a5cc81b1bd8dad959608a1b604482015290519081900360640190fd5b610244610651565b6040805183815260208101839052815193955091935033927ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689281900390910190a2336000818152600560205260408120556102c2907f0000000000000000000000006f87d756daf0503d08eb8993686c7fc01dc44fb19084610735565b80156102d2576102d2338261089f565b60016000559091565b600060026000541415610323576040805162461bcd60e51b815260206004820152601f6024820152600080516020610e3a833981519152604482015290519081900360640190fd5b6002600090815580610333610651565b6040805183815260208101839052815193955091935033927ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689281900390910190a2809250600083116103c2576040805162461bcd60e51b8152602060048201526012602482015271139bdd1a1a5b99c81d1bc81c185e481bdd5d60721b604482015290519081900360640190fd5b6103cc338461089f565b6103d582610997565b6103e24262278d00610a77565b33600090815260056020526040812091909155600190555090919050565b60056020526000908152604090205481565b60015481565b60046020526000908152604090205481565b60026000541415610470576040805162461bcd60e51b815260206004820152601f6024820152600080516020610e3a833981519152604482015290519081900360640190fd5b6002600055806104ba576040805162461bcd60e51b815260206004820152601060248201526f4e6f7468696e6720746f207374616b6560801b604482015290519081900360640190fd5b6104c381610997565b6104d04262278d00610a77565b33600081815260056020526040902091909155610510907f0000000000000000000000006f87d756daf0503d08eb8993686c7fc01dc44fb1903084610ada565b506001600055565b60035481565b60026000541415610564576040805162461bcd60e51b815260206004820152601f6024820152600080516020610e3a833981519152604482015290519081900360640190fd5b6002600055346105b0576040805162461bcd60e51b8152602060048201526012602482015271139bdd1a1a5b99c81d1bc819195c1bdcda5d60721b604482015290519081900360640190fd5b6000600154116105f8576040805162461bcd60e51b815260206004820152600e60248201526d139bdd1a1a5b99c81cdd185ad95960921b604482015290519081900360640190fd5b6003546106059034610a77565b60035560408051348152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a261064a34600154610c37565b6001600055565b3360009081526004602052604081205481906106a5576040805162461bcd60e51b815260206004820152600e60248201526d139bdd1a1a5b99c81cdd185ad95960921b604482015290519081900360640190fd5b3360009081526004602090815260408083205460078352818420546006909352922054600254929450610701926106fb91670de0b6b3a7640000916106f5916106ee9190610c60565b8790610ca2565b90610cfb565b90610a77565b6001549091506107119083610c60565b60015533600090815260076020908152604080832083905560049091528120559091565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106107b25780518252601f199092019160209182019101610793565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610814576040519150601f19603f3d011682016040523d82523d6000602084013e610819565b606091505b5091509150818015610847575080511580610847575080806020019051602081101561084457600080fd5b50515b610898576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106108eb5780518252601f1990920191602091820191016108cc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461094d576040519150601f19603f3d011682016040523d82523d6000602084013e610952565b606091505b50509050806109925760405162461bcd60e51b8152600401808060200182810382526023815260200180610e7b6023913960400191505060405180910390fd5b505050565b33600090815260046020526040812054156109da576000806109b7610651565b336000908152600760209081526040808320939093556004905220819055925050505b336000908152600460205260409020546109f49083610a77565b33600090815260046020908152604080832093909355600254600690915291902055600154610a239083610a77565b6001558015610a3d57600154610a399082610a77565b6001555b60408051838152905133917febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a919081900360200190a25050565b600082820183811015610ad1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b60208310610b5f5780518252601f199092019160209182019101610b40565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610bc1576040519150601f19603f3d011682016040523d82523d6000602084013e610bc6565b606091505b5091509150818015610bf4575080511580610bf45750808060200190516020811015610bf157600080fd5b50515b610c2f5760405162461bcd60e51b8152600401808060200182810382526024815260200180610e9e6024913960400191505060405180910390fd5b505050505050565b610c59610c50826106f585670de0b6b3a7640000610ca2565b60025490610a77565b6002555050565b6000610ad183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d3d565b600082610cb157506000610ad4565b82820282848281610cbe57fe5b0414610ad15760405162461bcd60e51b8152600401808060200182810382526021815260200180610e5a6021913960400191505060405180910390fd5b6000610ad183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610dd4565b60008184841115610dcc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d91578181015183820152602001610d79565b50505050905090810190601f168015610dbe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610e235760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610d91578181015183820152602001610d79565b506000838581610e2f57fe5b049594505050505056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657248656c7065723a204554485f5452414e534645525f4641494c45445472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a2646970667358221220aa246d3f7afa0dbe17b9cd888c6b00170f5ae401273d6d8db77b80439621fb7164736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006f87d756daf0503d08eb8993686c7fc01dc44fb1
-----Decoded View---------------
Arg [0] : _unitrade (address): 0x6F87D756DAf0503d08Eb8993686c7Fc01Dc44fB1
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006f87d756daf0503d08eb8993686c7fc01dc44fb1
Deployed Bytecode Sourcemap
10200:3757:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11359:495;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11862:481;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10537:43;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10537:43:0;-1:-1:-1;;;;;10537:43:0;;:::i;10393:25::-;;;;;;;;;;;;;:::i;10489:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10489:41:0;-1:-1:-1;;;;;10489:41:0;;:::i;10972:379::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10972:379:0;;:::i;:::-;;10451:31;;;;;;;;;;;;;:::i;12351:329::-;;;:::i;11359:495::-;11408:19;11429:14;7177:1;7783:7;;:19;;7775:63;;;;;-1:-1:-1;;;7775:63:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7775:63:0;;;;;;;;;;;;;;;7177:1;7916:7;:18;;;11492:10:::1;11483:20:::0;;:8:::1;:20;::::0;;;;;11464:15:::1;:39;;11456:67;;;::::0;;-1:-1:-1;;;11456:67:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;11456:67:0;;;;;;;;;;;;;::::1;;11560:14;:12;:14::i;:::-;11590:41;::::0;;;;;::::1;::::0;::::1;::::0;;;;;11536:38;;-1:-1:-1;11536:38:0;;-1:-1:-1;11599:10:0::1;::::0;11590:41:::1;::::0;;;;;;;;::::1;11653:10;11667:1;11644:20:::0;;;:8:::1;:20;::::0;;;;:24;11681:62:::1;::::0;11709:8:::1;::::0;11731:11;11681:27:::1;:62::i;:::-;11758:10:::0;;11754:93:::1;;11785:50;11816:10;11828:6;11785:30;:50::i;:::-;7133:1:::0;8095:7;:22;11359:495;;:::o;11862:481::-;11909:14;7177:1;7783:7;;:19;;7775:63;;;;;-1:-1:-1;;;7775:63:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7775:63:0;;;;;;;;;;;;;;;7177:1;7916:7;:18;;;:7;11977:14:::1;:12;:14::i;:::-;12007:42;::::0;;;;;::::1;::::0;::::1;::::0;;;;;11936:55;;-1:-1:-1;11936:55:0;;-1:-1:-1;12016:10:0::1;::::0;12007:42:::1;::::0;;;;;;;;::::1;12069:7;12060:16;;12106:1;12097:6;:10;12089:41;;;::::0;;-1:-1:-1;;;12089:41:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;12089:41:0;;;;;;;;;;;;;::::1;;12141:50;12172:10;12184:6;12141:30;:50::i;:::-;12241:19;12248:11;12241:6;:19::i;:::-;12294:41;:15;10379:7;12294:19;:41::i;:::-;12280:10;12271:20;::::0;;;:8:::1;:20;::::0;;;;:64;;;;7133:1;8095:22;;-1:-1:-1;11862:481:0;;;-1:-1:-1;11862:481:0:o;10537:43::-;;;;;;;;;;;;;:::o;10393:25::-;;;;:::o;10489:41::-;;;;;;;;;;;;;:::o;10972:379::-;7177:1;7783:7;;:19;;7775:63;;;;;-1:-1:-1;;;7775:63:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7775:63:0;;;;;;;;;;;;;;;7177:1;7916:7;:18;11046:14;11038:43:::1;;;::::0;;-1:-1:-1;;;11038:43:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;11038:43:0;;;;;;;;;;;;;::::1;;11094:18;11101:10;11094:6;:18::i;:::-;11146:41;:15;10379:7;11146:19;:41::i;:::-;11132:10;11123:20;::::0;;;:8:::1;:20;::::0;;;;:64;;;;11200:143:::1;::::0;11246:8:::1;::::0;11302:4:::1;11322:10:::0;11200:31:::1;:143::i;:::-;-1:-1:-1::0;7133:1:0;8095:7;:22;10972:379::o;10451:31::-;;;;:::o;12351:329::-;7177:1;7783:7;;:19;;7775:63;;;;;-1:-1:-1;;;7775:63:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7775:63:0;;;;;;;;;;;;;;;7177:1;7916:7;:18;12426:9:::1;12418:44;;;::::0;;-1:-1:-1;;;12418:44:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;12418:44:0;;;;;;;;;;;;;::::1;;12494:1;12481:10;;:14;12473:41;;;::::0;;-1:-1:-1;;;12473:41:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;12473:41:0;;;;;;;;;;;;;::::1;;12546:16;::::0;:31:::1;::::0;12567:9:::1;12546:20;:31::i;:::-;12527:16;:50:::0;12595:30:::1;::::0;;12615:9:::1;12595:30:::0;;;;12603:10:::1;::::0;12595:30:::1;::::0;;;;;::::1;::::0;;::::1;12638:34;12650:9;12661:10;;12638:11;:34::i;:::-;7133:1:::0;8095:7;:22;12351:329::o;13325:470::-;13429:10;13366:19;13422:18;;;:6;:18;;;;;;13366:19;;13414:49;;;;;-1:-1:-1;;;13414:49:0;;;;;;;;;;;;-1:-1:-1;;;13414:49:0;;;;;;;;;;;;;;;13497:10;13490:18;;;;:6;:18;;;;;;;;;13641:11;:23;;;;;;13574:8;:20;;;;;;13558:11;;13490:18;;-1:-1:-1;13528:137:0;;:94;;13615:6;;13528:68;;13558:37;;:11;:15;:37::i;:::-;13528:11;;:29;:68::i;:::-;:86;;:94::i;:::-;:112;;:137::i;:::-;13689:10;;13519:146;;-1:-1:-1;13689:27:0;;13704:11;13689:14;:27::i;:::-;13676:10;:40;13739:10;13753:1;13727:23;;;:11;:23;;;;;;;;:27;;;13765:6;:18;;;;;:22;13325:470;;:::o;8748:361::-;8943:45;;;-1:-1:-1;;;;;8943:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8943:45:0;-1:-1:-1;;;8943:45:0;;;8932:57;;;;8897:12;;8911:17;;8932:10;;;;8943:45;8932:57;;;8943:45;8932:57;;8943:45;8932:57;;;;;;;;;;-1:-1:-1;;8932:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8896:93;;;;9008:7;:57;;;;-1:-1:-1;9020:11:0;;:16;;:44;;;9051:4;9040:24;;;;;;;;;;;;;;;-1:-1:-1;9040:24:0;9020:44;9000:101;;;;;-1:-1:-1;;;9000:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8748:361;;;;;:::o;9527:195::-;9635:12;;;9597;9635;;;;;;;;;-1:-1:-1;;;;;9614:7:0;;;9628:5;;9614:34;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9614:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9596:52;;;9667:7;9659:55;;;;-1:-1:-1;;;9659:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9527:195;;;:::o;12688:629::-;12780:10;12743:15;12773:18;;;:6;:18;;;;;;:22;12769:239;;12813:19;12834:14;12852;:12;:14::i;:::-;12929:10;12917:23;;;;:11;:23;;;;;;;;:32;;;;12964:6;:18;;;:32;;;12812:54;-1:-1:-1;;;12769:239:0;13048:10;13041:18;;;;:6;:18;;;;;;:34;;13064:10;13041:22;:34::i;:::-;13027:10;13020:18;;;;:6;:18;;;;;;;;:55;;;;13109:11;;13086:8;:20;;;;;;:34;13144:10;;:26;;13159:10;13144:14;:26::i;:::-;13131:10;:39;13187:11;;13183:80;;13228:10;;:23;;13243:7;13228:14;:23::i;:::-;13215:10;:36;13183:80;13280:29;;;;;;;;13286:10;;13280:29;;;;;;;;;;12688:629;;:::o;970:181::-;1028:7;1060:5;;;1084:6;;;;1076:46;;;;;-1:-1:-1;;;1076:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1142:1;-1:-1:-1;970:181:0;;;;;:::o;9117:402::-;9342:51;;;-1:-1:-1;;;;;9342:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9342:51:0;-1:-1:-1;;;9342:51:0;;;9331:63;;;;9296:12;;9310:17;;9331:10;;;;9342:51;9331:63;;;9342:51;9331:63;;9342:51;9331:63;;;;;;;;;;-1:-1:-1;;9331:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9295:99;;;;9413:7;:57;;;;-1:-1:-1;9425:11:0;;:16;;:44;;;9456:4;9445:24;;;;;;;;;;;;;;;-1:-1:-1;9445:24:0;9425:44;9405:106;;;;-1:-1:-1;;;9405:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9117:402;;;;;;:::o;13803:151::-;13894:52;13910:35;13933:11;13910:18;:6;13921;13910:10;:18::i;:35::-;13894:11;;;:15;:52::i;:::-;13880:11;:66;-1:-1:-1;;13803:151:0:o;1434:136::-;1492:7;1519:43;1523:1;1526;1519:43;;;;;;;;;;;;;;;;;:3;:43::i;2324:471::-;2382:7;2627:6;2623:47;;-1:-1:-1;2657:1:0;2650:8;;2623:47;2694:5;;;2698:1;2694;:5;:1;2718:5;;;;;:10;2710:56;;;;-1:-1:-1;;;2710:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3271:132;3329:7;3356:39;3360:1;3363;3356:39;;;;;;;;;;;;;;;;;:3;:39::i;1873:192::-;1959:7;1995:12;1987:6;;;;1979:29;;;;-1:-1:-1;;;1979:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2031:5:0;;;1873:192::o;3899:278::-;3985:7;4020:12;4013:5;4005:28;;;;-1:-1:-1;;;4005:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4044:9;4060:1;4056;:5;;;;;;;3899:278;-1:-1:-1;;;;;3899:278:0:o
Swarm Source
ipfs://aa246d3f7afa0dbe17b9cd888c6b00170f5ae401273d6d8db77b80439621fb71
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.