Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 10,635 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unlock | 21173641 | 3 days ago | IN | 0 ETH | 0.00343979 | ||||
Unlock | 21153426 | 6 days ago | IN | 0 ETH | 0.0012823 | ||||
Unlock | 21148499 | 7 days ago | IN | 0 ETH | 0.00105902 | ||||
Unlock | 21145249 | 7 days ago | IN | 0 ETH | 0.00128842 | ||||
Unlock | 21137554 | 8 days ago | IN | 0 ETH | 0.0021629 | ||||
Unlock | 21072079 | 17 days ago | IN | 0 ETH | 0.00110103 | ||||
Unlock | 21037135 | 22 days ago | IN | 0 ETH | 0.00113713 | ||||
Unlock | 20825728 | 52 days ago | IN | 0 ETH | 0.0011624 | ||||
Unlock | 20720273 | 66 days ago | IN | 0 ETH | 0.00079141 | ||||
Unlock | 20555811 | 89 days ago | IN | 0 ETH | 0.00014226 | ||||
Unlock | 20555809 | 89 days ago | IN | 0 ETH | 0.00014299 | ||||
Unlock | 20362280 | 116 days ago | IN | 0 ETH | 0.00099779 | ||||
Unlock | 20284514 | 127 days ago | IN | 0 ETH | 0.00143113 | ||||
Unlock | 20278316 | 128 days ago | IN | 0 ETH | 0.00062806 | ||||
Unlock | 20022635 | 164 days ago | IN | 0 ETH | 0.0008063 | ||||
Unlock | 19852358 | 188 days ago | IN | 0 ETH | 0.00040017 | ||||
Unlock | 19811259 | 193 days ago | IN | 0 ETH | 0.00069602 | ||||
Unlock | 19748141 | 202 days ago | IN | 0 ETH | 0.00046362 | ||||
Unlock | 19711065 | 207 days ago | IN | 0 ETH | 0.00099138 | ||||
Unlock | 19697900 | 209 days ago | IN | 0 ETH | 0.00092463 | ||||
Unlock | 19690555 | 210 days ago | IN | 0 ETH | 0.00149426 | ||||
Unlock | 19670188 | 213 days ago | IN | 0 ETH | 0.00074697 | ||||
Unlock | 19605073 | 222 days ago | IN | 0 ETH | 0.00184871 | ||||
Unlock | 19604269 | 222 days ago | IN | 0 ETH | 0.00200065 | ||||
Unlock | 19582605 | 225 days ago | IN | 0 ETH | 0.00210544 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
LockLeash
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT pragma solidity ^0.8.13; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "./interfaces/ILockLeash.sol"; import "./interfaces/ILandAuction.sol"; contract LockLeash is ILockLeash, Ownable { uint256 public immutable AMOUNT_MIN; uint256 public immutable AMOUNT_MAX; uint256 public immutable DAYS_MIN; uint256 public immutable DAYS_MAX; IERC20 public immutable LEASH; IERC20 public immutable BONE; ILandAuction public landAuction; bool public isLockEnabled; uint256 public totalWeight; uint256 public totalBoneRewards; struct Lock { uint256 amount; uint256 startTime; uint256 numDays; address ogUser; } mapping(address => Lock) private _lockOf; constructor( address _leash, address _bone, uint256 amountMin, uint256 amountMax, uint256 daysMin, uint256 daysMax ) { LEASH = IERC20(_leash); BONE = IERC20(_bone); AMOUNT_MIN = amountMin; AMOUNT_MAX = amountMax; DAYS_MIN = daysMin; DAYS_MAX = daysMax; } function lockInfoOf(address user) public view returns ( uint256 amount, uint256 startTime, uint256 numDays, address ogUser ) { return ( _lockOf[user].amount, _lockOf[user].startTime, _lockOf[user].numDays, _lockOf[user].ogUser ); } function weightOf(address user) public view returns (uint256) { return _lockOf[user].amount * _lockOf[user].numDays; } function extraLeashNeeded(address user, uint256 targetWeight) external view returns (uint256) { uint256 currentWeight = weightOf(user); if (currentWeight >= targetWeight) { return 0; } return (targetWeight - currentWeight) / _lockOf[user].numDays; } function extraDaysNeeded(address user, uint256 targetWeight) external view returns (uint256) { uint256 currentWeight = weightOf(user); if (currentWeight >= targetWeight) { return 0; } return (targetWeight - currentWeight) / _lockOf[user].amount; } function isWinner(address user) public view returns (bool) { return landAuction.winningsBidsOf(user) > 0; } function unlockAt(address user) public view returns (uint256) { Lock memory s = _lockOf[user]; if (isWinner(user)) { return s.startTime + s.numDays * 1 days; } return s.startTime + 15 days + (s.numDays * 1 days) / 3; } function setLandAuction(address sale) external onlyOwner { landAuction = ILandAuction(sale); } function addBoneRewards(uint256 rewardAmount) external onlyOwner { totalBoneRewards += rewardAmount; BONE.transferFrom(msg.sender, address(this), rewardAmount); } function toggleLockEnabled() external onlyOwner { isLockEnabled = !isLockEnabled; } function lock(uint256 amount, uint256 numDaysToAdd) external { require(isLockEnabled, "Locking not enabled"); Lock storage s = _lockOf[msg.sender]; uint256 oldWeight = s.amount * s.numDays; s.amount += amount; require( AMOUNT_MIN <= s.amount && s.amount <= AMOUNT_MAX, "LEASH amount outside of limits" ); if (s.numDays == 0) { // no existing lock s.startTime = block.timestamp; s.ogUser = msg.sender; } if (numDaysToAdd > 0) { s.numDays += numDaysToAdd; } uint256 numDays = s.numDays; require( DAYS_MIN <= numDays && numDays <= DAYS_MAX, "Days outside of limits" ); totalWeight += s.amount * s.numDays - oldWeight; LEASH.transferFrom(msg.sender, address(this), amount); } function unlock() external { Lock storage s = _lockOf[msg.sender]; uint256 amount = s.amount; uint256 numDays = s.numDays; require(amount > 0, "No LEASH locked"); require(unlockAt(msg.sender) <= block.timestamp, "Not unlocked yet"); delete _lockOf[msg.sender]; LEASH.transfer(msg.sender, amount); BONE.transfer( msg.sender, (totalBoneRewards * amount * numDays) / totalWeight ); } function transferLock(address newOwner) external { require(_lockOf[msg.sender].numDays != 0, "Lock does not exist"); require(_lockOf[newOwner].numDays == 0, "New owner already has a lock"); _lockOf[newOwner] = _lockOf[msg.sender]; delete _lockOf[msg.sender]; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.13; interface ILockLeash { function lockInfoOf(address user) external view returns ( uint256 amount, uint256 startTime, uint256 numDays, address ogUser ); function weightOf(address user) external view returns (uint256); function extraLeashNeeded(address user, uint256 targetWeight) external view returns (uint256); function extraDaysNeeded(address user, uint256 targetWeight) external view returns (uint256); function isWinner(address user) external view returns (bool); function unlockAt(address user) external view returns (uint256); }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.13; interface ILandAuction { function winningsBidsOf(address user) external view returns (uint256); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_leash","type":"address"},{"internalType":"address","name":"_bone","type":"address"},{"internalType":"uint256","name":"amountMin","type":"uint256"},{"internalType":"uint256","name":"amountMax","type":"uint256"},{"internalType":"uint256","name":"daysMin","type":"uint256"},{"internalType":"uint256","name":"daysMax","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"AMOUNT_MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AMOUNT_MIN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BONE","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DAYS_MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DAYS_MIN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LEASH","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rewardAmount","type":"uint256"}],"name":"addBoneRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"targetWeight","type":"uint256"}],"name":"extraDaysNeeded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"targetWeight","type":"uint256"}],"name":"extraLeashNeeded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLockEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isWinner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"landAuction","outputs":[{"internalType":"contract ILandAuction","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"numDaysToAdd","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"lockInfoOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"numDays","type":"uint256"},{"internalType":"address","name":"ogUser","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sale","type":"address"}],"name":"setLandAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleLockEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalBoneRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"unlockAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"weightOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
61014060405234801561001157600080fd5b5060405161127e38038061127e833981016040819052610030916100d3565b61003933610067565b6001600160a01b0395861661010052939094166101205260809190915260a05260c09190915260e05261012b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100ce57600080fd5b919050565b60008060008060008060c087890312156100ec57600080fd5b6100f5876100b7565b9550610103602088016100b7565b945060408701519350606087015192506080870151915060a087015190509295509295509295565b60805160a05160c05160e05161010051610120516110cc6101b2600039600081816103590152818161076d0152610c990152600081816103320152818161068d0152610c2901526000818161038001526105d101526000818161040601526105a60152600081816101fa01526104ea0152600081816101c001526104be01526110cc6000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80639d9ca28d116100de578063c962e2d111610097578063dd4bc10111610071578063dd4bc101146103c8578063e7bb8d31146103db578063f2fde38b146103ee578063fbc086891461040157600080fd5b8063c962e2d11461037b578063cb454a81146103a2578063d44106f6146103b557600080fd5b80639d9ca28d14610281578063a006dfe1146102a4578063a347511a14610311578063a69df4b514610325578063ad39e5fd1461032d578063c36596a61461035457600080fd5b8063715018a611610130578063715018a61461021c57806389b7e586146102245780638da5cb5b146102375780638ea6ec591461025c57806396c82e571461026557806399cdee631461026e57600080fd5b80631338736f1461017857806313954d3a1461018d57806327006d76146101a05780634020c15f146101b35780634b8b66fa146101bb5780635a5173b3146101f5575b600080fd5b61018b610186366004610f04565b610428565b005b61018b61019b366004610f26565b61070a565b61018b6101ae366004610f5b565b6107e6565b61018b61091d565b6101e27f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101e27f000000000000000000000000000000000000000000000000000000000000000081565b61018b610968565b6101e2610232366004610f5b565b61099e565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101ec565b6101e260035481565b6101e260025481565b6101e261027c366004610f76565b610a5c565b61029461028f366004610f5b565b610ab5565b60405190151581526020016101ec565b6102e86102b2366004610f5b565b6001600160a01b039081166000908152600460205260409020805460018201546002830154600390930154919490939190911690565b604080519485526020850193909352918301526001600160a01b031660608201526080016101ec565b60015461029490600160a01b900460ff1681565b61018b610b2e565b6102447f000000000000000000000000000000000000000000000000000000000000000081565b6102447f000000000000000000000000000000000000000000000000000000000000000081565b6101e27f000000000000000000000000000000000000000000000000000000000000000081565b61018b6103b0366004610f5b565b610d62565b600154610244906001600160a01b031681565b6101e26103d6366004610f5b565b610dae565b6101e26103e9366004610f76565b610dd7565b61018b6103fc366004610f5b565b610e19565b6101e27f000000000000000000000000000000000000000000000000000000000000000081565b600154600160a01b900460ff1661047c5760405162461bcd60e51b8152602060048201526013602482015272131bd8dada5b99c81b9bdd08195b98589b1959606a1b60448201526064015b60405180910390fd5b3360009081526004602052604081206002810154815491929161049f9190610fb6565b9050838260000160008282546104b59190610fd5565b909155505081547f00000000000000000000000000000000000000000000000000000000000000001180159061050c575081547f000000000000000000000000000000000000000000000000000000000000000010155b6105585760405162461bcd60e51b815260206004820152601e60248201527f4c4541534820616d6f756e74206f757473696465206f66206c696d69747300006044820152606401610473565b816002015460000361057f574260018301556003820180546001600160a01b031916331790555b821561059f57828260020160008282546105999190610fd5565b90915550505b60028201547f000000000000000000000000000000000000000000000000000000000000000081108015906105f457507f00000000000000000000000000000000000000000000000000000000000000008111155b6106395760405162461bcd60e51b815260206004820152601660248201527544617973206f757473696465206f66206c696d69747360501b6044820152606401610473565b60028301548354839161064b91610fb6565b6106559190610fed565b600260008282546106669190610fd5565b90915550506040516323b872dd60e01b8152336004820152306024820152604481018690527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af11580156106de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107029190611004565b505050505050565b6000546001600160a01b031633146107345760405162461bcd60e51b815260040161047390611026565b80600360008282546107469190610fd5565b90915550506040516323b872dd60e01b8152336004820152306024820152604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af11580156107be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e29190611004565b5050565b33600090815260046020526040812060020154900361083d5760405162461bcd60e51b8152602060048201526013602482015272131bd8dac8191bd95cc81b9bdd08195e1a5cdd606a1b6044820152606401610473565b6001600160a01b038116600090815260046020526040902060020154156108a65760405162461bcd60e51b815260206004820152601c60248201527f4e6577206f776e657220616c7265616479206861732061206c6f636b000000006044820152606401610473565b336000818152600460205260408082206001600160a01b039485168352908220815481556001808301805491830191909155600280840180549184019190915560038085018054919094018054919098166001600160a01b0319918216179097559484529183905590829055915580549091169055565b6000546001600160a01b031633146109475760405162461bcd60e51b815260040161047390611026565b6001805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000546001600160a01b031633146109925760405162461bcd60e51b815260040161047390611026565b61099c6000610eb4565b565b6001600160a01b038082166000908152600460209081526040808320815160808101835281548152600182015493810193909352600281015491830191909152600301549092166060830152906109f483610ab5565b15610a21576040810151610a0b9062015180610fb6565b8160200151610a1a9190610fd5565b9392505050565b6003816040015162015180610a369190610fb6565b610a40919061105b565b6020820151610a52906213c680610fd5565b610a1a9190610fd5565b600080610a6884610dae565b9050828110610a7b576000915050610aaf565b6001600160a01b038416600090815260046020526040902060020154610aa18285610fed565b610aab919061105b565b9150505b92915050565b60015460405163031a0e2f60e21b81526001600160a01b0383811660048301526000928392911690630c6838bc90602401602060405180830381865afa158015610b03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b27919061107d565b1192915050565b3360009081526004602052604090208054600282015481610b835760405162461bcd60e51b815260206004820152600f60248201526e139bc813115054d2081b1bd8dad959608a1b6044820152606401610473565b42610b8d3361099e565b1115610bce5760405162461bcd60e51b815260206004820152601060248201526f139bdd081d5b9b1bd8dad959081e595d60821b6044820152606401610473565b336000818152600460208190526040808320838155600181018490556002810193909355600390920180546001600160a01b0319169055905163a9059cbb60e01b815290810191909152602481018390526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015610c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c969190611004565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb336002548486600354610cd99190610fb6565b610ce39190610fb6565b610ced919061105b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c9190611004565b50505050565b6000546001600160a01b03163314610d8c5760405162461bcd60e51b815260040161047390611026565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260046020526040812060028101549054610aaf9190610fb6565b600080610de384610dae565b9050828110610df6576000915050610aaf565b6001600160a01b038416600090815260046020526040902054610aa18285610fed565b6000546001600160a01b03163314610e435760405162461bcd60e51b815260040161047390611026565b6001600160a01b038116610ea85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610473565b610eb181610eb4565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060408385031215610f1757600080fd5b50508035926020909101359150565b600060208284031215610f3857600080fd5b5035919050565b80356001600160a01b0381168114610f5657600080fd5b919050565b600060208284031215610f6d57600080fd5b610a1a82610f3f565b60008060408385031215610f8957600080fd5b610f9283610f3f565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610fd057610fd0610fa0565b500290565b60008219821115610fe857610fe8610fa0565b500190565b600082821015610fff57610fff610fa0565b500390565b60006020828403121561101657600080fd5b81518015158114610a1a57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261107857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561108f57600080fd5b505191905056fea2646970667358221220961d8f355ae122ef0ec15617a9a6edf85df102c792955875d249aaa43c28713564736f6c634300080d003300000000000000000000000027c70cd1946795b66be9d954418546998b5466340000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d900000000000000000000000000000000000000000000000002c68af0bb1400000000000000000000000000000000000000000000000000004563918244f40000000000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000005a
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c80639d9ca28d116100de578063c962e2d111610097578063dd4bc10111610071578063dd4bc101146103c8578063e7bb8d31146103db578063f2fde38b146103ee578063fbc086891461040157600080fd5b8063c962e2d11461037b578063cb454a81146103a2578063d44106f6146103b557600080fd5b80639d9ca28d14610281578063a006dfe1146102a4578063a347511a14610311578063a69df4b514610325578063ad39e5fd1461032d578063c36596a61461035457600080fd5b8063715018a611610130578063715018a61461021c57806389b7e586146102245780638da5cb5b146102375780638ea6ec591461025c57806396c82e571461026557806399cdee631461026e57600080fd5b80631338736f1461017857806313954d3a1461018d57806327006d76146101a05780634020c15f146101b35780634b8b66fa146101bb5780635a5173b3146101f5575b600080fd5b61018b610186366004610f04565b610428565b005b61018b61019b366004610f26565b61070a565b61018b6101ae366004610f5b565b6107e6565b61018b61091d565b6101e27f00000000000000000000000000000000000000000000000002c68af0bb14000081565b6040519081526020015b60405180910390f35b6101e27f0000000000000000000000000000000000000000000000004563918244f4000081565b61018b610968565b6101e2610232366004610f5b565b61099e565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101ec565b6101e260035481565b6101e260025481565b6101e261027c366004610f76565b610a5c565b61029461028f366004610f5b565b610ab5565b60405190151581526020016101ec565b6102e86102b2366004610f5b565b6001600160a01b039081166000908152600460205260409020805460018201546002830154600390930154919490939190911690565b604080519485526020850193909352918301526001600160a01b031660608201526080016101ec565b60015461029490600160a01b900460ff1681565b61018b610b2e565b6102447f00000000000000000000000027c70cd1946795b66be9d954418546998b54663481565b6102447f0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d981565b6101e27f000000000000000000000000000000000000000000000000000000000000005a81565b61018b6103b0366004610f5b565b610d62565b600154610244906001600160a01b031681565b6101e26103d6366004610f5b565b610dae565b6101e26103e9366004610f76565b610dd7565b61018b6103fc366004610f5b565b610e19565b6101e27f000000000000000000000000000000000000000000000000000000000000002d81565b600154600160a01b900460ff1661047c5760405162461bcd60e51b8152602060048201526013602482015272131bd8dada5b99c81b9bdd08195b98589b1959606a1b60448201526064015b60405180910390fd5b3360009081526004602052604081206002810154815491929161049f9190610fb6565b9050838260000160008282546104b59190610fd5565b909155505081547f00000000000000000000000000000000000000000000000002c68af0bb1400001180159061050c575081547f0000000000000000000000000000000000000000000000004563918244f4000010155b6105585760405162461bcd60e51b815260206004820152601e60248201527f4c4541534820616d6f756e74206f757473696465206f66206c696d69747300006044820152606401610473565b816002015460000361057f574260018301556003820180546001600160a01b031916331790555b821561059f57828260020160008282546105999190610fd5565b90915550505b60028201547f000000000000000000000000000000000000000000000000000000000000002d81108015906105f457507f000000000000000000000000000000000000000000000000000000000000005a8111155b6106395760405162461bcd60e51b815260206004820152601660248201527544617973206f757473696465206f66206c696d69747360501b6044820152606401610473565b60028301548354839161064b91610fb6565b6106559190610fed565b600260008282546106669190610fd5565b90915550506040516323b872dd60e01b8152336004820152306024820152604481018690527f00000000000000000000000027c70cd1946795b66be9d954418546998b5466346001600160a01b0316906323b872dd906064016020604051808303816000875af11580156106de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107029190611004565b505050505050565b6000546001600160a01b031633146107345760405162461bcd60e51b815260040161047390611026565b80600360008282546107469190610fd5565b90915550506040516323b872dd60e01b8152336004820152306024820152604481018290527f0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d96001600160a01b0316906323b872dd906064016020604051808303816000875af11580156107be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e29190611004565b5050565b33600090815260046020526040812060020154900361083d5760405162461bcd60e51b8152602060048201526013602482015272131bd8dac8191bd95cc81b9bdd08195e1a5cdd606a1b6044820152606401610473565b6001600160a01b038116600090815260046020526040902060020154156108a65760405162461bcd60e51b815260206004820152601c60248201527f4e6577206f776e657220616c7265616479206861732061206c6f636b000000006044820152606401610473565b336000818152600460205260408082206001600160a01b039485168352908220815481556001808301805491830191909155600280840180549184019190915560038085018054919094018054919098166001600160a01b0319918216179097559484529183905590829055915580549091169055565b6000546001600160a01b031633146109475760405162461bcd60e51b815260040161047390611026565b6001805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000546001600160a01b031633146109925760405162461bcd60e51b815260040161047390611026565b61099c6000610eb4565b565b6001600160a01b038082166000908152600460209081526040808320815160808101835281548152600182015493810193909352600281015491830191909152600301549092166060830152906109f483610ab5565b15610a21576040810151610a0b9062015180610fb6565b8160200151610a1a9190610fd5565b9392505050565b6003816040015162015180610a369190610fb6565b610a40919061105b565b6020820151610a52906213c680610fd5565b610a1a9190610fd5565b600080610a6884610dae565b9050828110610a7b576000915050610aaf565b6001600160a01b038416600090815260046020526040902060020154610aa18285610fed565b610aab919061105b565b9150505b92915050565b60015460405163031a0e2f60e21b81526001600160a01b0383811660048301526000928392911690630c6838bc90602401602060405180830381865afa158015610b03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b27919061107d565b1192915050565b3360009081526004602052604090208054600282015481610b835760405162461bcd60e51b815260206004820152600f60248201526e139bc813115054d2081b1bd8dad959608a1b6044820152606401610473565b42610b8d3361099e565b1115610bce5760405162461bcd60e51b815260206004820152601060248201526f139bdd081d5b9b1bd8dad959081e595d60821b6044820152606401610473565b336000818152600460208190526040808320838155600181018490556002810193909355600390920180546001600160a01b0319169055905163a9059cbb60e01b815290810191909152602481018390526001600160a01b037f00000000000000000000000027c70cd1946795b66be9d954418546998b546634169063a9059cbb906044016020604051808303816000875af1158015610c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c969190611004565b507f0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d96001600160a01b031663a9059cbb336002548486600354610cd99190610fb6565b610ce39190610fb6565b610ced919061105b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c9190611004565b50505050565b6000546001600160a01b03163314610d8c5760405162461bcd60e51b815260040161047390611026565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260046020526040812060028101549054610aaf9190610fb6565b600080610de384610dae565b9050828110610df6576000915050610aaf565b6001600160a01b038416600090815260046020526040902054610aa18285610fed565b6000546001600160a01b03163314610e435760405162461bcd60e51b815260040161047390611026565b6001600160a01b038116610ea85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610473565b610eb181610eb4565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060408385031215610f1757600080fd5b50508035926020909101359150565b600060208284031215610f3857600080fd5b5035919050565b80356001600160a01b0381168114610f5657600080fd5b919050565b600060208284031215610f6d57600080fd5b610a1a82610f3f565b60008060408385031215610f8957600080fd5b610f9283610f3f565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610fd057610fd0610fa0565b500290565b60008219821115610fe857610fe8610fa0565b500190565b600082821015610fff57610fff610fa0565b500390565b60006020828403121561101657600080fd5b81518015158114610a1a57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261107857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561108f57600080fd5b505191905056fea2646970667358221220961d8f355ae122ef0ec15617a9a6edf85df102c792955875d249aaa43c28713564736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000027c70cd1946795b66be9d954418546998b5466340000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d900000000000000000000000000000000000000000000000002c68af0bb1400000000000000000000000000000000000000000000000000004563918244f40000000000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000005a
-----Decoded View---------------
Arg [0] : _leash (address): 0x27C70Cd1946795B66be9d954418546998b546634
Arg [1] : _bone (address): 0x9813037ee2218799597d83D4a5B6F3b6778218d9
Arg [2] : amountMin (uint256): 200000000000000000
Arg [3] : amountMax (uint256): 5000000000000000000
Arg [4] : daysMin (uint256): 45
Arg [5] : daysMax (uint256): 90
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000027c70cd1946795b66be9d954418546998b546634
Arg [1] : 0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d9
Arg [2] : 00000000000000000000000000000000000000000000000002c68af0bb140000
Arg [3] : 0000000000000000000000000000000000000000000000004563918244f40000
Arg [4] : 000000000000000000000000000000000000000000000000000000000000002d
Arg [5] : 000000000000000000000000000000000000000000000000000000000000005a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $264.81 | 1,132.2 | $299,817.88 |
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.