More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
CovalentRewarder
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-07-27 */ // Sources flattened with hardhat v2.0.11 https://hardhat.org // File @boringcrypto/boring-solidity/contracts/interfaces/[email protected] // SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); /// @notice EIP 2612 function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; } // File @boringcrypto/boring-solidity/contracts/libraries/[email protected] pragma solidity 0.6.12; // solhint-disable avoid-low-level-calls library BoringERC20 { bytes4 private constant SIG_SYMBOL = 0x95d89b41; // symbol() bytes4 private constant SIG_NAME = 0x06fdde03; // name() bytes4 private constant SIG_DECIMALS = 0x313ce567; // decimals() bytes4 private constant SIG_TRANSFER = 0xa9059cbb; // transfer(address,uint256) bytes4 private constant SIG_TRANSFER_FROM = 0x23b872dd; // transferFrom(address,address,uint256) function returnDataToString(bytes memory data) internal pure returns (string memory) { if (data.length >= 64) { return abi.decode(data, (string)); } else if (data.length == 32) { uint8 i = 0; while(i < 32 && data[i] != 0) { i++; } bytes memory bytesArray = new bytes(i); for (i = 0; i < 32 && data[i] != 0; i++) { bytesArray[i] = data[i]; } return string(bytesArray); } else { return "???"; } } /// @notice Provides a safe ERC20.symbol version which returns '???' as fallback string. /// @param token The address of the ERC-20 token contract. /// @return (string) Token symbol. function safeSymbol(IERC20 token) internal view returns (string memory) { (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(SIG_SYMBOL)); return success ? returnDataToString(data) : "???"; } /// @notice Provides a safe ERC20.name version which returns '???' as fallback string. /// @param token The address of the ERC-20 token contract. /// @return (string) Token name. function safeName(IERC20 token) internal view returns (string memory) { (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(SIG_NAME)); return success ? returnDataToString(data) : "???"; } /// @notice Provides a safe ERC20.decimals version which returns '18' as fallback value. /// @param token The address of the ERC-20 token contract. /// @return (uint8) Token decimals. function safeDecimals(IERC20 token) internal view returns (uint8) { (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(SIG_DECIMALS)); return success && data.length == 32 ? abi.decode(data, (uint8)) : 18; } /// @notice Provides a safe ERC20.transfer version for different ERC-20 implementations. /// Reverts on a failed transfer. /// @param token The address of the ERC-20 token. /// @param to Transfer tokens to. /// @param amount The token amount. function safeTransfer( IERC20 token, address to, uint256 amount ) internal { (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(SIG_TRANSFER, to, amount)); require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: Transfer failed"); } /// @notice Provides a safe ERC20.transferFrom version for different ERC-20 implementations. /// Reverts on a failed transfer. /// @param token The address of the ERC-20 token. /// @param from Transfer tokens from. /// @param to Transfer tokens to. /// @param amount The token amount. function safeTransferFrom( IERC20 token, address from, address to, uint256 amount ) internal { (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(SIG_TRANSFER_FROM, from, to, amount)); require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: TransferFrom failed"); } } // File contracts/interfaces/IRewarder.sol pragma solidity 0.6.12; interface IRewarder { using BoringERC20 for IERC20; function onSushiReward(uint256 pid, address user, address recipient, uint256 sushiAmount, uint256 newLpAmount) external; function pendingTokens(uint256 pid, address user, uint256 sushiAmount) external view returns (IERC20[] memory, uint256[] memory); } // File @boringcrypto/boring-solidity/contracts/libraries/[email protected] pragma solidity 0.6.12; /// @notice A library for performing overflow-/underflow-safe math, /// updated with awesomeness from of DappHub (https://github.com/dapphub/ds-math). library BoringMath { function add(uint256 a, uint256 b) internal pure returns (uint256 c) { require((c = a + b) >= b, "BoringMath: Add Overflow"); } function sub(uint256 a, uint256 b) internal pure returns (uint256 c) { require((c = a - b) <= a, "BoringMath: Underflow"); } function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { require(b == 0 || (c = a * b) / b == a, "BoringMath: Mul Overflow"); } function to128(uint256 a) internal pure returns (uint128 c) { require(a <= uint128(-1), "BoringMath: uint128 Overflow"); c = uint128(a); } function to64(uint256 a) internal pure returns (uint64 c) { require(a <= uint64(-1), "BoringMath: uint64 Overflow"); c = uint64(a); } function to32(uint256 a) internal pure returns (uint32 c) { require(a <= uint32(-1), "BoringMath: uint32 Overflow"); c = uint32(a); } } /// @notice A library for performing overflow-/underflow-safe addition and subtraction on uint128. library BoringMath128 { function add(uint128 a, uint128 b) internal pure returns (uint128 c) { require((c = a + b) >= b, "BoringMath: Add Overflow"); } function sub(uint128 a, uint128 b) internal pure returns (uint128 c) { require((c = a - b) <= a, "BoringMath: Underflow"); } } /// @notice A library for performing overflow-/underflow-safe addition and subtraction on uint64. library BoringMath64 { function add(uint64 a, uint64 b) internal pure returns (uint64 c) { require((c = a + b) >= b, "BoringMath: Add Overflow"); } function sub(uint64 a, uint64 b) internal pure returns (uint64 c) { require((c = a - b) <= a, "BoringMath: Underflow"); } } /// @notice A library for performing overflow-/underflow-safe addition and subtraction on uint32. library BoringMath32 { function add(uint32 a, uint32 b) internal pure returns (uint32 c) { require((c = a + b) >= b, "BoringMath: Add Overflow"); } function sub(uint32 a, uint32 b) internal pure returns (uint32 c) { require((c = a - b) <= a, "BoringMath: Underflow"); } } // File @boringcrypto/boring-solidity/contracts/[email protected] pragma solidity 0.6.12; // Audit on 5-Jan-2021 by Keno and BoringCrypto // Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol + Claimable.sol // Edited by BoringCrypto contract BoringOwnableData { address public owner; address public pendingOwner; } contract BoringOwnable is BoringOwnableData { event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /// @notice `owner` defaults to msg.sender on construction. constructor() public { owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } /// @notice Transfers ownership to `newOwner`. Either directly or claimable by the new pending owner. /// Can only be invoked by the current `owner`. /// @param newOwner Address of the new owner. /// @param direct True if `newOwner` should be set immediately. False if `newOwner` needs to use `claimOwnership`. /// @param renounce Allows the `newOwner` to be `address(0)` if `direct` and `renounce` is True. Has no effect otherwise. 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; pendingOwner = address(0); } else { // Effects pendingOwner = newOwner; } } /// @notice Needs to be called by `pendingOwner` to claim ownership. 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); } /// @notice Only allows the `owner` to execute the function. modifier onlyOwner() { require(msg.sender == owner, "Ownable: caller is not the owner"); _; } } // File contracts/mocks/CloneRewarderTime.sol pragma solidity 0.6.12; pragma experimental ABIEncoderV2; interface IMasterChefV2 { function lpToken(uint256 pid) external view returns (IERC20 _lpToken); } /// @author @0xKeno contract CovalentRewarder is IRewarder, BoringOwnable{ using BoringMath for uint256; using BoringMath128 for uint128; using BoringERC20 for IERC20; IERC20 public rewardToken; /// @notice Info of each MCV2 user. /// `amount` LP token amount the user has provided. /// `rewardDebt` The amount of SUSHI entitled to the user. struct UserInfo { uint256 amount; uint256 rewardDebt; } /// @notice Info of each MCV2 pool. /// `allocPoint` The amount of allocation points assigned to the pool. /// Also known as the amount of SUSHI to distribute per block. struct PoolInfo { uint128 accSushiPerShare; uint64 lastRewardTime; } /// @notice Info of each pool. mapping (uint256 => PoolInfo) public poolInfo; /// @notice Info of each user that stakes LP tokens. mapping (uint256 => mapping (address => UserInfo)) public userInfo; uint256 public rewardPerSecond; IERC20 public masterLpToken; uint256 private constant ACC_TOKEN_PRECISION = 1e12; address public immutable MASTERCHEF_V2; event LogOnReward(address indexed user, uint256 indexed pid, uint256 amount, address indexed to); event LogPoolAddition(uint256 indexed pid, uint256 allocPoint); event LogSetPool(uint256 indexed pid, uint256 allocPoint); event LogUpdatePool(uint256 indexed pid, uint64 lastRewardTime, uint256 lpSupply, uint256 accSushiPerShare); event LogRewardPerSecond(uint256 rewardPerSecond); event LogInit(); constructor (address _MASTERCHEF_V2) public { MASTERCHEF_V2 = _MASTERCHEF_V2; } /// @notice Serves as the constructor for clones, as clones can't have a regular constructor /// @dev `data` is abi encoded in the format: (IERC20 collateral, IERC20 asset, IOracle oracle, bytes oracleData) function init(bytes calldata data) public payable { require(rewardToken == IERC20(0), "Rewarder: already initialized"); (rewardToken, owner, rewardPerSecond, masterLpToken) = abi.decode(data, (IERC20, address, uint256, IERC20)); require(rewardToken != IERC20(0), "Rewarder: bad token"); emit LogInit(); } function onSushiReward (uint256 pid, address _user, address to, uint256, uint256 lpToken) onlyMCV2 override external { require(IMasterChefV2(MASTERCHEF_V2).lpToken(pid) == masterLpToken); PoolInfo memory pool = updatePool(pid); UserInfo storage user = userInfo[pid][_user]; uint256 pending; if (user.amount > 0) { pending = (user.amount.mul(pool.accSushiPerShare) / ACC_TOKEN_PRECISION).sub( user.rewardDebt ); rewardToken.safeTransfer(to, pending); } user.amount = lpToken; user.rewardDebt = lpToken.mul(pool.accSushiPerShare) / ACC_TOKEN_PRECISION; emit LogOnReward(_user, pid, pending, to); } function pendingTokens(uint256 pid, address user, uint256) override external view returns (IERC20[] memory rewardTokens, uint256[] memory rewardAmounts) { IERC20[] memory _rewardTokens = new IERC20[](1); _rewardTokens[0] = (rewardToken); uint256[] memory _rewardAmounts = new uint256[](1); _rewardAmounts[0] = pendingToken(pid, user); return (_rewardTokens, _rewardAmounts); } /// @notice Sets the sushi per second to be distributed. Can only be called by the owner. /// @param _rewardPerSecond The amount of Sushi to be distributed per second. function setRewardPerSecond(uint256 _rewardPerSecond) public onlyOwner { rewardPerSecond = _rewardPerSecond; emit LogRewardPerSecond(_rewardPerSecond); } modifier onlyMCV2 { require( msg.sender == MASTERCHEF_V2, "Only MCV2 can call this function." ); _; } /// @notice View function to see pending Token /// @param _pid The index of the pool. See `poolInfo`. /// @param _user Address of user. /// @return pending SUSHI reward for a given user. function pendingToken(uint256 _pid, address _user) public view returns (uint256 pending) { PoolInfo memory pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][_user]; uint256 accSushiPerShare = pool.accSushiPerShare; uint256 lpSupply = IMasterChefV2(MASTERCHEF_V2).lpToken(_pid).balanceOf(MASTERCHEF_V2); if (block.timestamp > pool.lastRewardTime && lpSupply != 0) { uint256 time = block.timestamp.sub(pool.lastRewardTime); uint256 sushiReward = time.mul(rewardPerSecond); accSushiPerShare = accSushiPerShare.add(sushiReward.mul(ACC_TOKEN_PRECISION) / lpSupply); } pending = (user.amount.mul(accSushiPerShare) / ACC_TOKEN_PRECISION).sub(user.rewardDebt); } /// @notice Update reward variables of the given pool. /// @param pid The index of the pool. See `poolInfo`. /// @return pool Returns the pool that was updated. function updatePool(uint256 pid) public returns (PoolInfo memory pool) { pool = poolInfo[pid]; if (block.timestamp > pool.lastRewardTime) { uint256 lpSupply = IMasterChefV2(MASTERCHEF_V2).lpToken(pid).balanceOf(MASTERCHEF_V2); if (lpSupply > 0) { uint256 time = block.timestamp.sub(pool.lastRewardTime); uint256 sushiReward = time.mul(rewardPerSecond); pool.accSushiPerShare = pool.accSushiPerShare.add((sushiReward.mul(ACC_TOKEN_PRECISION) / lpSupply).to128()); } pool.lastRewardTime = block.timestamp.to64(); poolInfo[pid] = pool; emit LogUpdatePool(pid, pool.lastRewardTime, lpSupply, pool.accSushiPerShare); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_MASTERCHEF_V2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"LogInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"LogOnReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"}],"name":"LogPoolAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rewardPerSecond","type":"uint256"}],"name":"LogRewardPerSecond","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"}],"name":"LogSetPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"indexed":false,"internalType":"uint256","name":"lpSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"accSushiPerShare","type":"uint256"}],"name":"LogUpdatePool","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"},{"inputs":[],"name":"MASTERCHEF_V2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"init","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"masterLpToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"lpToken","type":"uint256"}],"name":"onSushiReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingToken","outputs":[{"internalType":"uint256","name":"pending","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"pendingTokens","outputs":[{"internalType":"contract IERC20[]","name":"rewardTokens","type":"address[]"},{"internalType":"uint256[]","name":"rewardAmounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"uint128","name":"accSushiPerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardPerSecond","type":"uint256"}],"name":"setRewardPerSecond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"}],"name":"updatePool","outputs":[{"components":[{"internalType":"uint128","name":"accSushiPerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"}],"internalType":"struct CovalentRewarder.PoolInfo","name":"pool","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60a060405234801561001057600080fd5b506040516117c93803806117c983398101604081905261002f91610083565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360601b6001600160601b0319166080526100b1565b600060208284031215610094578081fd5b81516001600160a01b03811681146100aa578182fd5b9392505050565b60805160601c6116dd6100ec60003980610497528061052c528061083152806108c65280610a8f5280610b265280610b8152506116dd6000f3fe6080604052600436106100f35760003560e01c80638bf637421161008a578063a8594dab11610059578063a8594dab1461028d578063d63b3c49146102a2578063e30c3978146102d0578063f7c618c1146102e5576100f3565b80638bf63742146102155780638da5cb5b146102355780638f10369a1461024a57806393f1a40b1461025f576100f3565b80634e71e0c8116100c65780634e71e0c81461019157806351eb05a6146101a65780635a894421146101d357806366da5815146101f5576100f3565b8063078dfbe7146100f85780631526fe271461011a57806348e43af4146101515780634ddf47d41461017e575b600080fd5b34801561010457600080fd5b50610118610113366004611045565b6102fa565b005b34801561012657600080fd5b5061013a61013536600461118d565b6103e9565b60405161014892919061161c565b60405180910390f35b34801561015d57600080fd5b5061017161016c3660046111bd565b610417565b604051610148919061163f565b61011861018c3660046110b2565b610676565b34801561019d57600080fd5b5061011861073c565b3480156101b257600080fd5b506101c66101c136600461118d565b6107c9565b60405161014891906115f2565b3480156101df57600080fd5b506101e8610a8d565b60405161014891906112b5565b34801561020157600080fd5b5061011861021036600461118d565b610ab1565b34801561022157600080fd5b506101186102303660046111ec565b610b1b565b34801561024157600080fd5b506101e8610d1e565b34801561025657600080fd5b50610171610d2d565b34801561026b57600080fd5b5061027f61027a3660046111bd565b610d33565b604051610148929190611648565b34801561029957600080fd5b506101e8610d57565b3480156102ae57600080fd5b506102c26102bd36600461123d565b610d66565b6040516101489291906112e2565b3480156102dc57600080fd5b506101e8610e11565b3480156102f157600080fd5b506101e8610e20565b6000546001600160a01b0316331461032d5760405162461bcd60e51b8152600401610324906114b6565b60405180910390fd5b81156103c8576001600160a01b0383161515806103475750805b6103635760405162461bcd60e51b815260040161032490611419565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b0319918216179091556001805490911690556103e4565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6003602052600090815260409020546001600160801b03811690600160801b900467ffffffffffffffff1682565b600061042161102e565b5060008381526003602090815260408083208151808301835290546001600160801b038082168352600160801b90910467ffffffffffffffff168285015287855260048085528386206001600160a01b0389811688529552838620835194516378ed5d1f60e01b815293969095949092169391927f0000000000000000000000000000000000000000000000000000000000000000909216916378ed5d1f916104cc918b910161163f565b60206040518083038186803b1580156104e457600080fd5b505afa1580156104f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051c919061111f565b6001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161056791906112b5565b60206040518083038186803b15801561057f57600080fd5b505afa158015610593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b791906111a5565b9050836020015167ffffffffffffffff16421180156105d557508015155b156106405760006105fd856020015167ffffffffffffffff1642610e2f90919063ffffffff16565b9050600061061660055483610e5890919063ffffffff16565b905061063b8361062b8364e8d4a51000610e58565b8161063257fe5b86919004610e8f565b935050505b6001830154835461066b919064e8d4a510009061065d9086610e58565b8161066457fe5b0490610e2f565b979650505050505050565b6002546001600160a01b03161561069f5760405162461bcd60e51b81526004016103249061158e565b6106ab8183018361113b565b600680546001600160a01b03199081166001600160a01b0393841617909155600592909255600080548316938216939093179092556002805490911692821692909217918290551661070f5760405162461bcd60e51b8152600401610324906115c5565b6040517f98a9bd3b7a617581fc53b1e2992534e0e0cb5091c9d44aa1a7fc978f706caa8390600090a15050565b6001546001600160a01b03163381146107675760405162461bcd60e51b8152600401610324906114eb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6107d161102e565b506000818152600360209081526040918290208251808401909352546001600160801b0381168352600160801b900467ffffffffffffffff16908201819052421115610a88576040516378ed5d1f60e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906378ed5d1f9061086690869060040161163f565b60206040518083038186803b15801561087e57600080fd5b505afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b6919061111f565b6001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161090191906112b5565b60206040518083038186803b15801561091957600080fd5b505afa15801561092d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095191906111a5565b905080156109d957600061097c836020015167ffffffffffffffff1642610e2f90919063ffffffff16565b9050600061099560055483610e5890919063ffffffff16565b90506109cb6109ba846109ad8464e8d4a51000610e58565b816109b457fe5b04610eb2565b85516001600160801b031690610edf565b6001600160801b0316845250505b6109e242610f0e565b67ffffffffffffffff9081166020848101918252600086815260039091526040908190208551815493516fffffffffffffffffffffffffffffffff199094166001600160801b0382161767ffffffffffffffff60801b1916600160801b958516959095029490941790555185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad35392610a7e9290918691611656565b60405180910390a2505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03163314610adb5760405162461bcd60e51b8152600401610324906114b6565b60058190556040517fde89cb17ac7f58f94792b3e91e086ed85403819c24ceea882491f960ccb1a27890610b1090839061163f565b60405180910390a150565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b635760405162461bcd60e51b8152600401610324906113d8565b6006546040516378ed5d1f60e01b81526001600160a01b03918216917f000000000000000000000000000000000000000000000000000000000000000016906378ed5d1f90610bb690899060040161163f565b60206040518083038186803b158015610bce57600080fd5b505afa158015610be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c06919061111f565b6001600160a01b031614610c1957600080fd5b610c2161102e565b610c2a866107c9565b60008781526004602090815260408083206001600160a01b038a168452909152812080549293509115610c9857600182015483518354610c7e929164e8d4a510009161065d916001600160801b0316610e58565b600254909150610c98906001600160a01b03168783610f38565b838255825164e8d4a5100090610cb89086906001600160801b0316610e58565b81610cbf57fe5b048260010181905550856001600160a01b031688886001600160a01b03167f2ece88ca2bc08dd018db50e1d25a20bf1241e5fab1c396caa51f01a54bd2f75b84604051610d0c919061163f565b60405180910390a45050505050505050565b6000546001600160a01b031681565b60055481565b60046020908152600092835260408084209091529082529020805460019091015482565b6006546001600160a01b031681565b6040805160018082528183019092526060918291829160208083019080368337505060025482519293506001600160a01b031691839150600090610da657fe5b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252606091816020016020820280368337019050509050610ded8787610417565b81600081518110610dfa57fe5b602090810291909101015290969095509350505050565b6001546001600160a01b031681565b6002546001600160a01b031681565b80820382811115610e525760405162461bcd60e51b815260040161032490611372565b92915050565b6000811580610e7357505080820282828281610e7057fe5b04145b610e525760405162461bcd60e51b815260040161032490611557565b81810181811015610e525760405162461bcd60e51b81526004016103249061147f565b60006001600160801b03821115610edb5760405162461bcd60e51b815260040161032490611448565b5090565b8181016001600160801b038083169082161015610e525760405162461bcd60e51b81526004016103249061147f565b600067ffffffffffffffff821115610edb5760405162461bcd60e51b815260040161032490611520565b60006060846001600160a01b031663a9059cbb60e01b8585604051602401610f619291906112c9565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610f9f919061127c565b6000604051808303816000865af19150503d8060008114610fdc576040519150601f19603f3d011682016040523d82523d6000602084013e610fe1565b606091505b509150915081801561100b57508051158061100b57508080602001905181019061100b919061108f565b6110275760405162461bcd60e51b8152600401610324906113a1565b5050505050565b604080518082019091526000808252602082015290565b600080600060608486031215611059578283fd5b833561106481611681565b9250602084013561107481611699565b9150604084013561108481611699565b809150509250925092565b6000602082840312156110a0578081fd5b81516110ab81611699565b9392505050565b600080602083850312156110c4578182fd5b823567ffffffffffffffff808211156110db578384fd5b818501915085601f8301126110ee578384fd5b8135818111156110fc578485fd5b86602082850101111561110d578485fd5b60209290920196919550909350505050565b600060208284031215611130578081fd5b81516110ab81611681565b60008060008060808587031215611150578081fd5b843561115b81611681565b9350602085013561116b81611681565b925060408501359150606085013561118281611681565b939692955090935050565b60006020828403121561119e578081fd5b5035919050565b6000602082840312156111b6578081fd5b5051919050565b600080604083850312156111cf578182fd5b8235915060208301356111e181611681565b809150509250929050565b600080600080600060a08688031215611203578081fd5b85359450602086013561121581611681565b9350604086013561122581611681565b94979396509394606081013594506080013592915050565b600080600060608486031215611251578283fd5b83359250602084013561126381611681565b929592945050506040919091013590565b815260200190565b60008251815b8181101561129c5760208186018101518583015201611282565b818111156112aa5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b828110156113245781516001600160a01b0316845292840192908401906001016112ff565b5050508381038285015280855161133b818461163f565b91508387019250845b8181101561136557611357838551611274565b938501939250600101611344565b5090979650505050505050565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e6040820152601760f91b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b6020808252601d908201527f52657761726465723a20616c726561647920696e697469616c697a6564000000604082015260600190565b6020808252601390820152722932bbb0b93232b91d103130b2103a37b5b2b760691b604082015260600190565b81516001600160801b0316815260209182015167ffffffffffffffff169181019190915260400190565b6001600160801b0392909216825267ffffffffffffffff16602082015260400190565b90815260200190565b918252602082015260400190565b67ffffffffffffffff93909316835260208301919091526001600160801b0316604082015260600190565b6001600160a01b038116811461169657600080fd5b50565b801515811461169657600080fdfea2646970667358221220e242eeaeebcd12b164ade5437febc8d61b6c147995ecee6465170ae6b10036b764736f6c634300060c0033000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d
Deployed Bytecode
0x6080604052600436106100f35760003560e01c80638bf637421161008a578063a8594dab11610059578063a8594dab1461028d578063d63b3c49146102a2578063e30c3978146102d0578063f7c618c1146102e5576100f3565b80638bf63742146102155780638da5cb5b146102355780638f10369a1461024a57806393f1a40b1461025f576100f3565b80634e71e0c8116100c65780634e71e0c81461019157806351eb05a6146101a65780635a894421146101d357806366da5815146101f5576100f3565b8063078dfbe7146100f85780631526fe271461011a57806348e43af4146101515780634ddf47d41461017e575b600080fd5b34801561010457600080fd5b50610118610113366004611045565b6102fa565b005b34801561012657600080fd5b5061013a61013536600461118d565b6103e9565b60405161014892919061161c565b60405180910390f35b34801561015d57600080fd5b5061017161016c3660046111bd565b610417565b604051610148919061163f565b61011861018c3660046110b2565b610676565b34801561019d57600080fd5b5061011861073c565b3480156101b257600080fd5b506101c66101c136600461118d565b6107c9565b60405161014891906115f2565b3480156101df57600080fd5b506101e8610a8d565b60405161014891906112b5565b34801561020157600080fd5b5061011861021036600461118d565b610ab1565b34801561022157600080fd5b506101186102303660046111ec565b610b1b565b34801561024157600080fd5b506101e8610d1e565b34801561025657600080fd5b50610171610d2d565b34801561026b57600080fd5b5061027f61027a3660046111bd565b610d33565b604051610148929190611648565b34801561029957600080fd5b506101e8610d57565b3480156102ae57600080fd5b506102c26102bd36600461123d565b610d66565b6040516101489291906112e2565b3480156102dc57600080fd5b506101e8610e11565b3480156102f157600080fd5b506101e8610e20565b6000546001600160a01b0316331461032d5760405162461bcd60e51b8152600401610324906114b6565b60405180910390fd5b81156103c8576001600160a01b0383161515806103475750805b6103635760405162461bcd60e51b815260040161032490611419565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b0319918216179091556001805490911690556103e4565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6003602052600090815260409020546001600160801b03811690600160801b900467ffffffffffffffff1682565b600061042161102e565b5060008381526003602090815260408083208151808301835290546001600160801b038082168352600160801b90910467ffffffffffffffff168285015287855260048085528386206001600160a01b0389811688529552838620835194516378ed5d1f60e01b815293969095949092169391927f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d909216916378ed5d1f916104cc918b910161163f565b60206040518083038186803b1580156104e457600080fd5b505afa1580156104f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051c919061111f565b6001600160a01b03166370a082317f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d6040518263ffffffff1660e01b815260040161056791906112b5565b60206040518083038186803b15801561057f57600080fd5b505afa158015610593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b791906111a5565b9050836020015167ffffffffffffffff16421180156105d557508015155b156106405760006105fd856020015167ffffffffffffffff1642610e2f90919063ffffffff16565b9050600061061660055483610e5890919063ffffffff16565b905061063b8361062b8364e8d4a51000610e58565b8161063257fe5b86919004610e8f565b935050505b6001830154835461066b919064e8d4a510009061065d9086610e58565b8161066457fe5b0490610e2f565b979650505050505050565b6002546001600160a01b03161561069f5760405162461bcd60e51b81526004016103249061158e565b6106ab8183018361113b565b600680546001600160a01b03199081166001600160a01b0393841617909155600592909255600080548316938216939093179092556002805490911692821692909217918290551661070f5760405162461bcd60e51b8152600401610324906115c5565b6040517f98a9bd3b7a617581fc53b1e2992534e0e0cb5091c9d44aa1a7fc978f706caa8390600090a15050565b6001546001600160a01b03163381146107675760405162461bcd60e51b8152600401610324906114eb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6107d161102e565b506000818152600360209081526040918290208251808401909352546001600160801b0381168352600160801b900467ffffffffffffffff16908201819052421115610a88576040516378ed5d1f60e01b81526000906001600160a01b037f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d16906378ed5d1f9061086690869060040161163f565b60206040518083038186803b15801561087e57600080fd5b505afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b6919061111f565b6001600160a01b03166370a082317f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d6040518263ffffffff1660e01b815260040161090191906112b5565b60206040518083038186803b15801561091957600080fd5b505afa15801561092d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095191906111a5565b905080156109d957600061097c836020015167ffffffffffffffff1642610e2f90919063ffffffff16565b9050600061099560055483610e5890919063ffffffff16565b90506109cb6109ba846109ad8464e8d4a51000610e58565b816109b457fe5b04610eb2565b85516001600160801b031690610edf565b6001600160801b0316845250505b6109e242610f0e565b67ffffffffffffffff9081166020848101918252600086815260039091526040908190208551815493516fffffffffffffffffffffffffffffffff199094166001600160801b0382161767ffffffffffffffff60801b1916600160801b958516959095029490941790555185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad35392610a7e9290918691611656565b60405180910390a2505b919050565b7f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d81565b6000546001600160a01b03163314610adb5760405162461bcd60e51b8152600401610324906114b6565b60058190556040517fde89cb17ac7f58f94792b3e91e086ed85403819c24ceea882491f960ccb1a27890610b1090839061163f565b60405180910390a150565b336001600160a01b037f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d1614610b635760405162461bcd60e51b8152600401610324906113d8565b6006546040516378ed5d1f60e01b81526001600160a01b03918216917f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d16906378ed5d1f90610bb690899060040161163f565b60206040518083038186803b158015610bce57600080fd5b505afa158015610be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c06919061111f565b6001600160a01b031614610c1957600080fd5b610c2161102e565b610c2a866107c9565b60008781526004602090815260408083206001600160a01b038a168452909152812080549293509115610c9857600182015483518354610c7e929164e8d4a510009161065d916001600160801b0316610e58565b600254909150610c98906001600160a01b03168783610f38565b838255825164e8d4a5100090610cb89086906001600160801b0316610e58565b81610cbf57fe5b048260010181905550856001600160a01b031688886001600160a01b03167f2ece88ca2bc08dd018db50e1d25a20bf1241e5fab1c396caa51f01a54bd2f75b84604051610d0c919061163f565b60405180910390a45050505050505050565b6000546001600160a01b031681565b60055481565b60046020908152600092835260408084209091529082529020805460019091015482565b6006546001600160a01b031681565b6040805160018082528183019092526060918291829160208083019080368337505060025482519293506001600160a01b031691839150600090610da657fe5b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252606091816020016020820280368337019050509050610ded8787610417565b81600081518110610dfa57fe5b602090810291909101015290969095509350505050565b6001546001600160a01b031681565b6002546001600160a01b031681565b80820382811115610e525760405162461bcd60e51b815260040161032490611372565b92915050565b6000811580610e7357505080820282828281610e7057fe5b04145b610e525760405162461bcd60e51b815260040161032490611557565b81810181811015610e525760405162461bcd60e51b81526004016103249061147f565b60006001600160801b03821115610edb5760405162461bcd60e51b815260040161032490611448565b5090565b8181016001600160801b038083169082161015610e525760405162461bcd60e51b81526004016103249061147f565b600067ffffffffffffffff821115610edb5760405162461bcd60e51b815260040161032490611520565b60006060846001600160a01b031663a9059cbb60e01b8585604051602401610f619291906112c9565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610f9f919061127c565b6000604051808303816000865af19150503d8060008114610fdc576040519150601f19603f3d011682016040523d82523d6000602084013e610fe1565b606091505b509150915081801561100b57508051158061100b57508080602001905181019061100b919061108f565b6110275760405162461bcd60e51b8152600401610324906113a1565b5050505050565b604080518082019091526000808252602082015290565b600080600060608486031215611059578283fd5b833561106481611681565b9250602084013561107481611699565b9150604084013561108481611699565b809150509250925092565b6000602082840312156110a0578081fd5b81516110ab81611699565b9392505050565b600080602083850312156110c4578182fd5b823567ffffffffffffffff808211156110db578384fd5b818501915085601f8301126110ee578384fd5b8135818111156110fc578485fd5b86602082850101111561110d578485fd5b60209290920196919550909350505050565b600060208284031215611130578081fd5b81516110ab81611681565b60008060008060808587031215611150578081fd5b843561115b81611681565b9350602085013561116b81611681565b925060408501359150606085013561118281611681565b939692955090935050565b60006020828403121561119e578081fd5b5035919050565b6000602082840312156111b6578081fd5b5051919050565b600080604083850312156111cf578182fd5b8235915060208301356111e181611681565b809150509250929050565b600080600080600060a08688031215611203578081fd5b85359450602086013561121581611681565b9350604086013561122581611681565b94979396509394606081013594506080013592915050565b600080600060608486031215611251578283fd5b83359250602084013561126381611681565b929592945050506040919091013590565b815260200190565b60008251815b8181101561129c5760208186018101518583015201611282565b818111156112aa5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b828110156113245781516001600160a01b0316845292840192908401906001016112ff565b5050508381038285015280855161133b818461163f565b91508387019250845b8181101561136557611357838551611274565b938501939250600101611344565b5090979650505050505050565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e6040820152601760f91b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b6020808252601d908201527f52657761726465723a20616c726561647920696e697469616c697a6564000000604082015260600190565b6020808252601390820152722932bbb0b93232b91d103130b2103a37b5b2b760691b604082015260600190565b81516001600160801b0316815260209182015167ffffffffffffffff169181019190915260400190565b6001600160801b0392909216825267ffffffffffffffff16602082015260400190565b90815260200190565b918252602082015260400190565b67ffffffffffffffff93909316835260208301919091526001600160801b0316604082015260600190565b6001600160a01b038116811461169657600080fd5b50565b801515811461169657600080fdfea2646970667358221220e242eeaeebcd12b164ade5437febc8d61b6c147995ecee6465170ae6b10036b764736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d
-----Decoded View---------------
Arg [0] : _MASTERCHEF_V2 (address): 0xEF0881eC094552b2e128Cf945EF17a6752B4Ec5d
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d
Deployed Bytecode Sourcemap
10252:5925:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8878:506;;;;;;;;;;-1:-1:-1;8878:506:0;;;;;:::i;:::-;;:::i;:::-;;11025:45;;;;;;;;;;-1:-1:-1;11025:45:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;14439:773;;;;;;;;;;-1:-1:-1;14439:773:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12140:345::-;;;;;;:::i;:::-;;:::i;9466:340::-;;;;;;;;;;;;;:::i;15396:778::-;;;;;;;;;;-1:-1:-1;15396:778:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11345:38::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13881:176::-;;;;;;;;;;-1:-1:-1;13881:176:0;;;;;:::i;:::-;;:::i;12493:764::-;;;;;;;;;;-1:-1:-1;12493:764:0;;;;;:::i;:::-;;:::i;8024:20::-;;;;;;;;;;;;;:::i;11214:30::-;;;;;;;;;;;;;:::i;11139:66::-;;;;;;;;;;-1:-1:-1;11139:66:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;11251:27::-;;;;;;;;;;;;;:::i;13269:426::-;;;;;;;;;;-1:-1:-1;13269:426:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;8051:27::-;;;;;;;;;;;;;:::i;10423:25::-;;;;;;;;;;;;;:::i;8878:506::-;9934:5;;-1:-1:-1;;;;;9934:5:0;9920:10;:19;9912:64;;;;-1:-1:-1;;;9912:64:0;;;;;;;:::i;:::-;;;;;;;;;9017:6:::1;9013:364;;;-1:-1:-1::0;;;;;9071:22:0;::::1;::::0;::::1;::::0;:34:::1;;;9097:8;9071:34;9063:68;;;;-1:-1:-1::0;;;9063:68:0::1;;;;;;;:::i;:::-;9198:5;::::0;;9177:37:::1;::::0;-1:-1:-1;;;;;9177:37:0;;::::1;::::0;9198:5;::::1;::::0;9177:37:::1;::::0;::::1;9229:5;:16:::0;;-1:-1:-1;;;;;9229:16:0;::::1;-1:-1:-1::0;;;;;;9229:16:0;;::::1;;::::0;;;;9260:25;;;;::::1;::::0;;9013:364:::1;;;9342:12;:23:::0;;-1:-1:-1;;;;;;9342:23:0::1;-1:-1:-1::0;;;;;9342:23:0;::::1;;::::0;;9013:364:::1;8878:506:::0;;;:::o;11025:45::-;;;;;;;;;;;;-1:-1:-1;;;;;11025:45:0;;;-1:-1:-1;;;11025:45:0;;;;;:::o;14439:773::-;14511:15;14539:20;;:::i;:::-;-1:-1:-1;14562:14:0;;;;:8;:14;;;;;;;;14539:37;;;;;;;;;-1:-1:-1;;;;;14539:37:0;;;;;-1:-1:-1;;;14539:37:0;;;;;;;;;14611:14;;;:8;:14;;;;;;-1:-1:-1;;;;;14611:21:0;;;;;;;;;;14670;;14721:42;;-1:-1:-1;;;14721:42:0;;14539:37;;14611:21;;14643:48;;;;;14562:14;;14735:13;14721:36;;;;;;:42;;14562:14;;14721:42;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14721:52:0;;14774:13;14721:67;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14702:86;;14821:4;:19;;;14803:37;;:15;:37;:54;;;;-1:-1:-1;14844:13:0;;;14803:54;14799:307;;;14874:12;14889:40;14909:4;:19;;;14889:40;;:15;:19;;:40;;;;:::i;:::-;14874:55;;14944:19;14966:25;14975:15;;14966:4;:8;;:25;;;;:::i;:::-;14944:47;-1:-1:-1;15025:69:0;15085:8;15046:36;14944:47;11332:4;15046:15;:36::i;:::-;:47;;;;;15025:16;;15046:47;;15025:20;:69::i;:::-;15006:88;;14799:307;;;15188:15;;;;15127:11;;15126:78;;15188:15;11332:4;;15127:33;;15143:16;15127:15;:33::i;:::-;:55;;;;;;;15126:61;:78::i;:::-;15116:88;14439:773;-1:-1:-1;;;;;;;14439:773:0:o;12140:345::-;12209:11;;-1:-1:-1;;;;;12209:11:0;:24;12201:66;;;;-1:-1:-1;;;12201:66:0;;;;;;;:::i;:::-;12333:52;;;;12344:4;12333:52;:::i;:::-;12316:13;12278:107;;-1:-1:-1;;;;;;12278:107:0;;;-1:-1:-1;;;;;12278:107:0;;;;;;;12299:15;12278:107;;;;-1:-1:-1;12278:107:0;;;;;;;;;;;;;;12279:11;12278:107;;;;;;;;;;;;;;;;12404:11;12396:56;;;;-1:-1:-1;;;12396:56:0;;;;;;;:::i;:::-;12468:9;;;;;;;12140:345;;:::o;9466:340::-;9534:12;;-1:-1:-1;;;;;9534:12:0;9586:10;:27;;9578:72;;;;-1:-1:-1;;;9578:72:0;;;;;;;:::i;:::-;9709:5;;;9688:42;;-1:-1:-1;;;;;9688:42:0;;;;9709:5;;;9688:42;;;9741:5;:21;;-1:-1:-1;;;;;9741:21:0;;;-1:-1:-1;;;;;;9741:21:0;;;;;;;9773:25;;;;;;;9466:340::o;15396:778::-;15445:20;;:::i;:::-;-1:-1:-1;15485:13:0;;;;:8;:13;;;;;;;;;15478:20;;;;;;;;;-1:-1:-1;;;;;15478:20:0;;;;-1:-1:-1;;;15478:20:0;;;;;;;;;;15513:15;:37;15509:658;;;15586:41;;-1:-1:-1;;;15586:41:0;;15567:16;;-1:-1:-1;;;;;15600:13:0;15586:36;;;;:41;;15623:3;;15586:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15586:51:0;;15638:13;15586:66;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15567:85;-1:-1:-1;15673:12:0;;15669:301;;15706:12;15721:40;15741:4;:19;;;15721:40;;:15;:19;;:40;;;;:::i;:::-;15706:55;;15780:19;15802:25;15811:15;;15802:4;:8;;:25;;;;:::i;:::-;15780:47;-1:-1:-1;15870:84:0;15896:57;15936:8;15897:36;15780:47;11332:4;15897:15;:36::i;:::-;:47;;;;;;15896:55;:57::i;:::-;15870:21;;-1:-1:-1;;;;;15870:25:0;;;:84::i;:::-;-1:-1:-1;;;;;15846:108:0;;;-1:-1:-1;;15669:301:0;16006:22;:15;:20;:22::i;:::-;15984:44;;;;:19;;;;:44;;;16043:13;;;;:8;:13;;;;;;;;:20;;;;;;-1:-1:-1;;16043:20:0;;;-1:-1:-1;;;;;16043:20:0;;;-1:-1:-1;;;;16043:20:0;-1:-1:-1;;;16043:20:0;;;;;;;;;;;;;16083:72;16043:13;;16083:72;;;;16043:20;;16123:8;;16083:72;:::i;:::-;;;;;;;;15509:658;;15396:778;;;:::o;11345:38::-;;;:::o;13881:176::-;9934:5;;-1:-1:-1;;;;;9934:5:0;9920:10;:19;9912:64;;;;-1:-1:-1;;;9912:64:0;;;;;;;:::i;:::-;13963:15:::1;:34:::0;;;14013:36:::1;::::0;::::1;::::0;::::1;::::0;13981:16;;14013:36:::1;:::i;:::-;;;;;;;;13881:176:::0;:::o;12493:764::-;14116:10;-1:-1:-1;;;;;14130:13:0;14116:27;;14094:110;;;;-1:-1:-1;;;14094:110:0;;;;;;;:::i;:::-;12674:13:::1;::::0;12629:41:::1;::::0;-1:-1:-1;;;12629:41:0;;-1:-1:-1;;;;;12674:13:0;;::::1;::::0;12643::::1;12629:36;::::0;::::1;::::0;:41:::1;::::0;12666:3;;12629:41:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12629:58:0::1;;12621:67;;;::::0;::::1;;12701:20;;:::i;:::-;12724:15;12735:3;12724:10;:15::i;:::-;12750:21;12774:13:::0;;;:8:::1;:13;::::0;;;;;;;-1:-1:-1;;;;;12774:20:0;::::1;::::0;;;;;;;12835:11;;12701:38;;-1:-1:-1;12774:20:0;12835:15;12831:250:::1;;12983:15;::::0;::::1;::::0;12911:21;;12895:11;;12894:123:::1;::::0;12983:15;11332:4:::1;::::0;12895:38:::1;::::0;-1:-1:-1;;;;;12895:38:0::1;:15;:38::i;12894:123::-;13032:11;::::0;12867:150;;-1:-1:-1;13032:37:0::1;::::0;-1:-1:-1;;;;;13032:11:0::1;13057:2:::0;12867:150;13032:24:::1;:37::i;:::-;13091:21:::0;;;13153;;11332:4:::1;::::0;13141:34:::1;::::0;13105:7;;-1:-1:-1;;;;;13141:34:0::1;:11;:34::i;:::-;:56;;;;;;13123:4;:15;;:74;;;;13246:2;-1:-1:-1::0;;;;;13213:36:0::1;13232:3;13225:5;-1:-1:-1::0;;;;;13213:36:0::1;;13237:7;13213:36;;;;;;:::i;:::-;;;;;;;;14215:1;;;12493:764:::0;;;;;:::o;8024:20::-;;;-1:-1:-1;;;;;8024:20:0;;:::o;11214:30::-;;;;:::o;11139:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11251:27::-;;;-1:-1:-1;;;;;11251:27:0;;:::o;13269:426::-;13465:15;;;13478:1;13465:15;;;;;;;;;13360:28;;;;;;13465:15;;;;;;;;;-1:-1:-1;;13511:11:0;;13491:16;;;;-1:-1:-1;;;;;;13511:11:0;;13491:16;;-1:-1:-1;13511:11:0;;13491:16;;;;-1:-1:-1;;;;;13491:32:0;;;;:16;;;;;;;;;;;:32;13568:16;;;13582:1;13568:16;;;;;;;;;13534:31;;13568:16;;;;;;;;;;;;-1:-1:-1;13568:16:0;13534:50;;13615:23;13628:3;13633:4;13615:12;:23::i;:::-;13595:14;13610:1;13595:17;;;;;;;;;;;;;;;;;:43;13657:13;;;;-1:-1:-1;13269:426:0;-1:-1:-1;;;;13269:426:0:o;8051:27::-;;;-1:-1:-1;;;;;8051:27:0;;:::o;10423:25::-;;;-1:-1:-1;;;;;10423:25:0;;:::o;5625:138::-;5718:5;;;5713:16;;;;5705:50;;;;-1:-1:-1;;;5705:50:0;;;;;;;:::i;:::-;5625:138;;;;:::o;5771:155::-;5829:9;5859:6;;;:30;;-1:-1:-1;;5874:5:0;;;5888:1;5883;5874:5;5883:1;5869:15;;;;;:20;5859:30;5851:67;;;;-1:-1:-1;;;5851:67:0;;;;;;;:::i;5476:141::-;5569:5;;;5564:16;;;;5556:53;;;;-1:-1:-1;;;5556:53:0;;;;;;;:::i;5934:161::-;5983:9;-1:-1:-1;;;;;6013:16:0;;;6005:57;;;;-1:-1:-1;;;6005:57:0;;;;;;;:::i;:::-;-1:-1:-1;6085:1:0;5934:161::o;6559:141::-;6652:5;;;-1:-1:-1;;;;;6647:16:0;;;;;;;;6639:53;;;;-1:-1:-1;;;6639:53:0;;;;;;;:::i;6103:156::-;6151:8;6180:15;;;;6172:55;;;;-1:-1:-1;;;6172:55:0;;;;;;;:::i;3732:340::-;3851:12;3865:17;3894:5;-1:-1:-1;;;;;3886:19:0;1350:10;3929:12;;3943:2;3947:6;3906:48;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3906:48:0;;;;;;;;;;;;;;-1:-1:-1;;;;;3906:48:0;-1:-1:-1;;;;;;3906:48:0;;;;;;;;;;3886:69;;;;3906:48;3886:69;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3850:105;;;;3974:7;:57;;;;-1:-1:-1;3986:11:0;;:16;;:44;;;4017:4;4006:24;;;;;;;;;;;;:::i;:::-;3966:98;;;;-1:-1:-1;;;3966:98:0;;;;;;;:::i;:::-;3732:340;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;1527:479::-;;;;1659:2;1647:9;1638:7;1634:23;1630:32;1627:2;;;-1:-1;;1665:12;1627:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;1717:63;-1:-1;1817:2;1853:22;;359:20;384:30;359:20;384:30;:::i;:::-;1825:60;-1:-1;1922:2;1958:22;;359:20;384:30;359:20;384:30;:::i;:::-;1930:60;;;;1621:385;;;;;:::o;2013:257::-;;2125:2;2113:9;2104:7;2100:23;2096:32;2093:2;;;-1:-1;;2131:12;2093:2;507:6;501:13;519:30;543:5;519:30;:::i;:::-;2183:71;2087:183;-1:-1;;;2087:183::o;2277:365::-;;;2400:2;2388:9;2379:7;2375:23;2371:32;2368:2;;;-1:-1;;2406:12;2368:2;2464:17;2451:31;2502:18;;2494:6;2491:30;2488:2;;;-1:-1;;2524:12;2488:2;2609:6;2598:9;2594:22;;;689:3;682:4;674:6;670:17;666:27;656:2;;-1:-1;;697:12;656:2;740:6;727:20;2502:18;759:6;756:30;753:2;;;-1:-1;;789:12;753:2;884:3;2400:2;864:17;825:6;850:32;;847:41;844:2;;;-1:-1;;891:12;844:2;2400;821:17;;;;;2544:82;;-1:-1;2362:280;;-1:-1;;;;2362:280::o;2649:289::-;;2777:2;2765:9;2756:7;2752:23;2748:32;2745:2;;;-1:-1;;2783:12;2745:2;1179:6;1173:13;1191:46;1231:5;1191:46;:::i;2945:685::-;;;;;3134:3;3122:9;3113:7;3109:23;3105:33;3102:2;;;-1:-1;;3141:12;3102:2;1012:6;999:20;1024:46;1064:5;1024:46;:::i;:::-;3193:76;-1:-1;3306:2;3353:22;;217:20;242:41;217:20;242:41;:::i;:::-;3314:71;-1:-1;3422:2;3461:22;;1316:20;;-1:-1;3530:2;3582:22;;999:20;1024:46;999:20;1024:46;:::i;:::-;3096:534;;;;-1:-1;3096:534;;-1:-1;;3096:534::o;3637:241::-;;3741:2;3729:9;3720:7;3716:23;3712:32;3709:2;;;-1:-1;;3747:12;3709:2;-1:-1;1316:20;;3703:175;-1:-1;3703:175::o;3885:263::-;;4000:2;3988:9;3979:7;3975:23;3971:32;3968:2;;;-1:-1;;4006:12;3968:2;-1:-1;1464:13;;3962:186;-1:-1;3962:186::o;4155:366::-;;;4276:2;4264:9;4255:7;4251:23;4247:32;4244:2;;;-1:-1;;4282:12;4244:2;1329:6;1316:20;4334:63;;4434:2;4477:9;4473:22;72:20;97:33;124:5;97:33;:::i;:::-;4442:63;;;;4238:283;;;;;:::o;4528:743::-;;;;;;4700:3;4688:9;4679:7;4675:23;4671:33;4668:2;;;-1:-1;;4707:12;4668:2;1329:6;1316:20;4759:63;;4859:2;4902:9;4898:22;72:20;97:33;124:5;97:33;:::i;:::-;4867:63;-1:-1;4967:2;5006:22;;72:20;97:33;72:20;97:33;:::i;:::-;4662:609;;;;-1:-1;4975:63;;5075:2;5114:22;;1316:20;;-1:-1;5183:3;5223:22;1316:20;;4662:609;-1:-1;;4662:609::o;5278:491::-;;;;5416:2;5404:9;5395:7;5391:23;5387:32;5384:2;;;-1:-1;;5422:12;5384:2;1329:6;1316:20;5474:63;;5574:2;5617:9;5613:22;72:20;97:33;124:5;97:33;:::i;:::-;5378:391;;5582:63;;-1:-1;;;5682:2;5721:22;;;;1316:20;;5378:391::o;5985:173::-;13553:37;;6147:4;6138:14;;6065:93::o;13946:271::-;;7977:5;22912:12;-1:-1;25474:101;25488:6;25485:1;25482:13;25474:101;;;8121:4;25555:11;;;;;25549:18;25536:11;;;25529:39;25503:10;25474:101;;;25590:6;25587:1;25584:13;25581:2;;;-1:-1;25646:6;25641:3;25637:16;25630:27;25581:2;-1:-1;8152:16;;;;;14080:137;-1:-1;;14080:137::o;14224:222::-;-1:-1;;;;;24756:54;;;;6237:37;;14351:2;14336:18;;14322:124::o;14453:333::-;-1:-1;;;;;24756:54;;;;6237:37;;14772:2;14757:18;;13553:37;14608:2;14593:18;;14579:207::o;14793:655::-;15061:2;15075:47;;;22912:12;;15046:18;;;23587:19;;;14793:655;;23636:4;;23627:14;;;;22595;;;14793:655;6772:286;6797:6;6794:1;6791:13;6772:286;;;6858:13;;-1:-1;;;;;24756:54;8254:63;;5956:14;;;;23327;;;;2502:18;6812:9;6772:286;;;6776:14;;;15305:9;15299:4;15295:20;23636:4;15279:9;15275:18;15268:48;15330:108;7312:5;22912:12;7331:86;7410:6;7405:3;7331:86;:::i;:::-;7324:93;;23636:4;7488:5;22595:14;7500:21;;-1:-1;7527:260;7552:6;7549:1;7546:13;7527:260;;;7640:63;7699:3;7619:6;7613:13;7640:63;:::i;:::-;23327:14;;;;7633:70;-1:-1;6819:1;7567:9;7527:260;;;-1:-1;15322:116;;15032:416;-1:-1;;;;;;;15032:416::o;15710:::-;15910:2;15924:47;;;8713:2;15895:18;;;23587:19;-1:-1;;;23627:14;;;8729:44;8792:12;;;15881:245::o;16133:416::-;16333:2;16347:47;;;9043:2;16318:18;;;23587:19;9079:30;23627:14;;;9059:51;9129:12;;;16304:245::o;16556:416::-;16756:2;16770:47;;;9380:2;16741:18;;;23587:19;9416:34;23627:14;;;9396:55;-1:-1;;;9471:12;;;9464:25;9508:12;;;16727:245::o;16979:416::-;17179:2;17193:47;;;9759:2;17164:18;;;23587:19;-1:-1;;;23627:14;;;9775:44;9838:12;;;17150:245::o;17402:416::-;17602:2;17616:47;;;10089:2;17587:18;;;23587:19;10125:30;23627:14;;;10105:51;10175:12;;;17573:245::o;17825:416::-;18025:2;18039:47;;;10426:2;18010:18;;;23587:19;10462:26;23627:14;;;10442:47;10508:12;;;17996:245::o;18248:416::-;18448:2;18462:47;;;18433:18;;;23587:19;10795:34;23627:14;;;10775:55;10849:12;;;18419:245::o;18671:416::-;18871:2;18885:47;;;18856:18;;;23587:19;11136:34;23627:14;;;11116:55;11190:12;;;18842:245::o;19094:416::-;19294:2;19308:47;;;11441:2;19279:18;;;23587:19;11477:29;23627:14;;;11457:50;11526:12;;;19265:245::o;19517:416::-;19717:2;19731:47;;;11777:2;19702:18;;;23587:19;11813:26;23627:14;;;11793:47;11859:12;;;19688:245::o;19940:416::-;20140:2;20154:47;;;12110:2;20125:18;;;23587:19;12146:31;23627:14;;;12126:52;12197:12;;;20111:245::o;20363:416::-;20563:2;20577:47;;;12448:2;20548:18;;;23587:19;-1:-1;;;23627:14;;;12464:42;12525:12;;;20534:245::o;20786:322::-;12847:23;;-1:-1;;;;;24636:46;13190:37;;13028:4;13017:16;;;13011:23;24973:18;24962:30;13086:14;;;13781:36;;;;20963:2;20948:18;;20934:174::o;21115:329::-;-1:-1;;;;;24636:46;;;;13190:37;;24973:18;24962:30;21430:2;21415:18;;13781:36;21268:2;21253:18;;21239:205::o;21451:222::-;13553:37;;;21578:2;21563:18;;21549:124::o;21680:333::-;13553:37;;;21999:2;21984:18;;13553:37;21835:2;21820:18;;21806:207::o;22020:440::-;24973:18;24962:30;;;;13781:36;;22363:2;22348:18;;13553:37;;;;-1:-1;;;;;24636:46;22446:2;22431:18;;13430:50;22201:2;22186:18;;22172:288::o;25678:117::-;-1:-1;;;;;24756:54;;25737:35;;25727:2;;25786:1;;25776:12;25727:2;25721:74;:::o;25942:111::-;26023:5;24437:13;24430:21;26001:5;25998:32;25988:2;;26044:1;;26034:12
Swarm Source
ipfs://e242eeaeebcd12b164ade5437febc8d61b6c147995ecee6465170ae6b10036b7
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.