Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 8 from a total of 8 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 15155918 | 899 days ago | IN | 0 ETH | 0.00065783 | ||||
Withdraw | 15155910 | 899 days ago | IN | 0 ETH | 0.00088407 | ||||
Set Period Lengt... | 15085303 | 910 days ago | IN | 0 ETH | 0.00140295 | ||||
Withdraw | 13889502 | 1100 days ago | IN | 0 ETH | 0.00345776 | ||||
Set Period Lengt... | 13889494 | 1100 days ago | IN | 0 ETH | 0.00202076 | ||||
Withdraw | 13889483 | 1100 days ago | IN | 0 ETH | 0.00532624 | ||||
Claim | 13889478 | 1100 days ago | IN | 0 ETH | 0.00618605 | ||||
Claim | 13301270 | 1193 days ago | IN | 0 ETH | 0.00276933 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ReservesDistributor
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-07-19 */ // File: contracts\libraries\SafeMath.sol pragma solidity =0.5.16; // From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/Math.sol // Subject to the MIT license. /** * @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 addition of two unsigned integers, reverting with custom message on overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, errorMessage); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot underflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction underflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot underflow. */ 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 multiplication of two unsigned integers, reverting on overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b, string memory errorMessage) 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, errorMessage); 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; } } // File: contracts\interfaces\IERC20.sol pragma solidity >=0.5.0; interface IERC20 { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); } // File: contracts\interfaces\IReservesDistributor.sol pragma solidity >=0.5.0; interface IReservesDistributor { function imx() external view returns (address); function xImx() external view returns (address); function periodLength() external view returns (uint); function lastClaim() external view returns (uint); event Claim(uint previousBalance, uint timeElapsed, uint amount); event NewPeriodLength(uint oldPeriodLength, uint newPeriodLength); event Withdraw(uint previousBalance, uint amount); function claim() external returns (uint amount); function setPeriodLength(uint newPeriodLength) external; function withdraw(uint amount) external; } // File: contracts\interfaces\IPoolToken.sol pragma solidity >=0.5.0; interface IPoolToken { /*** Impermax ERC20 ***/ event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; /*** Pool Token ***/ event Mint(address indexed sender, address indexed minter, uint mintAmount, uint mintTokens); event Redeem(address indexed sender, address indexed redeemer, uint redeemAmount, uint redeemTokens); event Sync(uint totalBalance); function underlying() external view returns (address); function factory() external view returns (address); function totalBalance() external view returns (uint); function MINIMUM_LIQUIDITY() external pure returns (uint); function exchangeRate() external returns (uint); function mint(address minter) external returns (uint mintTokens); function redeem(address redeemer) external returns (uint redeemAmount); function skim(address to) external; function sync() external; function _setFactory() external; } // File: contracts\Ownable.sol // SPDX-License-Identifier: MIT // Audit on 5-Jan-2021 by Keno and BoringCrypto // P1 - P3: OK pragma solidity =0.5.16; // Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol + Claimable.sol // Edited by BoringCrypto // T1 - T4: OK contract OwnableData { // V1 - V5: OK address public owner; // V1 - V5: OK address public pendingOwner; } // T1 - T4: OK contract Ownable is OwnableData { // E1: OK event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () internal { owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } // F1 - F9: OK // C1 - C21: OK function transferOwnership(address newOwner, bool direct, bool renounce) public onlyOwner { if (direct) { // Checks require(newOwner != address(0) || renounce, "Ownable: zero address"); // Effects emit OwnershipTransferred(owner, newOwner); owner = newOwner; } else { // Effects pendingOwner = newOwner; } } // F1 - F9: OK // C1 - C21: OK function claimOwnership() public { address _pendingOwner = pendingOwner; // Checks require(msg.sender == _pendingOwner, "Ownable: caller != pending owner"); // Effects emit OwnershipTransferred(owner, _pendingOwner); owner = _pendingOwner; pendingOwner = address(0); } // M1 - M5: OK // C1 - C21: OK modifier onlyOwner() { require(msg.sender == owner, "Ownable: caller is not the owner"); _; } } // File: contracts\ReservesDistributor.sol pragma solidity =0.5.16; contract ReservesDistributor is IReservesDistributor, Ownable { using SafeMath for uint; address public imx; address public xImx; uint public periodLength; uint public lastClaim; event Claim(uint previousBalance, uint timeElapsed, uint amount); event NewPeriodLength(uint oldPeriodLength, uint newPeriodLength); event Withdraw(uint previousBalance, uint amount); constructor( address imx_, address xImx_, uint periodLength_ ) public { imx = imx_; xImx = xImx_; periodLength = periodLength_; lastClaim = getBlockTimestamp(); } function claim() external returns (uint amount) { uint blockTimestamp = getBlockTimestamp(); uint timeElapsed = blockTimestamp.sub(lastClaim); lastClaim = blockTimestamp; uint balance = IERC20(imx).balanceOf(address(this)); if (timeElapsed > periodLength) { amount = balance; } else { amount = balance.mul(timeElapsed).div(periodLength); } if (amount > 0) { IERC20(imx).transfer(xImx, amount); IPoolToken(xImx).sync(); } emit Claim(balance, timeElapsed, amount); } function setPeriodLength(uint newPeriodLength) external onlyOwner { emit NewPeriodLength(periodLength, newPeriodLength); periodLength = newPeriodLength; } function withdraw(uint amount) external onlyOwner { uint balance = IERC20(imx).balanceOf(address(this)); require(amount <= balance, "ReservesDistributor: INSUFFICIENT_BALANCE"); IERC20(imx).transfer(msg.sender, amount); emit Withdraw(balance, amount); } function getBlockTimestamp() public view returns (uint) { return block.timestamp; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"imx_","type":"address"},{"internalType":"address","name":"xImx_","type":"address"},{"internalType":"uint256","name":"periodLength_","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timeElapsed","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldPeriodLength","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newPeriodLength","type":"uint256"}],"name":"NewPeriodLength","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":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"constant":false,"inputs":[],"name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"imx","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"periodLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"newPeriodLength","type":"uint256"}],"name":"setPeriodLength","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"xImx","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610ea4380380610ea48339818101604052606081101561003357600080fd5b5080516020820151604092830151600080546001600160a01b0319163390811782559451939492939192917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600280546001600160a01b038086166001600160a01b031992831617909255600380549285169290911691909117905560048190556100c96001600160e01b036100d516565b600555506100d9915050565b4290565b610dbc806100e86000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063594aa29f11610081578063a8adb5641161005b578063a8adb564146101c3578063d2ca2115146101cb578063e30c3978146101d3576100d4565b8063594aa29f146101ab578063796b89b9146101b35780638da5cb5b146101bb576100d4565b80632e1a7d4d116100b25780632e1a7d4d1461016c5780634e71d92d146101895780634e71e0c8146101a3576100d4565b8063078dfbe7146100d95780630f08025f1461011e5780631c5633d71461014f575b600080fd5b61011c600480360360608110156100ef57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101351515906040013515156101db565b005b6101266103c4565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61011c6004803603602081101561016557600080fd5b50356103e0565b61011c6004803603602081101561018257600080fd5b50356104a8565b61019161070b565b60408051918252519081900360200190f35b61011c61098e565b610126610aa9565b610191610ac5565b610126610ac9565b610191610ae5565b610191610aeb565b610126610af1565b60005473ffffffffffffffffffffffffffffffffffffffff16331461026157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b811561037e5773ffffffffffffffffffffffffffffffffffffffff83161515806102885750805b6102f357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f776e61626c653a207a65726f20616464726573730000000000000000000000604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790556103bf565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790555b505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461046657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600454604080519182526020820183905280517fc42f122800a9ec8a3bcd8a3f4e0e06181103aab11389d0465ff715e695ae2f1c9281900390910190a1600455565b60005473ffffffffffffffffffffffffffffffffffffffff16331461052e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b15801561059f57600080fd5b505afa1580156105b3573d6000803e3d6000fd5b505050506040513d60208110156105c957600080fd5b5051905080821115610626576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180610d5f6029913960400191505060405180910390fd5b600254604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff9092169163a9059cbb916044808201926020929091908290030181600087803b1580156106a057600080fd5b505af11580156106b4573d6000803e3d6000fd5b505050506040513d60208110156106ca57600080fd5b5050604080518281526020810184905281517f56ca301a9219608c91e7bcee90e083c19671d2cdcc96752c7af291cee5f9c8c8929181900390910190a15050565b600080610716610ac5565b9050600061072f60055483610b0d90919063ffffffff16565b6005839055600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156107ab57600080fd5b505afa1580156107bf573d6000803e3d6000fd5b505050506040513d60208110156107d557600080fd5b50516004549091508211156107ec57809350610812565b60045461080f90610803838563ffffffff610b5816565b9063ffffffff610bcb16565b93505b831561094857600254600354604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152602481018890529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561089757600080fd5b505af11580156108ab573d6000803e3d6000fd5b505050506040513d60208110156108c157600080fd5b5050600354604080517ffff6cae9000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169163fff6cae99160048082019260009290919082900301818387803b15801561092f57600080fd5b505af1158015610943573d6000803e3d6000fd5b505050505b604080518281526020810184905280820186905290517fe630ca519fedafd2bd9bd35ad65e198e08398f47c88ca063c406740992bcd1a49181900360600190a150505090565b60015473ffffffffffffffffffffffffffffffffffffffff16338114610a1557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600180549091169055565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b4290565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60045481565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b4f83836040518060400160405280601f81526020017f536166654d6174683a207375627472616374696f6e20756e646572666c6f7700815250610c0d565b90505b92915050565b600082610b6757506000610b52565b82820282848281610b7457fe5b0414610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610d3e6021913960400191505060405180910390fd5b6000610b4f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610cbe565b60008184841115610cb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c7b578181015183820152602001610c63565b50505050905090810190601f168015610ca85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315610c7b578181015183820152602001610c63565b506000838581610d3357fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7752657365727665734469737472696275746f723a20494e53554646494349454e545f42414c414e4345a265627a7a723158202022d54a001152943402de1e84d75432f0ef5571a9d2dcc0becaabb201b7912064736f6c634300051000320000000000000000000000007b35ce522cb72e4077baeb96cb923a5529764a00000000000000000000000000363b2deac84f0100d63c7427335f8350f596bf59000000000000000000000000000000000000000000000000000000000076a700
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063594aa29f11610081578063a8adb5641161005b578063a8adb564146101c3578063d2ca2115146101cb578063e30c3978146101d3576100d4565b8063594aa29f146101ab578063796b89b9146101b35780638da5cb5b146101bb576100d4565b80632e1a7d4d116100b25780632e1a7d4d1461016c5780634e71d92d146101895780634e71e0c8146101a3576100d4565b8063078dfbe7146100d95780630f08025f1461011e5780631c5633d71461014f575b600080fd5b61011c600480360360608110156100ef57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101351515906040013515156101db565b005b6101266103c4565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61011c6004803603602081101561016557600080fd5b50356103e0565b61011c6004803603602081101561018257600080fd5b50356104a8565b61019161070b565b60408051918252519081900360200190f35b61011c61098e565b610126610aa9565b610191610ac5565b610126610ac9565b610191610ae5565b610191610aeb565b610126610af1565b60005473ffffffffffffffffffffffffffffffffffffffff16331461026157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b811561037e5773ffffffffffffffffffffffffffffffffffffffff83161515806102885750805b6102f357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f776e61626c653a207a65726f20616464726573730000000000000000000000604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790556103bf565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790555b505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461046657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600454604080519182526020820183905280517fc42f122800a9ec8a3bcd8a3f4e0e06181103aab11389d0465ff715e695ae2f1c9281900390910190a1600455565b60005473ffffffffffffffffffffffffffffffffffffffff16331461052e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b15801561059f57600080fd5b505afa1580156105b3573d6000803e3d6000fd5b505050506040513d60208110156105c957600080fd5b5051905080821115610626576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180610d5f6029913960400191505060405180910390fd5b600254604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff9092169163a9059cbb916044808201926020929091908290030181600087803b1580156106a057600080fd5b505af11580156106b4573d6000803e3d6000fd5b505050506040513d60208110156106ca57600080fd5b5050604080518281526020810184905281517f56ca301a9219608c91e7bcee90e083c19671d2cdcc96752c7af291cee5f9c8c8929181900390910190a15050565b600080610716610ac5565b9050600061072f60055483610b0d90919063ffffffff16565b6005839055600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156107ab57600080fd5b505afa1580156107bf573d6000803e3d6000fd5b505050506040513d60208110156107d557600080fd5b50516004549091508211156107ec57809350610812565b60045461080f90610803838563ffffffff610b5816565b9063ffffffff610bcb16565b93505b831561094857600254600354604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152602481018890529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561089757600080fd5b505af11580156108ab573d6000803e3d6000fd5b505050506040513d60208110156108c157600080fd5b5050600354604080517ffff6cae9000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169163fff6cae99160048082019260009290919082900301818387803b15801561092f57600080fd5b505af1158015610943573d6000803e3d6000fd5b505050505b604080518281526020810184905280820186905290517fe630ca519fedafd2bd9bd35ad65e198e08398f47c88ca063c406740992bcd1a49181900360600190a150505090565b60015473ffffffffffffffffffffffffffffffffffffffff16338114610a1557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600180549091169055565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b4290565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60045481565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b4f83836040518060400160405280601f81526020017f536166654d6174683a207375627472616374696f6e20756e646572666c6f7700815250610c0d565b90505b92915050565b600082610b6757506000610b52565b82820282848281610b7457fe5b0414610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610d3e6021913960400191505060405180910390fd5b6000610b4f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610cbe565b60008184841115610cb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c7b578181015183820152602001610c63565b50505050905090810190601f168015610ca85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315610c7b578181015183820152602001610c63565b506000838581610d3357fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7752657365727665734469737472696275746f723a20494e53554646494349454e545f42414c414e4345a265627a7a723158202022d54a001152943402de1e84d75432f0ef5571a9d2dcc0becaabb201b7912064736f6c63430005100032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007b35ce522cb72e4077baeb96cb923a5529764a00000000000000000000000000363b2deac84f0100d63c7427335f8350f596bf59000000000000000000000000000000000000000000000000000000000076a700
-----Decoded View---------------
Arg [0] : imx_ (address): 0x7b35Ce522CB72e4077BaeB96Cb923A5529764a00
Arg [1] : xImx_ (address): 0x363B2DEaC84F0100d63C7427335F8350f596bf59
Arg [2] : periodLength_ (uint256): 7776000
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007b35ce522cb72e4077baeb96cb923a5529764a00
Arg [1] : 000000000000000000000000363b2deac84f0100d63c7427335f8350f596bf59
Arg [2] : 000000000000000000000000000000000000000000000000000000000076a700
Deployed Bytecode Sourcemap
12086:1642:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12086:1642:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11009:432;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11009:432:0;;;;;;;;;;;;;;;;;;:::i;:::-;;12182:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13196:162;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13196:162:0;;:::i;13364:267::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13364:267:0;;:::i;12678:512::-;;;:::i;:::-;;;;;;;;;;;;;;;;11490:340;;;:::i;12204:19::-;;;:::i;13637:88::-;;;:::i;10595:20::-;;;:::i;12255:21::-;;;:::i;12227:24::-;;;:::i;10642:27::-;;;:::i;11009:432::-;11933:5;;;;11919:10;:19;11911:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11114:6;11110:324;;;11168:22;;;;;;:34;;;11194:8;11168:34;11160:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11295:5;;;11274:37;;;;;;;11295:5;;;11274:37;;;11326:5;:16;;;;;;;;;;11110:324;;;11399:12;:23;;;;;;;;;;11110:324;11009:432;;;:::o;12182:18::-;;;;;;:::o;13196:162::-;11933:5;;;;11919:10;:19;11911:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13288:12;;13272:46;;;;;;;;;;;;;;;;;;;;;;;;13323:12;:30;13196:162::o;13364:267::-;11933:5;;;;11919:10;:19;11911:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13441:3;;13434:36;;;;;;13464:4;13434:36;;;;;;13419:12;;13441:3;;;13434:21;;:36;;;;;;;;;;;;;;13441:3;13434:36;;;5:2:-1;;;;30:1;27;20:12;5:2;13434:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13434:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13434:36:0;;-1:-1:-1;13483:17:0;;;;13475:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13558:3;;13551:40;;;;;;13572:10;13551:40;;;;;;;;;;;;13558:3;;;;;13551:20;;:40;;;;;;;;;;;;;;;13558:3;;13551:40;;;5:2:-1;;;;30:1;27;20:12;5:2;13551:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13551:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;13601:25:0;;;;;;13551:40;13601:25;;;;;;;;;;;;;;;;;;11986:1;13364:267;:::o;12678:512::-;12713:11;12731:19;12753;:17;:19::i;:::-;12731:41;;12777:16;12796:29;12815:9;;12796:14;:18;;:29;;;;:::i;:::-;12830:9;:26;;;12883:3;;12876:36;;;;;;12906:4;12876:36;;;;;;12777:48;;-1:-1:-1;12861:12:0;;12883:3;;;;;12876:21;;:36;;;;;;;;;;;;;;;12883:3;12876:36;;;5:2:-1;;;;30:1;27;20:12;5:2;12876:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12876:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12876:36:0;12935:12;;12876:36;;-1:-1:-1;12921:26:0;;12917:129;;;12964:7;12955:16;;12917:129;;;13027:12;;12998:42;;:24;:7;13010:11;12998:24;:11;:24;:::i;:::-;:28;:42;:28;:42;:::i;:::-;12989:51;;12917:129;13054:10;;13050:91;;13079:3;;13093:4;;13072:34;;;;;;13079:3;13093:4;;;13072:34;;;;;;;;;;;;13079:3;;;;;13072:20;;:34;;;;;;;;;;;;;;13079:3;;13072:34;;;5:2:-1;;;;30:1;27;20:12;5:2;13072:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13072:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;13123:4:0;;13112:23;;;;;;;;13123:4;;;;;13112:21;;:23;;;;;13123:4;;13112:23;;;;;;;;13123:4;;13112:23;;;5:2:-1;;;;30:1;27;20:12;5:2;13112:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13112:23:0;;;;13050:91;13150:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12678:512;;;;:::o;11490:340::-;11558:12;;;;11610:10;:27;;11602:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11733:5;;;11712:42;;;;;;;11733:5;;;11712:42;;;11765:5;:21;;;;;;;;;;;;;;11797:25;;;;;;;11490:340::o;12204:19::-;;;;;;:::o;13637:88::-;13705:15;13637:88;:::o;10595:20::-;;;;;;:::o;12255:21::-;;;;:::o;12227:24::-;;;;:::o;10642:27::-;;;;;;:::o;1924:137::-;1982:7;2009:44;2013:1;2016;2009:44;;;;;;;;;;;;;;;;;:3;:44::i;:::-;2002:51;;1924:137;;;;;:::o;2785:471::-;2843:7;3088:6;3084:47;;-1:-1:-1;3118:1:0;3111:8;;3084:47;3155:5;;;3159:1;3155;:5;:1;3179:5;;;;;:10;3171:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4443:132;4501:7;4528:39;4532:1;4535;4528:39;;;;;;;;;;;;;;;;;:3;:39::i;2350:192::-;2436:7;2472:12;2464:6;;;;2456:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2456:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2508:5:0;;;2350:192::o;5063:345::-;5149:7;5251:12;5244:5;5236:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;5236:28:0;;5275:9;5291:1;5287;:5;;;;;;;5063:345;-1:-1:-1;;;;;5063:345:0:o
Swarm Source
bzzr://2022d54a001152943402de1e84d75432f0ef5571a9d2dcc0becaabb201b79120
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.