Overview
CRO Balance
CRO Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 48 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Minter | 2329418 | 1031 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 1831827 | 1066 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 654255 | 1145 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 608729 | 1148 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 608728 | 1148 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 608725 | 1148 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 608721 | 1148 days ago | IN | 0 CRO | 0.240215 | ||||
Set Calculator | 564376 | 1151 days ago | IN | 0 CRO | 0.164025 | ||||
Set Minter | 549806 | 1152 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 549804 | 1152 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 549803 | 1152 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 549801 | 1152 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 549800 | 1152 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 549798 | 1152 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 549796 | 1152 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 549795 | 1152 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 523504 | 1154 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 523502 | 1154 days ago | IN | 0 CRO | 0.240155 | ||||
Set Minter | 523500 | 1154 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 518025 | 1154 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 230334 | 1173 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 228567 | 1173 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 228287 | 1173 days ago | IN | 0 CRO | 0.240215 | ||||
Set Minter | 228072 | 1173 days ago | IN | 0 CRO | 0.144215 | ||||
Set Minter | 228036 | 1173 days ago | IN | 0 CRO | 0.240215 |
Loading...
Loading
Contract Name:
Minter
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2022-01-17 */ pragma solidity ^0.6.12; pragma experimental ABIEncoderV2; // SPDX-License-Identifier: UNLICENSED /** * @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, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, 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 (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } /** * @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) { if (a == 0) return 0; uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers, reverting 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) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting 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) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryDiv}. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } } /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface ICalculator { function valueOfAsset(address asset, uint256 amount) external view returns (uint256 valueInETH); } struct RewardData { address token; uint256 amount; } struct LockedBalance { uint256 amount; uint256 unlockTime; } // Interface for EPS Staking contract - http://ellipsis.finance/ interface IMultiFeeDistribution { /* ========== VIEWS ========== */ function totalSupply() external view returns (uint256); function lockedSupply() external view returns (uint256); function rewardPerToken(address _rewardsToken) external view returns (uint256); function getRewardForDuration(address _rewardsToken) external view returns (uint256); // Address and claimable amount of all reward tokens for the given account function claimableRewards(address account) external view returns (RewardData[] memory); // Total balance of an account, including unlocked, locked and earned tokens function totalBalance(address user) view external returns (uint256 amount); // Total withdrawable balance for an account to which no penalty is applied function unlockedBalance(address user) view external returns (uint256 amount); // Final balance received and penalty balance paid by user upon calling exit function withdrawableBalance(address user) view external returns (uint256 amount, uint256 penaltyAmount); // Information on the "earned" balances of a user // Earned balances may be withdrawn immediately for a 50% penalty function earnedBalances(address user) view external returns (uint256 total, LockedBalance[] memory earningsData); // Information on a user's locked balances function lockedBalances(address user) view external returns (uint256 total, uint256 unlockable, uint256 locked, LockedBalance[] memory lockData); /* ========== MUTATIVE FUNCTIONS ========== */ // Mint new tokens // Minted tokens receive rewards normally but incur a 50% penalty when // withdrawn before lockDuration has passed. function mint(address user, uint256 amount) external; // Withdraw full unlocked balance and claim pending rewards function exit() external; // Withdraw all currently locked tokens where the unlock time has passed function withdrawExpiredLocks() external; // Claim all pending staking rewards (both BUSD and EPS) function getReward() external; // Stake tokens to receive rewards // Locked tokens cannot be withdrawn for lockDuration and are eligible to receive stakingReward rewards function stake(uint256 amount, bool lock) external; // Withdraw staked tokens // First withdraws unlocked tokens, then earned tokens. Withdrawing earned tokens // incurs a 50% penalty which is distributed based on locked balances. function withdraw(uint256 amount) external; /* ========== ADMIN CONFIGURATION ========== */ // Used to let FeeDistribution know that _rewardsToken was added to it function notifyRewardAmount(address _rewardsToken, uint256 rewardAmount) external; } contract Minter is Ownable { using SafeMath for uint256; /* ========== STATE VARIABLES ========== */ mapping(address => bool) private _minters; address public calculator; address public feeDistribution; address public dev; uint256 public addyPerProfitEth = 100; /* ========== CONSTRUCTOR ========== */ constructor(address _dev, address _calculator) public { dev = _dev; calculator = _calculator; } /* ========== MODIFIERS ========== */ modifier onlyMinter { require(isMinter(msg.sender) == true, "AddyMinter: caller is not the minter"); _; } function mintFor(address user, address asset, uint256 amount) external onlyMinter { uint256 valueInEth = ICalculator(calculator).valueOfAsset(asset, amount); uint256 mintAddy = amountAddyToMint(valueInEth); if (mintAddy == 0) return; IMultiFeeDistribution(feeDistribution).mint(user, mintAddy); //For every 100 tokens minted, 15 additional tokens will go towards development to ensure rapid innovation. IMultiFeeDistribution(feeDistribution).mint(dev, mintAddy.mul(15).div(100)); } /* ========== VIEWS ========== */ function isMinter(address account) public view returns (bool) { return _minters[account]; } function amountAddyToMint(uint256 ethProfit) public view returns (uint256) { return ethProfit.mul(addyPerProfitEth); } function getAddyMinted(address asset, uint256 amount) public view returns (uint256) { return amountAddyToMint(ICalculator(calculator).valueOfAsset(asset, amount)); } /* ========== RESTRICTED FUNCTIONS ========== */ function setAddyPerProfitEth(uint256 _ratio) external onlyOwner { addyPerProfitEth = _ratio; } function setCalculator(address newCalculator) public onlyOwner { calculator = newCalculator; } function setFeeDistribution(address newFeeDistribution) public onlyOwner { feeDistribution = newFeeDistribution; } function setMinter(address minter, bool canMint) external onlyOwner { if (canMint) { _minters[minter] = canMint; } else { delete _minters[minter]; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_dev","type":"address"},{"internalType":"address","name":"_calculator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"addyPerProfitEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethProfit","type":"uint256"}],"name":"amountAddyToMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"calculator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDistribution","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getAddyMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ratio","type":"uint256"}],"name":"setAddyPerProfitEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newCalculator","type":"address"}],"name":"setCalculator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newFeeDistribution","type":"address"}],"name":"setFeeDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"},{"internalType":"bool","name":"canMint","type":"bool"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052606460055534801561001557600080fd5b50604051610c0b380380610c0b833981016040819052610034916100bd565b600061003e6100b9565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b039384166001600160a01b0319918216179091556002805492909316911617905561010e565b3390565b600080604083850312156100cf578182fd5b82516100da816100f6565b60208401519092506100eb816100f6565b809150509250929050565b6001600160a01b038116811461010b57600080fd5b50565b610aee8061011d6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806391cca3db11610097578063cf456ae711610066578063cf456ae7146101bb578063daac3cc4146101ce578063e2d2c164146101e1578063f2fde38b146101f4576100f5565b806391cca3db14610178578063aa271e1a14610180578063c53468f0146101a0578063ce3e39c0146101b3576100f5565b806347eeb0b4116100d357806347eeb0b4146101405780635ec3d6ce14610155578063715018a6146101685780638da5cb5b14610170576100f5565b80631919db33146100fa5780631d00e5521461010f5780632479b17714610122575b600080fd5b61010d610108366004610838565b610207565b005b61010d61011d3660046108f8565b610271565b61012a6102b5565b6040516101379190610928565b60405180910390f35b6101486102c4565b6040516101379190610a97565b61010d610163366004610853565b6102ca565b61010d61047c565b61012a610505565b61012a610514565b61019361018e366004610838565b610523565b6040516101379190610955565b61010d6101ae366004610838565b610541565b61012a6105a2565b61010d6101c9366004610893565b6105b1565b6101486101dc3660046108f8565b610644565b6101486101ef3660046108ce565b610661565b61010d610202366004610838565b6106f1565b61020f6107b1565b6001600160a01b0316610220610505565b6001600160a01b03161461024f5760405162461bcd60e51b815260040161024690610a62565b60405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6102796107b1565b6001600160a01b031661028a610505565b6001600160a01b0316146102b05760405162461bcd60e51b815260040161024690610a62565b600555565b6003546001600160a01b031681565b60055481565b6102d333610523565b15156001146102f45760405162461bcd60e51b815260040161024690610a1e565b60025460405163493457b560e11b81526000916001600160a01b031690639268af6a90610327908690869060040161093c565b60206040518083038186803b15801561033f57600080fd5b505afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190610910565b9050600061038482610644565b905080610392575050610477565b6003546040516340c10f1960e01b81526001600160a01b03909116906340c10f19906103c4908890859060040161093c565b600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b50506003546004546001600160a01b0391821693506340c10f19925016610425606461041f86600f6107b5565b906107ef565b6040518363ffffffff1660e01b815260040161044292919061093c565b600060405180830381600087803b15801561045c57600080fd5b505af1158015610470573d6000803e3d6000fd5b5050505050505b505050565b6104846107b1565b6001600160a01b0316610495610505565b6001600160a01b0316146104bb5760405162461bcd60e51b815260040161024690610a62565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6004546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b6105496107b1565b6001600160a01b031661055a610505565b6001600160a01b0316146105805760405162461bcd60e51b815260040161024690610a62565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031681565b6105b96107b1565b6001600160a01b03166105ca610505565b6001600160a01b0316146105f05760405162461bcd60e51b815260040161024690610a62565b801561061f576001600160a01b0382166000908152600160205260409020805460ff1916821515179055610640565b6001600160a01b0382166000908152600160205260409020805460ff191690555b5050565b600061065b600554836107b590919063ffffffff16565b92915050565b60025460405163493457b560e11b81526000916106ea916001600160a01b0390911690639268af6a9061069a908790879060040161093c565b60206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101dc9190610910565b9392505050565b6106f96107b1565b6001600160a01b031661070a610505565b6001600160a01b0316146107305760405162461bcd60e51b815260040161024690610a62565b6001600160a01b0381166107565760405162461bcd60e51b815260040161024690610960565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6000826107c45750600061065b565b828202828482816107d157fe5b04146106ea5760405162461bcd60e51b8152600401610246906109dd565b60008082116108105760405162461bcd60e51b8152600401610246906109a6565b81838161081957fe5b049392505050565b80356001600160a01b038116811461065b57600080fd5b600060208284031215610849578081fd5b6106ea8383610821565b600080600060608486031215610867578182fd5b833561087281610aa0565b9250602084013561088281610aa0565b929592945050506040919091013590565b600080604083850312156108a5578182fd5b6108af8484610821565b9150602083013580151581146108c3578182fd5b809150509250929050565b600080604083850312156108e0578182fd5b6108ea8484610821565b946020939093013593505050565b600060208284031215610909578081fd5b5035919050565b600060208284031215610921578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526024908201527f416464794d696e7465723a2063616c6c6572206973206e6f7420746865206d69604082015263373a32b960e11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b90815260200190565b6001600160a01b0381168114610ab557600080fd5b5056fea264697066735822122072bb0effcff9cb9226f55f4c2931d11c56a2dbb7d03781d4bbd8f36e5f565b4e64736f6c634300060c0033000000000000000000000000b29cd9c87a624b940335d6d5e1d4aadf7d95beec000000000000000000000000fac5c7819fde19d006244e462db02ed7fe346e71
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806391cca3db11610097578063cf456ae711610066578063cf456ae7146101bb578063daac3cc4146101ce578063e2d2c164146101e1578063f2fde38b146101f4576100f5565b806391cca3db14610178578063aa271e1a14610180578063c53468f0146101a0578063ce3e39c0146101b3576100f5565b806347eeb0b4116100d357806347eeb0b4146101405780635ec3d6ce14610155578063715018a6146101685780638da5cb5b14610170576100f5565b80631919db33146100fa5780631d00e5521461010f5780632479b17714610122575b600080fd5b61010d610108366004610838565b610207565b005b61010d61011d3660046108f8565b610271565b61012a6102b5565b6040516101379190610928565b60405180910390f35b6101486102c4565b6040516101379190610a97565b61010d610163366004610853565b6102ca565b61010d61047c565b61012a610505565b61012a610514565b61019361018e366004610838565b610523565b6040516101379190610955565b61010d6101ae366004610838565b610541565b61012a6105a2565b61010d6101c9366004610893565b6105b1565b6101486101dc3660046108f8565b610644565b6101486101ef3660046108ce565b610661565b61010d610202366004610838565b6106f1565b61020f6107b1565b6001600160a01b0316610220610505565b6001600160a01b03161461024f5760405162461bcd60e51b815260040161024690610a62565b60405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6102796107b1565b6001600160a01b031661028a610505565b6001600160a01b0316146102b05760405162461bcd60e51b815260040161024690610a62565b600555565b6003546001600160a01b031681565b60055481565b6102d333610523565b15156001146102f45760405162461bcd60e51b815260040161024690610a1e565b60025460405163493457b560e11b81526000916001600160a01b031690639268af6a90610327908690869060040161093c565b60206040518083038186803b15801561033f57600080fd5b505afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190610910565b9050600061038482610644565b905080610392575050610477565b6003546040516340c10f1960e01b81526001600160a01b03909116906340c10f19906103c4908890859060040161093c565b600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b50506003546004546001600160a01b0391821693506340c10f19925016610425606461041f86600f6107b5565b906107ef565b6040518363ffffffff1660e01b815260040161044292919061093c565b600060405180830381600087803b15801561045c57600080fd5b505af1158015610470573d6000803e3d6000fd5b5050505050505b505050565b6104846107b1565b6001600160a01b0316610495610505565b6001600160a01b0316146104bb5760405162461bcd60e51b815260040161024690610a62565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6004546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b6105496107b1565b6001600160a01b031661055a610505565b6001600160a01b0316146105805760405162461bcd60e51b815260040161024690610a62565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031681565b6105b96107b1565b6001600160a01b03166105ca610505565b6001600160a01b0316146105f05760405162461bcd60e51b815260040161024690610a62565b801561061f576001600160a01b0382166000908152600160205260409020805460ff1916821515179055610640565b6001600160a01b0382166000908152600160205260409020805460ff191690555b5050565b600061065b600554836107b590919063ffffffff16565b92915050565b60025460405163493457b560e11b81526000916106ea916001600160a01b0390911690639268af6a9061069a908790879060040161093c565b60206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101dc9190610910565b9392505050565b6106f96107b1565b6001600160a01b031661070a610505565b6001600160a01b0316146107305760405162461bcd60e51b815260040161024690610a62565b6001600160a01b0381166107565760405162461bcd60e51b815260040161024690610960565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6000826107c45750600061065b565b828202828482816107d157fe5b04146106ea5760405162461bcd60e51b8152600401610246906109dd565b60008082116108105760405162461bcd60e51b8152600401610246906109a6565b81838161081957fe5b049392505050565b80356001600160a01b038116811461065b57600080fd5b600060208284031215610849578081fd5b6106ea8383610821565b600080600060608486031215610867578182fd5b833561087281610aa0565b9250602084013561088281610aa0565b929592945050506040919091013590565b600080604083850312156108a5578182fd5b6108af8484610821565b9150602083013580151581146108c3578182fd5b809150509250929050565b600080604083850312156108e0578182fd5b6108ea8484610821565b946020939093013593505050565b600060208284031215610909578081fd5b5035919050565b600060208284031215610921578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526024908201527f416464794d696e7465723a2063616c6c6572206973206e6f7420746865206d69604082015263373a32b960e11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b90815260200190565b6001600160a01b0381168114610ab557600080fd5b5056fea264697066735822122072bb0effcff9cb9226f55f4c2931d11c56a2dbb7d03781d4bbd8f36e5f565b4e64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b29cd9c87a624b940335d6d5e1d4aadf7d95beec000000000000000000000000fac5c7819fde19d006244e462db02ed7fe346e71
-----Decoded View---------------
Arg [0] : _dev (address): 0xB29Cd9C87a624B940335d6d5e1D4aADf7D95bEeC
Arg [1] : _calculator (address): 0xFac5C7819fdE19d006244E462Db02ed7Fe346E71
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b29cd9c87a624b940335d6d5e1d4aadf7d95beec
Arg [1] : 000000000000000000000000fac5c7819fde19d006244e462db02ed7fe346e71
Deployed Bytecode Sourcemap
13770:2344:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15767:128;;;;;;:::i;:::-;;:::i;:::-;;15535:108;;;;;;:::i;:::-;;:::i;13970:30::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14034:37;;;:::i;:::-;;;;;;;:::i;14448:542::-;;;;;;:::i;:::-;;:::i;10045:148::-;;;:::i;9394:87::-;;;:::i;14007:18::-;;;:::i;15039:105::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15651:108::-;;;;;;:::i;:::-;;:::i;13938:25::-;;;:::i;15903:208::-;;;;;;:::i;:::-;;:::i;15152:132::-;;;;;;:::i;:::-;;:::i;15292:179::-;;;;;;:::i;:::-;;:::i;10348:244::-;;;;;;:::i;:::-;;:::i;15767:128::-;9625:12;:10;:12::i;:::-;-1:-1:-1;;;;;9614:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9614:23:0;;9606:68;;;;-1:-1:-1;;;9606:68:0;;;;;;;:::i;:::-;;;;;;;;;15851:15:::1;:36:::0;;-1:-1:-1;;;;;;15851:36:0::1;-1:-1:-1::0;;;;;15851:36:0;;;::::1;::::0;;;::::1;::::0;;15767:128::o;15535:108::-;9625:12;:10;:12::i;:::-;-1:-1:-1;;;;;9614:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9614:23:0;;9606:68;;;;-1:-1:-1;;;9606:68:0;;;;;;;:::i;:::-;15610:16:::1;:25:::0;15535:108::o;13970:30::-;;;-1:-1:-1;;;;;13970:30:0;;:::o;14034:37::-;;;;:::o;14448:542::-;14351:20;14360:10;14351:8;:20::i;:::-;:28;;14375:4;14351:28;14343:77;;;;-1:-1:-1;;;14343:77:0;;;;;;;:::i;:::-;14574:10:::1;::::0;14562:51:::1;::::0;-1:-1:-1;;;14562:51:0;;14541:18:::1;::::0;-1:-1:-1;;;;;14574:10:0::1;::::0;14562:36:::1;::::0;:51:::1;::::0;14599:5;;14606:6;;14562:51:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14541:72;;14626:16;14645:28;14662:10;14645:16;:28::i;:::-;14626:47:::0;-1:-1:-1;14688:13:0;14684:26:::1;;14703:7;;;;14684:26;14742:15;::::0;14720:59:::1;::::0;-1:-1:-1;;;14720:59:0;;-1:-1:-1;;;;;14742:15:0;;::::1;::::0;14720:43:::1;::::0;:59:::1;::::0;14764:4;;14770:8;;14720:59:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14929:15:0::1;::::0;14951:3:::1;::::0;-1:-1:-1;;;;;14929:15:0;;::::1;::::0;-1:-1:-1;14907:43:0::1;::::0;-1:-1:-1;14951:3:0::1;14956:25;14977:3;14956:16;:8:::0;14969:2:::1;14956:12;:16::i;:::-;:20:::0;::::1;:25::i;:::-;14907:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14431:1;;;14448:542:::0;;;:::o;10045:148::-;9625:12;:10;:12::i;:::-;-1:-1:-1;;;;;9614:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9614:23:0;;9606:68;;;;-1:-1:-1;;;9606:68:0;;;;;;;:::i;:::-;10152:1:::1;10136:6:::0;;10115:40:::1;::::0;-1:-1:-1;;;;;10136:6:0;;::::1;::::0;10115:40:::1;::::0;10152:1;;10115:40:::1;10183:1;10166:19:::0;;-1:-1:-1;;;;;;10166:19:0::1;::::0;;10045:148::o;9394:87::-;9440:7;9467:6;-1:-1:-1;;;;;9467:6:0;9394:87;:::o;14007:18::-;;;-1:-1:-1;;;;;14007:18:0;;:::o;15039:105::-;-1:-1:-1;;;;;15119:17:0;15095:4;15119:17;;;:8;:17;;;;;;;;;15039:105::o;15651:108::-;9625:12;:10;:12::i;:::-;-1:-1:-1;;;;;9614:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9614:23:0;;9606:68;;;;-1:-1:-1;;;9606:68:0;;;;;;;:::i;:::-;15725:10:::1;:26:::0;;-1:-1:-1;;;;;;15725:26:0::1;-1:-1:-1::0;;;;;15725:26:0;;;::::1;::::0;;;::::1;::::0;;15651:108::o;13938:25::-;;;-1:-1:-1;;;;;13938:25:0;;:::o;15903:208::-;9625:12;:10;:12::i;:::-;-1:-1:-1;;;;;9614:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9614:23:0;;9606:68;;;;-1:-1:-1;;;9606:68:0;;;;;;;:::i;:::-;15986:7:::1;15982:122;;;-1:-1:-1::0;;;;;16010:16:0;::::1;;::::0;;;:8:::1;:16;::::0;;;;:26;;-1:-1:-1;;16010:26:0::1;::::0;::::1;;;::::0;;15982:122:::1;;;-1:-1:-1::0;;;;;16076:16:0;::::1;;::::0;;;:8:::1;:16;::::0;;;;16069:23;;-1:-1:-1;;16069:23:0::1;::::0;;15982:122:::1;15903:208:::0;;:::o;15152:132::-;15218:7;15245:31;15259:16;;15245:9;:13;;:31;;;;:::i;:::-;15238:38;15152:132;-1:-1:-1;;15152:132:0:o;15292:179::-;15423:10;;15411:51;;-1:-1:-1;;;15411:51:0;;15367:7;;15394:69;;-1:-1:-1;;;;;15423:10:0;;;;15411:36;;:51;;15448:5;;15455:6;;15411:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15394:69::-;15387:76;15292:179;-1:-1:-1;;;15292:179:0:o;10348:244::-;9625:12;:10;:12::i;:::-;-1:-1:-1;;;;;9614:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9614:23:0;;9606:68;;;;-1:-1:-1;;;9606:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10437:22:0;::::1;10429:73;;;;-1:-1:-1::0;;;10429:73:0::1;;;;;;;:::i;:::-;10539:6;::::0;;10518:38:::1;::::0;-1:-1:-1;;;;;10518:38:0;;::::1;::::0;10539:6;::::1;::::0;10518:38:::1;::::0;::::1;10567:6;:17:::0;;-1:-1:-1;;;;;;10567:17:0::1;-1:-1:-1::0;;;;;10567:17:0;;;::::1;::::0;;;::::1;::::0;;10348:244::o;8021:106::-;8109:10;8021:106;:::o;3688:220::-;3746:7;3770:6;3766:20;;-1:-1:-1;3785:1:0;3778:8;;3766:20;3809:5;;;3813:1;3809;:5;:1;3833:5;;;;;:10;3825:56;;;;-1:-1:-1;;;3825:56:0;;;;;;;:::i;4386:153::-;4444:7;4476:1;4472;:5;4464:44;;;;-1:-1:-1;;;4464:44:0;;;;;;;:::i;:::-;4530:1;4526;:5;;;;;;;4386:153;-1:-1:-1;;;4386:153:0:o;5:130:-1:-;72:20;;-1:-1;;;;;8281:54;;8485:35;;8475:2;;8534:1;;8524:12;551:241;;655:2;643:9;634:7;630:23;626:32;623:2;;;-1:-1;;661:12;623:2;723:53;768:7;744:22;723:53;:::i;799:491::-;;;;937:2;925:9;916:7;912:23;908:32;905:2;;;-1:-1;;943:12;905:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;995:63;-1:-1;1095:2;1134:22;;72:20;97:33;72:20;97:33;:::i;:::-;899:391;;1103:63;;-1:-1;;;1203:2;1242:22;;;;340:20;;899:391::o;1297:360::-;;;1415:2;1403:9;1394:7;1390:23;1386:32;1383:2;;;-1:-1;;1421:12;1383:2;1483:53;1528:7;1504:22;1483:53;:::i;:::-;1473:63;;1573:2;1613:9;1609:22;206:20;8631:5;8193:13;8186:21;8609:5;8606:32;8596:2;;-1:-1;;8642:12;8596:2;1581:60;;;;1377:280;;;;;:::o;1664:366::-;;;1785:2;1773:9;1764:7;1760:23;1756:32;1753:2;;;-1:-1;;1791:12;1753:2;1853:53;1898:7;1874:22;1853:53;:::i;:::-;1843:63;1943:2;1982:22;;;;340:20;;-1:-1;;;1747:283::o;2037:241::-;;2141:2;2129:9;2120:7;2116:23;2112:32;2109:2;;;-1:-1;;2147:12;2109:2;-1:-1;340:20;;2103:175;-1:-1;2103:175::o;2285:263::-;;2400:2;2388:9;2379:7;2375:23;2371:32;2368:2;;;-1:-1;;2406:12;2368:2;-1:-1;488:13;;2362:186;-1:-1;2362:186::o;4727:222::-;-1:-1;;;;;8281:54;;;;2626:37;;4854:2;4839:18;;4825:124::o;4956:333::-;-1:-1;;;;;8281:54;;;;2626:37;;5275:2;5260:18;;4678:37;5111:2;5096:18;;5082:207::o;5296:210::-;8193:13;;8186:21;2740:34;;5417:2;5402:18;;5388:118::o;5513:416::-;5713:2;5727:47;;;3011:2;5698:18;;;7961:19;3047:34;8001:14;;;3027:55;-1:-1;;;3102:12;;;3095:30;3144:12;;;5684:245::o;5936:416::-;6136:2;6150:47;;;3395:2;6121:18;;;7961:19;3431:28;8001:14;;;3411:49;3479:12;;;6107:245::o;6359:416::-;6559:2;6573:47;;;3730:2;6544:18;;;7961:19;3766:34;8001:14;;;3746:55;-1:-1;;;3821:12;;;3814:25;3858:12;;;6530:245::o;6782:416::-;6982:2;6996:47;;;4109:2;6967:18;;;7961:19;4145:34;8001:14;;;4125:55;-1:-1;;;4200:12;;;4193:28;4240:12;;;6953:245::o;7205:416::-;7405:2;7419:47;;;7390:18;;;7961:19;4527:34;8001:14;;;4507:55;4581:12;;;7376:245::o;7628:222::-;4678:37;;;7755:2;7740:18;;7726:124::o;8426:117::-;-1:-1;;;;;8281:54;;8485:35;;8475:2;;8534:1;;8524:12;8475:2;8469:74;:::o
Swarm Source
ipfs://72bb0effcff9cb9226f55f4c2931d11c56a2dbb7d03781d4bbd8f36e5f565b4e
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.