More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,203 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw And Red... | 21245383 | 33 days ago | IN | 0 ETH | 0.0018325 | ||||
Withdraw And Red... | 13381687 | 1173 days ago | IN | 0 ETH | 0.00911438 | ||||
Withdraw And Red... | 13381659 | 1173 days ago | IN | 0 ETH | 0.00911438 | ||||
Withdraw And Red... | 12403292 | 1325 days ago | IN | 0 ETH | 0.00988927 | ||||
Withdraw And Red... | 12208869 | 1355 days ago | IN | 0 ETH | 0.01579419 | ||||
Withdraw And Red... | 12130610 | 1367 days ago | IN | 0 ETH | 0.00821338 | ||||
Withdraw And Red... | 11966530 | 1393 days ago | IN | 0 ETH | 0.01579419 | ||||
Withdraw And Red... | 11955420 | 1394 days ago | IN | 0 ETH | 0.00787458 | ||||
Withdraw And Red... | 11952117 | 1395 days ago | IN | 0 ETH | 0.01324011 | ||||
Redeem | 11922777 | 1399 days ago | IN | 0 ETH | 0.01240779 | ||||
Redeem | 11899709 | 1403 days ago | IN | 0 ETH | 0.00715272 | ||||
Withdraw And Red... | 11899225 | 1403 days ago | IN | 0 ETH | 0.01207791 | ||||
Withdraw And Red... | 11891788 | 1404 days ago | IN | 0 ETH | 0.01579215 | ||||
Withdraw And Red... | 11862303 | 1409 days ago | IN | 0 ETH | 0.01579419 | ||||
Withdraw And Red... | 11822768 | 1415 days ago | IN | 0 ETH | 0.01147738 | ||||
Withdraw And Red... | 11822195 | 1415 days ago | IN | 0 ETH | 0.00531454 | ||||
Withdraw And Red... | 11816951 | 1416 days ago | IN | 0 ETH | 0.00821338 | ||||
Withdraw And Red... | 11814693 | 1416 days ago | IN | 0 ETH | 0.01578807 | ||||
Redeem | 11751592 | 1426 days ago | IN | 0 ETH | 0.00515287 | ||||
Withdraw And Red... | 11751584 | 1426 days ago | IN | 0 ETH | 0.00821338 | ||||
Withdraw And Red... | 11739743 | 1428 days ago | IN | 0 ETH | 0.0092907 | ||||
Withdraw And Red... | 11737216 | 1428 days ago | IN | 0 ETH | 0.01834011 | ||||
Withdraw And Red... | 11719555 | 1431 days ago | IN | 0 ETH | 0.00821338 | ||||
Redeem | 11719549 | 1431 days ago | IN | 0 ETH | 0.00841687 | ||||
Withdraw And Red... | 11687301 | 1436 days ago | IN | 0 ETH | 0.00821338 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
10989055 | 1543 days ago | 0.05 ETH |
Loading...
Loading
Contract Name:
Staking
Compiler Version
v0.6.2+commit.bacdbe57
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion, Apache-2.0 license, Audited
Contract Source Code (Solidity)Audit Report
/** *Submitted for verification at Etherscan.io on 2020-09-11 */ pragma solidity ^0.6.2; /* * @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 GSN 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. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ 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 () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view 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 { emit OwnershipTransferred(_owner, address(0)); _owner = 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"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, 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); } /** * @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) { // Solidity only automatically asserts when dividing by 0 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; } } /** * @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 { bool private _notEntered; constructor () internal { // Storing an initial 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 percetange 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. _notEntered = true; } /** * @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(_notEntered, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _notEntered = false; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _notEntered = true; } } interface IStaking { function getFrozenFrom() external view returns (uint256); function getFrozenUntil() external view returns (uint256); function getDripPerBlock() external view returns (uint256); function getTotalDeposited() external view returns (uint256); function getTokenToStake() external view returns (address); function getIssuingToken() external view returns (address); function getUserDeposit(address user) external view returns (uint256); function initializeNewRound(uint256 frozenFrom, uint256 frozenUntil, uint256 drip) external returns (bool); function deposit(uint256 amount) external returns (bool); function withdrawAndRedeem(uint256 amount) external returns (bool); function redeem() external returns (bool); function accumulated(address account) external view returns (uint256); } contract Staking is IStaking, Ownable, ReentrancyGuard { //using SafeERC20 for IERC20; using SafeMath for uint256; address internal tokenToStake; address internal issuingToken; uint256 internal frozenFrom; uint256 internal frozenUntil; uint256 internal dripPerBlock; uint256 internal totalDeposited; uint256 internal totalDepositedDynamic; mapping(address => uint256) internal deposited; mapping(address => uint256) internal latestRedeem; event Deposited(address account, uint256 amount); event WithdrawnAndRedeemed(address acount, uint256 amount, uint256 issued); event Redeemed(address account, uint256 amount); constructor( address stakedToken, address issuedToken ) public { tokenToStake = stakedToken; issuingToken = issuedToken; } /** * */ function getFrozenFrom() external view override returns (uint256) { return frozenFrom; } /** * */ function getFrozenUntil() external view override returns (uint256) { return frozenUntil; } /** * */ function getDripPerBlock() external view override returns (uint256) { return dripPerBlock; } /** * */ function getTotalDeposited() external view override returns (uint256) { return totalDepositedDynamic; } /** * */ function getTokenToStake() external view override returns (address) { return tokenToStake; } /** * */ function getIssuingToken() external view override returns (address) { return issuingToken; } /** * */ function getUserDeposit(address user) external view override returns (uint256) { return deposited[user]; } /** * */ function setTimeWindow(uint256 from, uint256 to) internal returns (bool) { require(from > block.number, "'from' too small"); require(to > block.number, "'to' too small"); require(from < to, "'from' is larger than 'to'"); frozenFrom = from; frozenUntil = to; return true; } /** * */ function setDripRate(uint256 drip) internal returns (bool) { dripPerBlock = drip; return true; } /** * */ function initializeNewRound( uint256 _frozenFrom, uint256 _frozenUntil, uint256 drip) external onlyOwner override returns (bool) { setTimeWindow(_frozenFrom, _frozenUntil); dripPerBlock = drip; return true; } /** * */ function deposit(uint256 amount) external override nonReentrant returns (bool) { require(block.number < frozenFrom, "deposits not allowed"); deposited[msg.sender] = deposited[msg.sender].add(amount); totalDeposited = totalDeposited.add(amount); totalDepositedDynamic = totalDepositedDynamic.add(amount); latestRedeem[msg.sender] = frozenFrom; emit Deposited(msg.sender, amount); require(IERC20(tokenToStake).transferFrom(msg.sender, address(this), amount),"deposit() failed."); return true; } /** * */ function withdrawAndRedeem(uint256 amount) external override nonReentrant returns (bool) { require(deposited[msg.sender] >= amount, "deposit too small"); if(block.number < frozenFrom){ deposited[msg.sender] = deposited[msg.sender].sub(amount); totalDeposited = totalDeposited.sub(amount); totalDepositedDynamic = totalDepositedDynamic.sub(amount); require(IERC20(tokenToStake).transfer(msg.sender, amount),"withdrawAndRedeem() failed."); } else { require(block.number >= frozenUntil, "withdraws not allowed"); uint256 accumulated = accumulated(msg.sender); deposited[msg.sender] = deposited[msg.sender].sub(amount); emit WithdrawnAndRedeemed(msg.sender, amount, accumulated); totalDepositedDynamic = totalDepositedDynamic.sub(amount); require(_redeem(msg.sender, accumulated), "Failed to redeem tokens"); require(IERC20(tokenToStake).transfer(msg.sender, amount),"withdrawAndRedeem() failed."); } return true; } /** * */ function redeem() external override nonReentrant returns (bool) { uint256 accumulated = accumulated(msg.sender); Redeemed(msg.sender, accumulated); return _redeem(msg.sender, accumulated); } /** * */ function _redeem(address account, uint256 amount) internal returns (bool) { if (block.number >= frozenUntil) { latestRedeem[account] = frozenUntil; } else { if(block.number > frozenFrom){ latestRedeem[account] = block.number; } else { latestRedeem[account] = frozenFrom; } } if(amount > 0) { IERC20(issuingToken).transfer(account, amount); } return true; } /** * */ function accumulated(address account) public view override returns (uint256) { if(deposited[account] == 0) { return 0; } if(block.number > frozenFrom) { if(block.number <= frozenUntil) { return deposited[account].mul( dripPerBlock.mul( block.number.sub( latestRedeem[account] ) ) ).div(totalDeposited); } else { return deposited[account].mul( dripPerBlock.mul( frozenUntil.sub( latestRedeem[account] ) ) ).div(totalDeposited); } } else { return 0; } } }
Contract Security Audit
- Certik - September 9th, 2020 - Security Audit Report
[{"inputs":[{"internalType":"address","name":"stakedToken","type":"address"},{"internalType":"address","name":"issuedToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Redeemed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"acount","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"issued","type":"uint256"}],"name":"WithdrawnAndRedeemed","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"accumulated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDripPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFrozenFrom","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFrozenUntil","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getIssuingToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenToStake","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDeposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frozenFrom","type":"uint256"},{"internalType":"uint256","name":"_frozenUntil","type":"uint256"},{"internalType":"uint256","name":"drip","type":"uint256"}],"name":"initializeNewRound","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redeem","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawAndRedeem","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516112f23803806112f28339818101604052604081101561003357600080fd5b508051602090910151600061004f6001600160e01b036100dd16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b1916600160a01b179055600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100e1565b3390565b611202806100f06000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063bc2b883f11610097578063d6bc40e811610066578063d6bc40e814610208578063d7ae342a14610225578063e33150551461022d578063f2fde38b14610235576100f5565b8063bc2b883f146101ac578063be040fb0146101b4578063c084b10b146101bc578063cc2153d1146101e2576100f5565b80639f4be64b116100d35780639f4be64b14610142578063a7947a731461017f578063b68ef55914610187578063b6b55f251461018f576100f5565b80632982f047146100fa578063715018a6146101145780638da5cb5b1461011e575b600080fd5b61010261025b565b60408051918252519081900360200190f35b61011c610261565b005b610126610315565b604080516001600160a01b039092168252519081900360200190f35b61016b6004803603606081101561015857600080fd5b5080359060208101359060400135610324565b604080519115158252519081900360200190f35b6101026103a7565b6101026103ad565b61016b600480360360208110156101a557600080fd5b50356103b3565b610102610600565b61016b610606565b610102600480360360208110156101d257600080fd5b50356001600160a01b03166106dc565b610102600480360360208110156101f857600080fd5b50356001600160a01b03166106fb565b61016b6004803603602081101561021e57600080fd5b50356107f8565b610126610c24565b610126610c33565b61011c6004803603602081101561024b57600080fd5b50356001600160a01b0316610c42565b60055490565b610269610d4c565b6000546001600160a01b039081169116146102cb576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600061032e610d4c565b6000546001600160a01b03908116911614610390576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61039a8484610d50565b5050600555506001919050565b60035490565b60075490565b60008054600160a01b900460ff16610412576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff60a01b19169055600354431061046c576040805162461bcd60e51b815260206004820152601460248201527319195c1bdcda5d1cc81b9bdd08185b1b1bddd95960621b604482015290519081900360640190fd5b3360009081526008602052604090205461048c908363ffffffff610e4616565b336000908152600860205260409020556006546104af908363ffffffff610e4616565b6006556007546104c5908363ffffffff610e4616565b6007556003543360008181526009602090815260409182902093909355805191825291810184905281517f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4929181900390910190a1600154604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561057457600080fd5b505af1158015610588573d6000803e3d6000fd5b505050506040513d602081101561059e57600080fd5b50516105e5576040805162461bcd60e51b81526020600482015260116024820152703232b837b9b4ba1414903330b4b632b21760791b604482015290519081900360640190fd5b5060016000805460ff60a01b1916600160a01b179055919050565b60045490565b60008054600160a01b900460ff16610665576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff60a01b1916815561067b336106fb565b604080513381526020810183905281519293507f4896181ff8f4543cc00db9fe9b6fb7e6f032b7eb772c72ab1ec1b4d2e03b9369929081900390910190a16106c33382610ea7565b9150506000805460ff60a01b1916600160a01b17905590565b6001600160a01b0381166000908152600860205260409020545b919050565b6001600160a01b038116600090815260086020526040812054610720575060006106f6565b6003544311156107f05760045443116107b4576006546001600160a01b0383166000908152600960205260409020546107ad91906107a19061077c9061076d90439063ffffffff610fac16565b6005549063ffffffff610fee16565b6001600160a01b0386166000908152600860205260409020549063ffffffff610fee16565b9063ffffffff61104716565b90506106f6565b6006546001600160a01b0383166000908152600960205260409020546004546107ad92916107a19161077c9161076d919063ffffffff610fac16565b5060006106f6565b60008054600160a01b900460ff16610857576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff60a01b19168155338152600860205260409020548211156108b9576040805162461bcd60e51b815260206004820152601160248201527019195c1bdcda5d081d1bdbc81cdb585b1b607a1b604482015290519081900360640190fd5b6003544310156109f557336000908152600860205260409020546108e3908363ffffffff610fac16565b33600090815260086020526040902055600654610906908363ffffffff610fac16565b60065560075461091c908363ffffffff610fac16565b6007556001546040805163a9059cbb60e01b81523360048201526024810185905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561097357600080fd5b505af1158015610987573d6000803e3d6000fd5b505050506040513d602081101561099d57600080fd5b50516109f0576040805162461bcd60e51b815260206004820152601b60248201527f7769746864726177416e6452656465656d2829206661696c65642e0000000000604482015290519081900360640190fd5b6105e5565b600454431015610a44576040805162461bcd60e51b81526020600482015260156024820152741dda5d1a191c985ddcc81b9bdd08185b1b1bddd959605a1b604482015290519081900360640190fd5b6000610a4f336106fb565b33600090815260086020526040902054909150610a72908463ffffffff610fac16565b3360008181526008602090815260409182902093909355805191825291810185905280820183905290517fb249bb65be6863c0d7a124b81b64a1c8efffe3cdde637be66fc9cec21b95139c9181900360600190a1600754610ad9908463ffffffff610fac16565b600755610ae63382610ea7565b610b37576040805162461bcd60e51b815260206004820152601760248201527f4661696c656420746f2072656465656d20746f6b656e73000000000000000000604482015290519081900360640190fd5b6001546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b158015610b8b57600080fd5b505af1158015610b9f573d6000803e3d6000fd5b505050506040513d6020811015610bb557600080fd5b5051610c08576040805162461bcd60e51b815260206004820152601b60248201527f7769746864726177416e6452656465656d2829206661696c65642e0000000000604482015290519081900360640190fd5b505060016000805460ff60a01b1916600160a01b179055919050565b6001546001600160a01b031690565b6002546001600160a01b031690565b610c4a610d4c565b6000546001600160a01b03908116911614610cac576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610cf15760405162461bcd60e51b81526004018080602001828103825260268152602001806111866026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6000438311610d99576040805162461bcd60e51b815260206004820152601060248201526f09d99c9bdb49c81d1bdbc81cdb585b1b60821b604482015290519081900360640190fd5b438211610dde576040805162461bcd60e51b815260206004820152600e60248201526d09dd1bc9c81d1bdbc81cdb585b1b60921b604482015290519081900360640190fd5b818310610e32576040805162461bcd60e51b815260206004820152601a60248201527f2766726f6d27206973206c6172676572207468616e2027746f27000000000000604482015290519081900360640190fd5b506003829055600481905560015b92915050565b600082820183811015610ea0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006004544310610ed3576004546001600160a01b038416600090815260096020526040902055610f1a565b600354431115610efd576001600160a01b0383166000908152600960205260409020439055610f1a565b6003546001600160a01b0384166000908152600960205260409020555b8115610fa3576002546040805163a9059cbb60e01b81526001600160a01b038681166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610f7657600080fd5b505af1158015610f8a573d6000803e3d6000fd5b505050506040513d6020811015610fa057600080fd5b50505b50600192915050565b6000610ea083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611089565b600082610ffd57506000610e40565b8282028284828161100a57fe5b0414610ea05760405162461bcd60e51b81526004018080602001828103825260218152602001806111ac6021913960400191505060405180910390fd5b6000610ea083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611120565b600081848411156111185760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110dd5781810151838201526020016110c5565b50505050905090810190601f16801561110a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000818361116f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156110dd5781810151838201526020016110c5565b50600083858161117b57fe5b049594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212207007c5c4a87e27781a799a426f516bb754d61efd3b8b4a097e905304f10a1bc864736f6c634300060200330000000000000000000000001d287cc25dad7ccaf76a26bc660c5f7c8e2a05bd0000000000000000000000002e1e15c44ffe4df6a0cb7371cd00d5028e571d14
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063bc2b883f11610097578063d6bc40e811610066578063d6bc40e814610208578063d7ae342a14610225578063e33150551461022d578063f2fde38b14610235576100f5565b8063bc2b883f146101ac578063be040fb0146101b4578063c084b10b146101bc578063cc2153d1146101e2576100f5565b80639f4be64b116100d35780639f4be64b14610142578063a7947a731461017f578063b68ef55914610187578063b6b55f251461018f576100f5565b80632982f047146100fa578063715018a6146101145780638da5cb5b1461011e575b600080fd5b61010261025b565b60408051918252519081900360200190f35b61011c610261565b005b610126610315565b604080516001600160a01b039092168252519081900360200190f35b61016b6004803603606081101561015857600080fd5b5080359060208101359060400135610324565b604080519115158252519081900360200190f35b6101026103a7565b6101026103ad565b61016b600480360360208110156101a557600080fd5b50356103b3565b610102610600565b61016b610606565b610102600480360360208110156101d257600080fd5b50356001600160a01b03166106dc565b610102600480360360208110156101f857600080fd5b50356001600160a01b03166106fb565b61016b6004803603602081101561021e57600080fd5b50356107f8565b610126610c24565b610126610c33565b61011c6004803603602081101561024b57600080fd5b50356001600160a01b0316610c42565b60055490565b610269610d4c565b6000546001600160a01b039081169116146102cb576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600061032e610d4c565b6000546001600160a01b03908116911614610390576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61039a8484610d50565b5050600555506001919050565b60035490565b60075490565b60008054600160a01b900460ff16610412576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff60a01b19169055600354431061046c576040805162461bcd60e51b815260206004820152601460248201527319195c1bdcda5d1cc81b9bdd08185b1b1bddd95960621b604482015290519081900360640190fd5b3360009081526008602052604090205461048c908363ffffffff610e4616565b336000908152600860205260409020556006546104af908363ffffffff610e4616565b6006556007546104c5908363ffffffff610e4616565b6007556003543360008181526009602090815260409182902093909355805191825291810184905281517f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4929181900390910190a1600154604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561057457600080fd5b505af1158015610588573d6000803e3d6000fd5b505050506040513d602081101561059e57600080fd5b50516105e5576040805162461bcd60e51b81526020600482015260116024820152703232b837b9b4ba1414903330b4b632b21760791b604482015290519081900360640190fd5b5060016000805460ff60a01b1916600160a01b179055919050565b60045490565b60008054600160a01b900460ff16610665576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff60a01b1916815561067b336106fb565b604080513381526020810183905281519293507f4896181ff8f4543cc00db9fe9b6fb7e6f032b7eb772c72ab1ec1b4d2e03b9369929081900390910190a16106c33382610ea7565b9150506000805460ff60a01b1916600160a01b17905590565b6001600160a01b0381166000908152600860205260409020545b919050565b6001600160a01b038116600090815260086020526040812054610720575060006106f6565b6003544311156107f05760045443116107b4576006546001600160a01b0383166000908152600960205260409020546107ad91906107a19061077c9061076d90439063ffffffff610fac16565b6005549063ffffffff610fee16565b6001600160a01b0386166000908152600860205260409020549063ffffffff610fee16565b9063ffffffff61104716565b90506106f6565b6006546001600160a01b0383166000908152600960205260409020546004546107ad92916107a19161077c9161076d919063ffffffff610fac16565b5060006106f6565b60008054600160a01b900460ff16610857576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff60a01b19168155338152600860205260409020548211156108b9576040805162461bcd60e51b815260206004820152601160248201527019195c1bdcda5d081d1bdbc81cdb585b1b607a1b604482015290519081900360640190fd5b6003544310156109f557336000908152600860205260409020546108e3908363ffffffff610fac16565b33600090815260086020526040902055600654610906908363ffffffff610fac16565b60065560075461091c908363ffffffff610fac16565b6007556001546040805163a9059cbb60e01b81523360048201526024810185905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561097357600080fd5b505af1158015610987573d6000803e3d6000fd5b505050506040513d602081101561099d57600080fd5b50516109f0576040805162461bcd60e51b815260206004820152601b60248201527f7769746864726177416e6452656465656d2829206661696c65642e0000000000604482015290519081900360640190fd5b6105e5565b600454431015610a44576040805162461bcd60e51b81526020600482015260156024820152741dda5d1a191c985ddcc81b9bdd08185b1b1bddd959605a1b604482015290519081900360640190fd5b6000610a4f336106fb565b33600090815260086020526040902054909150610a72908463ffffffff610fac16565b3360008181526008602090815260409182902093909355805191825291810185905280820183905290517fb249bb65be6863c0d7a124b81b64a1c8efffe3cdde637be66fc9cec21b95139c9181900360600190a1600754610ad9908463ffffffff610fac16565b600755610ae63382610ea7565b610b37576040805162461bcd60e51b815260206004820152601760248201527f4661696c656420746f2072656465656d20746f6b656e73000000000000000000604482015290519081900360640190fd5b6001546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b158015610b8b57600080fd5b505af1158015610b9f573d6000803e3d6000fd5b505050506040513d6020811015610bb557600080fd5b5051610c08576040805162461bcd60e51b815260206004820152601b60248201527f7769746864726177416e6452656465656d2829206661696c65642e0000000000604482015290519081900360640190fd5b505060016000805460ff60a01b1916600160a01b179055919050565b6001546001600160a01b031690565b6002546001600160a01b031690565b610c4a610d4c565b6000546001600160a01b03908116911614610cac576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610cf15760405162461bcd60e51b81526004018080602001828103825260268152602001806111866026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6000438311610d99576040805162461bcd60e51b815260206004820152601060248201526f09d99c9bdb49c81d1bdbc81cdb585b1b60821b604482015290519081900360640190fd5b438211610dde576040805162461bcd60e51b815260206004820152600e60248201526d09dd1bc9c81d1bdbc81cdb585b1b60921b604482015290519081900360640190fd5b818310610e32576040805162461bcd60e51b815260206004820152601a60248201527f2766726f6d27206973206c6172676572207468616e2027746f27000000000000604482015290519081900360640190fd5b506003829055600481905560015b92915050565b600082820183811015610ea0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006004544310610ed3576004546001600160a01b038416600090815260096020526040902055610f1a565b600354431115610efd576001600160a01b0383166000908152600960205260409020439055610f1a565b6003546001600160a01b0384166000908152600960205260409020555b8115610fa3576002546040805163a9059cbb60e01b81526001600160a01b038681166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610f7657600080fd5b505af1158015610f8a573d6000803e3d6000fd5b505050506040513d6020811015610fa057600080fd5b50505b50600192915050565b6000610ea083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611089565b600082610ffd57506000610e40565b8282028284828161100a57fe5b0414610ea05760405162461bcd60e51b81526004018080602001828103825260218152602001806111ac6021913960400191505060405180910390fd5b6000610ea083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611120565b600081848411156111185760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110dd5781810151838201526020016110c5565b50505050905090810190601f16801561110a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000818361116f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156110dd5781810151838201526020016110c5565b50600083858161117b57fe5b049594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212207007c5c4a87e27781a799a426f516bb754d61efd3b8b4a097e905304f10a1bc864736f6c63430006020033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001d287cc25dad7ccaf76a26bc660c5f7c8e2a05bd0000000000000000000000002e1e15c44ffe4df6a0cb7371cd00d5028e571d14
-----Decoded View---------------
Arg [0] : stakedToken (address): 0x1D287CC25dAD7cCaF76a26bc660c5F7C8E2a05BD
Arg [1] : issuedToken (address): 0x2e1E15C44Ffe4Df6a0cb7371CD00d5028e571d14
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000001d287cc25dad7ccaf76a26bc660c5f7c8e2a05bd
Arg [1] : 0000000000000000000000002e1e15c44ffe4df6a0cb7371cd00d5028e571d14
Deployed Bytecode Sourcemap
14367:6115:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14367:6115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15534:106;;;:::i;:::-;;;;;;;;;;;;;;;;2758:148;;;:::i;:::-;;2116:79;;;:::i;:::-;;;;-1:-1:-1;;;;;2116:79:0;;;;;;;;;;;;;;16763:267;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16763:267:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;15264:102;;;:::i;15672:117::-;;;:::i;17062:569::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17062:569:0;;:::i;15398:104::-;;;:::i;18799:222::-;;;:::i;16097:120::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16097:120:0;-1:-1:-1;;;;;16097:120:0;;:::i;19599:876::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19599:876:0;-1:-1:-1;;;;;19599:876:0;;:::i;17663:1104::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17663:1104:0;;:::i;15821:106::-;;;:::i;15959:::-;;;:::i;3061:244::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3061:244:0;-1:-1:-1;;;;;3061:244:0;;:::i;15534:106::-;15620:12;;15534:106;:::o;2758:148::-;2338:12;:10;:12::i;:::-;2328:6;;-1:-1:-1;;;;;2328:6:0;;;:22;;;2320:67;;;;;-1:-1:-1;;;2320:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2865:1:::1;2849:6:::0;;2828:40:::1;::::0;-1:-1:-1;;;;;2849:6:0;;::::1;::::0;2828:40:::1;::::0;2865:1;;2828:40:::1;2896:1;2879:19:::0;;-1:-1:-1;;;;;;2879:19:0::1;::::0;;2758:148::o;2116:79::-;2154:7;2181:6;-1:-1:-1;;;;;2181:6:0;2116:79;:::o;16763:267::-;16913:4;2338:12;:10;:12::i;:::-;2328:6;;-1:-1:-1;;;;;2328:6:0;;;:22;;;2320:67;;;;;-1:-1:-1;;;2320:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16930:40:::1;16944:11;16957:12;16930:13;:40::i;:::-;-1:-1:-1::0;;16981:12:0::1;:19:::0;-1:-1:-1;17018:4:0::1;::::0;16763:267;-1:-1:-1;16763:267:0:o;15264:102::-;15348:10;;15264:102;:::o;15672:117::-;15760:21;;15672:117;:::o;17062:569::-;17135:4;13138:11;;-1:-1:-1;;;13138:11:0;;;;13130:55;;;;;-1:-1:-1;;;13130:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13277:5;13263:19;;-1:-1:-1;;;;13263:19:0;;;17175:10:::1;::::0;17160:12:::1;:25;17152:58;;;::::0;;-1:-1:-1;;;17152:58:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;17152:58:0;;;;;;;;;;;;;::::1;;17255:10;17245:21;::::0;;;:9:::1;:21;::::0;;;;;:33:::1;::::0;17271:6;17245:33:::1;:25;:33;:::i;:::-;17231:10;17221:21;::::0;;;:9:::1;:21;::::0;;;;:57;17306:14:::1;::::0;:26:::1;::::0;17325:6;17306:26:::1;:18;:26;:::i;:::-;17289:14;:43:::0;17367:21:::1;::::0;:33:::1;::::0;17393:6;17367:33:::1;:25;:33;:::i;:::-;17343:21;:57:::0;17438:10:::1;::::0;17424::::1;17411:24;::::0;;;:12:::1;:24;::::0;;;;;;;;:37;;;;17464:29;;;;;;;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;17519:12;::::0;17512:68:::1;::::0;;-1:-1:-1;;;17512:68:0;;17546:10:::1;17512:68;::::0;::::1;::::0;17566:4:::1;17512:68:::0;;;;;;;;;;;;-1:-1:-1;;;;;17519:12:0;;::::1;::::0;17512:33:::1;::::0;:68;;;;;::::1;::::0;;;;;;;;;17519:12:::1;::::0;17512:68;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;17512:68:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17512:68:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;-1:-1:::0;17512:68:0;17504:97:::1;;;::::0;;-1:-1:-1;;;17504:97:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;17504:97:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;17619:4:0::1;13443:11:::0;:18;;-1:-1:-1;;;;13443:18:0;-1:-1:-1;;;13443:18:0;;;17062:569;;-1:-1:-1;17062:569:0:o;15398:104::-;15483:11;;15398:104;:::o;18799:222::-;18857:4;13138:11;;-1:-1:-1;;;13138:11:0;;;;13130:55;;;;;-1:-1:-1;;;13130:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13277:5;13263:19;;-1:-1:-1;;;;13263:19:0;;;18896:23:::1;18908:10;18896:11;:23::i;:::-;18930:33;::::0;;18939:10:::1;18930:33:::0;;::::1;::::0;::::1;::::0;;;;;18874:45;;-1:-1:-1;18930:33:0::1;::::0;;;;;;;;;::::1;18981:32;18989:10;19001:11;18981:7;:32::i;:::-;18974:39;;;13443:11:::0;:18;;-1:-1:-1;;;;13443:18:0;-1:-1:-1;;;13443:18:0;;;18799:222;:::o;16097:120::-;-1:-1:-1;;;;;16194:15:0;;16167:7;16194:15;;;:9;:15;;;;;;16097:120;;;;:::o;19599:876::-;-1:-1:-1;;;;;19690:18:0;;19667:7;19690:18;;;:9;:18;;;;;;19687:63;;-1:-1:-1;19737:1:0;19730:8;;19687:63;19778:10;;19763:12;:25;19760:708;;;19824:11;;19808:12;:27;19805:611;;20093:14;;-1:-1:-1;;;;;19998:21:0;;;;;;:12;:21;;;;;;19863:245;;20093:14;19863:225;;19908:161;;19951:95;;:12;;:95;:16;:95;:::i;:::-;19908:12;;;:161;:16;:161;:::i;:::-;-1:-1:-1;;;;;19863:18:0;;;;;;:9;:18;;;;;;;:225;:22;:225;:::i;:::-;:229;:245;:229;:245;:::i;:::-;19856:252;;;;19805:611;20385:14;;-1:-1:-1;;;;;20290:21:0;;;;;;:12;:21;;;;;;20244:11;;20156:244;;20385:14;20156:224;;20201:160;;20244:94;;:11;:94;:15;:94;:::i;19760:708::-;-1:-1:-1;20455:1:0;20448:8;;17663:1104;17746:4;13138:11;;-1:-1:-1;;;13138:11:0;;;;13130:55;;;;;-1:-1:-1;;;13130:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13277:5;13263:19;;-1:-1:-1;;;;13263:19:0;;;17781:10:::1;17771:21:::0;;:9:::1;:21;::::0;;;;;:31;-1:-1:-1;17771:31:0::1;17763:61;;;::::0;;-1:-1:-1;;;17763:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;17763:61:0;;;;;;;;;;;;;::::1;;17853:10;;17838:12;:25;17835:903;;;17913:10;17903:21;::::0;;;:9:::1;:21;::::0;;;;;:33:::1;::::0;17929:6;17903:33:::1;:25;:33;:::i;:::-;17889:10;17879:21;::::0;;;:9:::1;:21;::::0;;;;:57;17968:14:::1;::::0;:26:::1;::::0;17987:6;17968:26:::1;:18;:26;:::i;:::-;17951:14;:43:::0;18033:21:::1;::::0;:33:::1;::::0;18059:6;18033:33:::1;:25;:33;:::i;:::-;18009:21;:57:::0;18096:12:::1;::::0;18089:49:::1;::::0;;-1:-1:-1;;;18089:49:0;;18119:10:::1;18089:49;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;18096:12:0;;::::1;::::0;18089:29:::1;::::0;:49;;;;;::::1;::::0;;;;;;;;;18096:12:::1;::::0;18089:49;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;18089:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;18089:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;-1:-1:::0;18089:49:0;18081:88:::1;;;::::0;;-1:-1:-1;;;18081:88:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;17835:903;;;18226:11;;18210:12;:27;;18202:61;;;::::0;;-1:-1:-1;;;18202:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;18202:61:0;;;;;;;;;;;;;::::1;;18278:19;18300:23;18312:10;18300:11;:23::i;:::-;18372:10;18362:21;::::0;;;:9:::1;:21;::::0;;;;;18278:45;;-1:-1:-1;18362:33:0::1;::::0;18388:6;18362:33:::1;:25;:33;:::i;:::-;18348:10;18338:21;::::0;;;:9:::1;:21;::::0;;;;;;;;:57;;;;18415:53;;;;;;;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;18507:21;::::0;:33:::1;::::0;18533:6;18507:33:::1;:25;:33;:::i;:::-;18483:21;:57:::0;18563:32:::1;18571:10;18583:11:::0;18563:7:::1;:32::i;:::-;18555:68;;;::::0;;-1:-1:-1;;;18555:68:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;18653:12;::::0;18646:49:::1;::::0;;-1:-1:-1;;;18646:49:0;;18676:10:::1;18646:49;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;18653:12:0;;::::1;::::0;18646:29:::1;::::0;:49;;;;;::::1;::::0;;;;;;;;;18653:12:::1;::::0;18646:49;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;18646:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;18646:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;-1:-1:::0;18646:49:0;18638:88:::1;;;::::0;;-1:-1:-1;;;18638:88:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;17835:903;-1:-1:-1::0;18755:4:0::1;13443:11:::0;:18;;-1:-1:-1;;;;13443:18:0;-1:-1:-1;;;13443:18:0;;;17663:1104;;-1:-1:-1;17663:1104:0:o;15821:106::-;15907:12;;-1:-1:-1;;;;;15907:12:0;15821:106;:::o;15959:::-;16045:12;;-1:-1:-1;;;;;16045:12:0;15959:106;:::o;3061:244::-;2338:12;:10;:12::i;:::-;2328:6;;-1:-1:-1;;;;;2328:6:0;;;:22;;;2320:67;;;;;-1:-1:-1;;;2320:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3150:22:0;::::1;3142:73;;;;-1:-1:-1::0;;;3142:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3252:6;::::0;;3231:38:::1;::::0;-1:-1:-1;;;;;3231:38:0;;::::1;::::0;3252:6;::::1;::::0;3231:38:::1;::::0;::::1;3280:6;:17:::0;;-1:-1:-1;;;;;;3280:17:0::1;-1:-1:-1::0;;;;;3280:17:0;;;::::1;::::0;;;::::1;::::0;;3061:244::o;756:106::-;844:10;756:106;:::o;16249:331::-;16316:4;16348:12;16341:4;:19;16333:48;;;;;-1:-1:-1;;;16333:48:0;;;;;;;;;;;;-1:-1:-1;;;16333:48:0;;;;;;;;;;;;;;;16405:12;16400:2;:17;16392:44;;;;;-1:-1:-1;;;16392:44:0;;;;;;;;;;;;-1:-1:-1;;;16392:44:0;;;;;;;;;;;;;;;16462:2;16455:4;:9;16447:48;;;;;-1:-1:-1;;;16447:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16506:10:0;:17;;;16534:11;:16;;;16568:4;16249:331;;;;;:::o;6857:181::-;6915:7;6947:5;;;6971:6;;;;6963:46;;;;;-1:-1:-1;;;6963:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7029:1;6857:181;-1:-1:-1;;;6857:181:0:o;19053:514::-;19121:4;19158:11;;19142:12;:27;19138:302;;19210:11;;-1:-1:-1;;;;;19186:21:0;;;;;;:12;:21;;;;;:35;19138:302;;;19272:10;;19257:12;:25;19254:175;;;-1:-1:-1;;;;;19302:21:0;;;;;;:12;:21;;;;;19326:12;19302:36;;19254:175;;;19403:10;;-1:-1:-1;;;;;19379:21:0;;;;;;:12;:21;;;;;:34;19254:175;19453:10;;19450:88;;19487:12;;19480:46;;;-1:-1:-1;;;19480:46:0;;-1:-1:-1;;;;;19480:46:0;;;;;;;;;;;;;;;19487:12;;;;;19480:29;;:46;;;;;;;;;;;;;;19487:12;;19480:46;;;5:2:-1;;;;30:1;27;20:12;5:2;19480:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19480:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;19450:88:0;-1:-1:-1;19555:4:0;19053:514;;;;:::o;7313:136::-;7371:7;7398:43;7402:1;7405;7398:43;;;;;;;;;;;;;;;;;:3;:43::i;8187:471::-;8245:7;8490:6;8486:47;;-1:-1:-1;8520:1:0;8513:8;;8486:47;8557:5;;;8561:1;8557;:5;:1;8581:5;;;;;:10;8573:56;;;;-1:-1:-1;;;8573:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9126:132;9184:7;9211:39;9215:1;9218;9211:39;;;;;;;;;;;;;;;;;:3;:39::i;7744:192::-;7830:7;7866:12;7858:6;;;;7850:29;;;;-1:-1:-1;;;7850:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7850:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7902:5:0;;;7744:192::o;9746:345::-;9832:7;9934:12;9927:5;9919:28;;;;-1:-1:-1;;;9919:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;9919:28:0;;9958:9;9974:1;9970;:5;;;;;;;9746:345;-1:-1:-1;;;;;9746:345:0:o
Swarm Source
ipfs://7007c5c4a87e27781a799a426f516bb754d61efd3b8b4a097e905304f10a1bc8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2.27 | 26,036.146 | $59,190.26 |
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.