Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 16 from a total of 16 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Buy And Give Out... | 13220498 | 1140 days ago | IN | 0 ETH | 0.00944181 | ||||
Buy And Give Out... | 11434876 | 1416 days ago | IN | 0 ETH | 0.01890388 | ||||
Buy And Give Out... | 11381743 | 1424 days ago | IN | 0 ETH | 0.00654339 | ||||
Buy And Give Out... | 11344363 | 1430 days ago | IN | 0 ETH | 0.00307539 | ||||
Buy And Give Out... | 11306617 | 1436 days ago | IN | 0 ETH | 0.00872452 | ||||
Buy And Give Out... | 11262354 | 1443 days ago | IN | 0 ETH | 0.00523458 | ||||
Buy And Give Out... | 11241377 | 1446 days ago | IN | 0 ETH | 0.00523471 | ||||
Buy And Give Out... | 11241324 | 1446 days ago | IN | 0 ETH | 0.0065747 | ||||
Buy And Give Out... | 11241311 | 1446 days ago | IN | 0 ETH | 0.0065625 | ||||
Buy And Give Out... | 11241311 | 1446 days ago | IN | 0 ETH | 0.00603382 | ||||
Buy And Give Out... | 11241311 | 1446 days ago | IN | 0 ETH | 0.00603306 | ||||
Buy And Give Out... | 11241311 | 1446 days ago | IN | 0 ETH | 0.00664384 | ||||
Transfer | 11241301 | 1446 days ago | IN | 0.001 ETH | 0.004809 | ||||
Buy And Give Out... | 11241252 | 1446 days ago | IN | 0 ETH | 0.00503608 | ||||
Buy And Give Out... | 11241252 | 1446 days ago | IN | 0 ETH | 0.00529053 | ||||
0x61012060 | 11241232 | 1446 days ago | IN | 0 ETH | 0.0313195 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
FlashArbitrageCOREBuyer
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-12 */ // _________ ________ _____________________ // \_ ___ \ \_____ \\______ \_ _____/ // / \ \/ / | \| _/| __)_ // \ \____/ | \ | \| \ // \______ /\_______ /____|_ /_______ / // \/ \/ \/ \/ // ___________.____ _____ _________ ___ ___ // \_ _____/| | / _ \ / _____// | \ // | __) | | / /_\ \ \_____ \/ ~ \ // | \ | |___/ | \/ \ Y / // \___ / |_______ \____|__ /_______ /\___|_ / // \/ \/ \/ \/ \/ // _____ ____________________.________________________ _____ ___________________ // / _ \\______ \______ \ \__ ___/\______ \ / _ \ / _____/\_ _____/ // / /_\ \| _/| | _/ | | | | _/ / /_\ \/ \ ___ | __)_ // / | \ | \| | \ | | | | | \/ | \ \_\ \| \ // \____|__ /____|_ /|______ /___| |____| |____|_ /\____|__ /\______ /_______ / // \/ \/ \/ \/ \/ \/ \/ // CORE BUYER // // This contract buys CORE for tokens inside it (which it gets from the controller upon successfull arbitrage) // And then sends it to the farming vault boosting everyones APY // // Become impossible to ignore. // // Sources flattened with hardhat v2.0.1 https://hardhat.org // File @uniswap/v2-core/contracts/interfaces/[email protected] pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } // File @uniswap/lib/contracts/libraries/[email protected] pragma solidity >=0.5.0; library AddressStringUtil { // converts an address to the uppercase hex string, extracting only len bytes (up to 20, multiple of 2) function toAsciiString(address addr, uint len) pure internal returns (string memory) { require(len % 2 == 0 && len > 0 && len <= 40, "AddressStringUtil: INVALID_LEN"); bytes memory s = new bytes(len); uint addrNum = uint(addr); for (uint i = 0; i < len / 2; i++) { // shift right and truncate all but the least significant byte to extract the byte at position 19-i uint8 b = uint8(addrNum >> (8 * (19 - i))); // first hex character is the most significant 4 bits uint8 hi = b >> 4; // second hex character is the least significant 4 bits uint8 lo = b - (hi << 4); s[2 * i] = char(hi); s[2 * i + 1] = char(lo); } return string(s); } // hi and lo are only 4 bits and between 0 and 16 // this method converts those values to the unicode/ascii code point for the hex representation // uses upper case for the characters function char(uint8 b) pure private returns (byte c) { if (b < 10) { return byte(b + 0x30); } else { return byte(b + 0x37); } } } // File @uniswap/lib/contracts/libraries/[email protected] // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.5.0; // produces token descriptors from inconsistent or absent ERC20 symbol implementations that can return string or bytes32 // this library will always produce a string symbol to represent the token library SafeERC20Namer { function bytes32ToString(bytes32 x) pure private returns (string memory) { bytes memory bytesString = new bytes(32); uint charCount = 0; for (uint j = 0; j < 32; j++) { byte char = x[j]; if (char != 0) { bytesString[charCount] = char; charCount++; } } bytes memory bytesStringTrimmed = new bytes(charCount); for (uint j = 0; j < charCount; j++) { bytesStringTrimmed[j] = bytesString[j]; } return string(bytesStringTrimmed); } // assumes the data is in position 2 function parseStringData(bytes memory b) pure private returns (string memory) { uint charCount = 0; // first parse the charCount out of the data for (uint i = 32; i < 64; i++) { charCount <<= 8; charCount += uint8(b[i]); } bytes memory bytesStringTrimmed = new bytes(charCount); for (uint i = 0; i < charCount; i++) { bytesStringTrimmed[i] = b[i + 64]; } return string(bytesStringTrimmed); } // uses a heuristic to produce a token name from the address // the heuristic returns the full hex of the address string in upper case function addressToName(address token) pure private returns (string memory) { return AddressStringUtil.toAsciiString(token, 40); } // uses a heuristic to produce a token symbol from the address // the heuristic returns the first 6 hex of the address string in upper case function addressToSymbol(address token) pure private returns (string memory) { return AddressStringUtil.toAsciiString(token, 6); } // calls an external view token contract method that returns a symbol or name, and parses the output into a string function callAndParseStringReturn(address token, bytes4 selector) view private returns (string memory) { (bool success, bytes memory data) = token.staticcall(abi.encodeWithSelector(selector)); // if not implemented, or returns empty data, return empty string if (!success || data.length == 0) { return ""; } // bytes32 data always has length 32 if (data.length == 32) { bytes32 decoded = abi.decode(data, (bytes32)); return bytes32ToString(decoded); } else if (data.length > 64) { return abi.decode(data, (string)); } return ""; } // attempts to extract the token symbol. if it does not implement symbol, returns a symbol derived from the address function tokenSymbol(address token) internal view returns (string memory) { // 0x95d89b41 = bytes4(keccak256("symbol()")) string memory symbol = callAndParseStringReturn(token, 0x95d89b41); if (bytes(symbol).length == 0) { // fallback to 6 uppercase hex of address return addressToSymbol(token); } return symbol; } // attempts to extract the token name. if it does not implement name, returns a name derived from the address function tokenName(address token) internal view returns (string memory) { // 0x06fdde03 = bytes4(keccak256("name()")) string memory name = callAndParseStringReturn(token, 0x06fdde03); if (bytes(name).length == 0) { // fallback to full hex of address return addressToName(token); } return name; } } // File @uniswap/v2-core/contracts/interfaces/[email protected] pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } // File contracts/v612/ICOREGlobals.sol // COPYRIGHT cVault.finance TEAM // NO COPY // COPY = BAD // This code is provided with no assurances or guarantees of any kind. Use at your own responsibility. interface ICOREGlobals { function CORETokenAddress() external view returns (address); function COREGlobalsAddress() external view returns (address); function COREDelegatorAddress() external view returns (address); function COREVaultAddress() external returns (address); function COREWETHUniPair() external view returns (address); function UniswapFactory() external view returns (address); function TransferHandler() external view returns (address); function addDelegatorStateChangePermission(address that, bool status) external; function isStateChangeApprovedContract(address that) external view returns (bool); } // File @openzeppelin/contracts-ethereum-package/contracts/token/ERC20/[email protected] pragma solidity ^0.6.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File @openzeppelin/contracts-ethereum-package/contracts/math/[email protected] pragma solidity ^0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // File @openzeppelin/contracts/GSN/[email protected] pragma solidity ^0.6.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with 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; } } // File @openzeppelin/contracts/access/[email protected] pragma solidity ^0.6.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File contracts/v612/FlashArbitrageCOREBuyer.sol pragma solidity 0.6.12; pragma experimental ABIEncoderV2; // import "hardhat/console.sol"; interface ICOREVault { function addPendingRewards(uint256 _) external; } contract FlashArbitrageCOREBuyer is Ownable { using SafeMath for uint256; event COREBought(uint256 amount); mapping(address => bool) supportedPair; IERC20 public immutable CORE; address public immutable wETH; ICOREVault public immutable coreVault; IUniswapV2Factory public immutable uniswapFactory; address public immutable CORExWETHPair; constructor (address _coreGlobals) public { ICOREGlobals globals = ICOREGlobals(_coreGlobals); CORE = IERC20(globals.CORETokenAddress()); uniswapFactory = IUniswapV2Factory(globals.UniswapFactory()); coreVault = ICOREVault(globals.COREVaultAddress()); CORExWETHPair = globals.COREWETHUniPair(); wETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; supportedPair[globals.COREWETHUniPair()] = true; supportedPair[0x6fad7D44640c5cd0120DEeC0301e8cf850BecB68] = true; // CORE/cBTC } function buyAndGiveOutCOREForToken(address _token) public { // We check if this token is CORE token if it is we just send it out if(_token == address(CORE)) { // return breaks out no need to else..else.. return sendCOREToVault(); } uint256 balInputToken = IERC20(_token).balanceOf(address(this)); address pairWithCORE = uniswapFactory.getPair(_token, address(CORE)); // We check if there is a pair for CORE token with that token if(pairWithCORE != address(0) && supportedPair[pairWithCORE]){ // we check supported pair so people don't make 1 liquidity pair iwth CORE // It mens we have a pair with CORE // So we should just swap with it //Suport FoT tokens uint256 amountOut = swapSupportingFeeOnTransfertokens(_token, pairWithCORE, balInputToken); emit COREBought(amountOut); return sendCOREToVault(); } // This is the case we are not finding a pair with CORE so we try to find one with wETH address pairWithWETH = uniswapFactory.getPair(_token, wETH); if(pairWithWETH != address(0)) { uint256 amountOut = swapSupportingFeeOnTransfertokens(_token, pairWithWETH, balInputToken); amountOut = swapSupportingFeeOnTransfertokens(wETH, CORExWETHPair, amountOut); emit COREBought(amountOut); sendCOREToVault(); } else { revert("FA COREBuyer : Unsupported token"); } } function swapSupportingFeeOnTransfertokens(address _inputToken, address _pair, uint256 amountIn) internal returns (uint256 amountOut) { IUniswapV2Pair pair = IUniswapV2Pair(_pair); // We check the balance before uint256 balanceOfTargetTokenUniBefore = IERC20(_inputToken).balanceOf(_pair); // Then transfers safeTransfer(_inputToken, _pair, amountIn); // And check it again to get the delta // This is to support fee on tranfer tokens uint256 balanceOfTargetTokenUniAfter = IERC20(_inputToken).balanceOf(_pair); bool token0Out = pair.token1() == _inputToken; (uint256 reserve0, uint256 reserve1,) = pair.getReserves(); // console.log("balanceOfTargetTokenUniBefore", balanceOfTargetTokenUniBefore); // console.log("balanceOfTargetTokenUniAfter", balanceOfTargetTokenUniAfter); if(token0Out) { amountOut = getAmountOut( balanceOfTargetTokenUniAfter - balanceOfTargetTokenUniBefore, reserve1, reserve0 ); // console.log("amountOut",amountOut); pair.swap(amountOut,0, address(this), ""); } else { amountOut = getAmountOut( balanceOfTargetTokenUniAfter - balanceOfTargetTokenUniBefore, reserve0, reserve1 ); pair.swap(0,amountOut, address(this), ""); } } function sendCOREToVault() internal { uint256 balanceCORE = CORE.balanceOf(address(this)); CORE.transfer(address(coreVault), balanceCORE); coreVault.addPendingRewards(0); } function addSupportedPair(address _pair, bool _shouldBeSupported) onlyOwner public { supportedPair[_pair] = _shouldBeSupported; } function getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) internal pure returns (uint256 amountOut) { require(amountIn > 0, 'UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT'); require(reserveIn > 0 && reserveOut > 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY'); uint amountInWithFee = amountIn.mul(997); uint numerator = amountInWithFee.mul(reserveOut); uint denominator = reserveIn.mul(1000).add(amountInWithFee); amountOut = numerator / denominator; } /////////////////// //// Helper functions ////////////////// function sendETH(address payable to, uint256 amt) internal { // console.log("I'm transfering ETH", amt/1e18, to); // throw exception on failure to.transfer(amt); } function safeTransfer(address token, address to, uint256 value) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'FA Controller: TRANSFER_FAILED'); } // A function that lets owner remove any tokens from this addrss // note this address shoudn't hold any tokens // And if it does that means someting already went wrong or someone send them to this address function rescueUnsupportedTokens(address token, uint256 amt) public onlyOwner { IERC20(token).transfer(owner(), amt); } function rescueETH(uint256 amt) public { sendETH(0xd5b47B80668840e7164C1D1d81aF8a9d9727B421, amt); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_coreGlobals","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"COREBought","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":"CORE","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORExWETHPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_shouldBeSupported","type":"bool"}],"name":"addSupportedPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"buyAndGiveOutCOREForToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coreVault","outputs":[{"internalType":"contract ICOREVault","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"rescueUnsupportedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapFactory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6101206040523480156200001257600080fd5b5060405162001876380380620018768339810160408190526200003591620003f1565b600062000041620003ed565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000819050806001600160a01b0316630c37c9966040518163ffffffff1660e01b815260040160206040518083038186803b158015620000ca57600080fd5b505afa158015620000df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001059190620003f1565b6001600160a01b03166080816001600160a01b031660601b81525050806001600160a01b0316634f38d6666040518163ffffffff1660e01b815260040160206040518083038186803b1580156200015b57600080fd5b505afa15801562000170573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001969190620003f1565b6001600160a01b031660e0816001600160a01b031660601b81525050806001600160a01b031663f76a785a6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015620001ee57600080fd5b505af115801562000203573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002299190620003f1565b6001600160a01b031660c0816001600160a01b031660601b81525050806001600160a01b0316632c3ab4066040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027f57600080fd5b505afa15801562000294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ba9190620003f1565b60601b6001600160601b031916610100527fc02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000060a0526040805163161d5a0360e11b8152905160019182916000916001600160a01b03861691632c3ab40691600480820192602092909190829003018186803b1580156200033957600080fd5b505afa1580156200034e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003749190620003f1565b6001600160a01b031681526020808201929092526040016000908120805493151560ff19948516179055736fad7d44640c5cd0120deec0301e8cf850becb6890526001908190527fcfdcf6aa75cb45fe3abe06afa2a4bd5e02d93865d6fba9b7187ce5abafc3fd1e805490921617905550620004219050565b3390565b60006020828403121562000403578081fd5b81516001600160a01b03811681146200041a578182fd5b9392505050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c6113cf620004a7600039806106c9528061075552508061029a528061047952806105dc5250806101d352806109715280610a0552508061060b52806106a852806107795250806101f752806103af52806104a952806108a5528061094452506113cf6000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80639e252f00116100715780639e252f001461010c578063ae1a33181461011f578063cc55c6f614610132578063d7bb5dd214610145578063f24286211461014d578063f2fde38b14610155576100b4565b8063389e47a9146100b9578063674ce1b5146100ce5780636b6c0774146100ec578063715018a6146100f45780638bdb2afa146100fc5780638da5cb5b14610104575b600080fd5b6100cc6100c7366004610fb5565b610168565b005b6100d66101d1565b6040516100e391906110f1565b60405180910390f35b6100d66101f5565b6100cc610219565b6100d6610298565b6100d66102bc565b6100cc61011a366004611088565b6102cb565b6100cc61012d366004610fed565b6102ec565b6100cc610140366004610f7d565b6103ad565b6100d6610753565b6100d6610777565b6100cc610163366004610f7d565b61079b565b610170610851565b6000546001600160a01b039081169116146101a65760405162461bcd60e51b815260040161019d906112e1565b60405180910390fd5b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b610221610851565b6000546001600160a01b0390811691161461024e5760405162461bcd60e51b815260040161019d906112e1565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031690565b6102e973d5b47b80668840e7164c1d1d81af8a9d9727b42182610855565b50565b6102f4610851565b6000546001600160a01b039081169116146103215760405162461bcd60e51b815260040161019d906112e1565b816001600160a01b031663a9059cbb6103386102bc565b836040518363ffffffff1660e01b815260040161035692919061111f565b602060405180830381600087803b15801561037057600080fd5b505af1158015610384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a89190611018565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614156103f4576103ef61088b565b6102e9565b6040516370a0823160e01b81526000906001600160a01b038316906370a08231906104239030906004016110f1565b60206040518083038186803b15801561043b57600080fd5b505afa15801561044f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047391906110a0565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e6a43905847f00000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016104e5929190611105565b60206040518083038186803b1580156104fd57600080fd5b505afa158015610511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105359190610f99565b90506001600160a01b0381161580159061056757506001600160a01b03811660009081526001602052604090205460ff165b156105c2576000610579848385610a70565b90507ff28de31145210ce4c9e25f700f0de1061ffbbe567472f3a2c574414fbb48727b816040516105aa9190611138565b60405180910390a16105ba61088b565b5050506102e9565b60405163e6a4390560e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e6a43905906106339087907f000000000000000000000000000000000000000000000000000000000000000090600401611105565b60206040518083038186803b15801561064b57600080fd5b505afa15801561065f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106839190610f99565b90506001600160a01b038116156107355760006106a1858386610a70565b90506106ee7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000083610a70565b90507ff28de31145210ce4c9e25f700f0de1061ffbbe567472f3a2c574414fbb48727b8160405161071f9190611138565b60405180910390a161072f61088b565b5061074d565b60405162461bcd60e51b815260040161019d906111b5565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6107a3610851565b6000546001600160a01b039081169116146107d05760405162461bcd60e51b815260040161019d906112e1565b6001600160a01b0381166107f65760405162461bcd60e51b815260040161019d9061116f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156103a8573d6000803e3d6000fd5b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906108da9030906004016110f1565b60206040518083038186803b1580156108f257600080fd5b505afa158015610906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092a91906110a0565b60405163a9059cbb60e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb9061099b907f000000000000000000000000000000000000000000000000000000000000000090859060040161111f565b602060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed9190611018565b50604051630211eb7d60e51b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063423d6fa090610a3b90600090600401611138565b600060405180830381600087803b158015610a5557600080fd5b505af1158015610a69573d6000803e3d6000fd5b5050505050565b6040516370a0823160e01b8152600090839082906001600160a01b038716906370a0823190610aa39085906004016110f1565b60206040518083038186803b158015610abb57600080fd5b505afa158015610acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af391906110a0565b9050610b00868686610d94565b6040516370a0823160e01b81526000906001600160a01b038816906370a0823190610b2f9089906004016110f1565b60206040518083038186803b158015610b4757600080fd5b505afa158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7f91906110a0565b90506000876001600160a01b0316846001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc657600080fd5b505afa158015610bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfe9190610f99565b6001600160a01b0316149050600080856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610c4657600080fd5b505afa158015610c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7e9190611034565b506001600160701b031691506001600160701b031691508215610d1357610ca88585038284610e7b565b60405163022c0d9f60e01b81529097506001600160a01b0387169063022c0d9f90610cdc908a906000903090600401611141565b600060405180830381600087803b158015610cf657600080fd5b505af1158015610d0a573d6000803e3d6000fd5b50505050610d87565b610d208585038383610e7b565b60405163022c0d9f60e01b81529097506001600160a01b0387169063022c0d9f90610d54906000908b903090600401611141565b600060405180830381600087803b158015610d6e57600080fd5b505af1158015610d82573d6000803e3d6000fd5b505050505b5050505050509392505050565b60006060846001600160a01b031663a9059cbb8585604051602401610dba92919061111f565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051610df391906110b8565b6000604051808303816000865af19150503d8060008114610e30576040519150601f19603f3d011682016040523d82523d6000602084013e610e35565b606091505b5091509150818015610e5f575080511580610e5f575080806020019051810190610e5f9190611018565b610a695760405162461bcd60e51b815260040161019d90611221565b6000808411610e9c5760405162461bcd60e51b815260040161019d90611316565b600083118015610eac5750600082115b610ec85760405162461bcd60e51b815260040161019d90611258565b6000610ed6856103e5610f15565b90506000610ee48285610f15565b90506000610efe83610ef8886103e8610f15565b90610f58565b9050808281610f0957fe5b04979650505050505050565b600082610f2457506000610f52565b82820282848281610f3157fe5b0414610f4f5760405162461bcd60e51b815260040161019d906112a0565b90505b92915050565b600082820183811015610f4f5760405162461bcd60e51b815260040161019d906111ea565b600060208284031215610f8e578081fd5b8135610f4f81611361565b600060208284031215610faa578081fd5b8151610f4f81611361565b60008060408385031215610fc7578081fd5b8235610fd281611361565b91506020830135610fe281611376565b809150509250929050565b60008060408385031215610fff578182fd5b823561100a81611361565b946020939093013593505050565b600060208284031215611029578081fd5b8151610f4f81611376565b600080600060608486031215611048578081fd5b835161105381611384565b602085015190935061106481611384565b604085015190925063ffffffff8116811461107d578182fd5b809150509250925092565b600060208284031215611099578081fd5b5035919050565b6000602082840312156110b1578081fd5b5051919050565b60008251815b818110156110d857602081860181015185830152016110be565b818111156110e65782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b92835260208301919091526001600160a01b0316604082015260806060820181905260009082015260a00190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252818101527f464120434f52454275796572203a20556e737570706f7274656420746f6b656e604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f464120436f6e74726f6c6c65723a205452414e534645525f4641494c45440000604082015260600190565b60208082526028908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c604082015267495155494449545960c01b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4960408201526a1394155517d05353d5539560aa1b606082015260800190565b6001600160a01b03811681146102e957600080fd5b80151581146102e957600080fd5b6001600160701b03811681146102e957600080fdfea264697066735822122069ffe71ff7ba5c62431eba61bc0a0d99b0f6c55e266bc096da4a6d67acc1081364736f6c634300060c0033000000000000000000000000255ca4596a963883afe0ef9c85ea071cc050128b
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80639e252f00116100715780639e252f001461010c578063ae1a33181461011f578063cc55c6f614610132578063d7bb5dd214610145578063f24286211461014d578063f2fde38b14610155576100b4565b8063389e47a9146100b9578063674ce1b5146100ce5780636b6c0774146100ec578063715018a6146100f45780638bdb2afa146100fc5780638da5cb5b14610104575b600080fd5b6100cc6100c7366004610fb5565b610168565b005b6100d66101d1565b6040516100e391906110f1565b60405180910390f35b6100d66101f5565b6100cc610219565b6100d6610298565b6100d66102bc565b6100cc61011a366004611088565b6102cb565b6100cc61012d366004610fed565b6102ec565b6100cc610140366004610f7d565b6103ad565b6100d6610753565b6100d6610777565b6100cc610163366004610f7d565b61079b565b610170610851565b6000546001600160a01b039081169116146101a65760405162461bcd60e51b815260040161019d906112e1565b60405180910390fd5b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b7f000000000000000000000000c5cacb708425961594b63ec171f4df27a9c0d8c981565b7f00000000000000000000000062359ed7505efc61ff1d56fef82158ccaffa23d781565b610221610851565b6000546001600160a01b0390811691161461024e5760405162461bcd60e51b815260040161019d906112e1565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b6000546001600160a01b031690565b6102e973d5b47b80668840e7164c1d1d81af8a9d9727b42182610855565b50565b6102f4610851565b6000546001600160a01b039081169116146103215760405162461bcd60e51b815260040161019d906112e1565b816001600160a01b031663a9059cbb6103386102bc565b836040518363ffffffff1660e01b815260040161035692919061111f565b602060405180830381600087803b15801561037057600080fd5b505af1158015610384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a89190611018565b505050565b7f00000000000000000000000062359ed7505efc61ff1d56fef82158ccaffa23d76001600160a01b0316816001600160a01b031614156103f4576103ef61088b565b6102e9565b6040516370a0823160e01b81526000906001600160a01b038316906370a08231906104239030906004016110f1565b60206040518083038186803b15801561043b57600080fd5b505afa15801561044f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047391906110a0565b905060007f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f6001600160a01b031663e6a43905847f00000000000000000000000062359ed7505efc61ff1d56fef82158ccaffa23d76040518363ffffffff1660e01b81526004016104e5929190611105565b60206040518083038186803b1580156104fd57600080fd5b505afa158015610511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105359190610f99565b90506001600160a01b0381161580159061056757506001600160a01b03811660009081526001602052604090205460ff165b156105c2576000610579848385610a70565b90507ff28de31145210ce4c9e25f700f0de1061ffbbe567472f3a2c574414fbb48727b816040516105aa9190611138565b60405180910390a16105ba61088b565b5050506102e9565b60405163e6a4390560e01b81526000906001600160a01b037f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f169063e6a43905906106339087907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290600401611105565b60206040518083038186803b15801561064b57600080fd5b505afa15801561065f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106839190610f99565b90506001600160a01b038116156107355760006106a1858386610a70565b90506106ee7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc27f00000000000000000000000032ce7e48debdccbfe0cd037cc89526e4382cb81b83610a70565b90507ff28de31145210ce4c9e25f700f0de1061ffbbe567472f3a2c574414fbb48727b8160405161071f9190611138565b60405180910390a161072f61088b565b5061074d565b60405162461bcd60e51b815260040161019d906111b5565b50505050565b7f00000000000000000000000032ce7e48debdccbfe0cd037cc89526e4382cb81b81565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6107a3610851565b6000546001600160a01b039081169116146107d05760405162461bcd60e51b815260040161019d906112e1565b6001600160a01b0381166107f65760405162461bcd60e51b815260040161019d9061116f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156103a8573d6000803e3d6000fd5b6040516370a0823160e01b81526000906001600160a01b037f00000000000000000000000062359ed7505efc61ff1d56fef82158ccaffa23d716906370a08231906108da9030906004016110f1565b60206040518083038186803b1580156108f257600080fd5b505afa158015610906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092a91906110a0565b60405163a9059cbb60e01b81529091506001600160a01b037f00000000000000000000000062359ed7505efc61ff1d56fef82158ccaffa23d7169063a9059cbb9061099b907f000000000000000000000000c5cacb708425961594b63ec171f4df27a9c0d8c990859060040161111f565b602060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed9190611018565b50604051630211eb7d60e51b81526001600160a01b037f000000000000000000000000c5cacb708425961594b63ec171f4df27a9c0d8c9169063423d6fa090610a3b90600090600401611138565b600060405180830381600087803b158015610a5557600080fd5b505af1158015610a69573d6000803e3d6000fd5b5050505050565b6040516370a0823160e01b8152600090839082906001600160a01b038716906370a0823190610aa39085906004016110f1565b60206040518083038186803b158015610abb57600080fd5b505afa158015610acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af391906110a0565b9050610b00868686610d94565b6040516370a0823160e01b81526000906001600160a01b038816906370a0823190610b2f9089906004016110f1565b60206040518083038186803b158015610b4757600080fd5b505afa158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7f91906110a0565b90506000876001600160a01b0316846001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc657600080fd5b505afa158015610bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfe9190610f99565b6001600160a01b0316149050600080856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610c4657600080fd5b505afa158015610c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7e9190611034565b506001600160701b031691506001600160701b031691508215610d1357610ca88585038284610e7b565b60405163022c0d9f60e01b81529097506001600160a01b0387169063022c0d9f90610cdc908a906000903090600401611141565b600060405180830381600087803b158015610cf657600080fd5b505af1158015610d0a573d6000803e3d6000fd5b50505050610d87565b610d208585038383610e7b565b60405163022c0d9f60e01b81529097506001600160a01b0387169063022c0d9f90610d54906000908b903090600401611141565b600060405180830381600087803b158015610d6e57600080fd5b505af1158015610d82573d6000803e3d6000fd5b505050505b5050505050509392505050565b60006060846001600160a01b031663a9059cbb8585604051602401610dba92919061111f565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051610df391906110b8565b6000604051808303816000865af19150503d8060008114610e30576040519150601f19603f3d011682016040523d82523d6000602084013e610e35565b606091505b5091509150818015610e5f575080511580610e5f575080806020019051810190610e5f9190611018565b610a695760405162461bcd60e51b815260040161019d90611221565b6000808411610e9c5760405162461bcd60e51b815260040161019d90611316565b600083118015610eac5750600082115b610ec85760405162461bcd60e51b815260040161019d90611258565b6000610ed6856103e5610f15565b90506000610ee48285610f15565b90506000610efe83610ef8886103e8610f15565b90610f58565b9050808281610f0957fe5b04979650505050505050565b600082610f2457506000610f52565b82820282848281610f3157fe5b0414610f4f5760405162461bcd60e51b815260040161019d906112a0565b90505b92915050565b600082820183811015610f4f5760405162461bcd60e51b815260040161019d906111ea565b600060208284031215610f8e578081fd5b8135610f4f81611361565b600060208284031215610faa578081fd5b8151610f4f81611361565b60008060408385031215610fc7578081fd5b8235610fd281611361565b91506020830135610fe281611376565b809150509250929050565b60008060408385031215610fff578182fd5b823561100a81611361565b946020939093013593505050565b600060208284031215611029578081fd5b8151610f4f81611376565b600080600060608486031215611048578081fd5b835161105381611384565b602085015190935061106481611384565b604085015190925063ffffffff8116811461107d578182fd5b809150509250925092565b600060208284031215611099578081fd5b5035919050565b6000602082840312156110b1578081fd5b5051919050565b60008251815b818110156110d857602081860181015185830152016110be565b818111156110e65782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b92835260208301919091526001600160a01b0316604082015260806060820181905260009082015260a00190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252818101527f464120434f52454275796572203a20556e737570706f7274656420746f6b656e604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f464120436f6e74726f6c6c65723a205452414e534645525f4641494c45440000604082015260600190565b60208082526028908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c604082015267495155494449545960c01b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4960408201526a1394155517d05353d5539560aa1b606082015260800190565b6001600160a01b03811681146102e957600080fd5b80151581146102e957600080fd5b6001600160701b03811681146102e957600080fdfea264697066735822122069ffe71ff7ba5c62431eba61bc0a0d99b0f6c55e266bc096da4a6d67acc1081364736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000255ca4596a963883afe0ef9c85ea071cc050128b
-----Decoded View---------------
Arg [0] : _coreGlobals (address): 0x255CA4596A963883Afe0eF9c85EA071Cc050128B
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000255ca4596a963883afe0ef9c85ea071cc050128b
Deployed Bytecode Sourcemap
23295:6122:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27583:143;;;;;;:::i;:::-;;:::i;:::-;;23538:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23467:28;;;:::i;22494:148::-;;;:::i;23582:49::-;;;:::i;21852:79::-;;;:::i;29294:114::-;;;;;;:::i;:::-;;:::i;29153:133::-;;;;;;:::i;:::-;;:::i;24247:1608::-;;;;;;:::i;:::-;;:::i;23638:38::-;;;:::i;23502:29::-;;;:::i;22797:244::-;;;;;;:::i;:::-;;:::i;27583:143::-;22074:12;:10;:12::i;:::-;22064:6;;-1:-1:-1;;;;;22064:6:0;;;:22;;;22056:67;;;;-1:-1:-1;;;22056:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;27677:20:0;;;::::1;;::::0;;;:13:::1;:20;::::0;;;;:41;;-1:-1:-1;;27677:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27583:143::o;23538:37::-;;;:::o;23467:28::-;;;:::o;22494:148::-;22074:12;:10;:12::i;:::-;22064:6;;-1:-1:-1;;;;;22064:6:0;;;:22;;;22056:67;;;;-1:-1:-1;;;22056:67:0;;;;;;;:::i;:::-;22601:1:::1;22585:6:::0;;22564:40:::1;::::0;-1:-1:-1;;;;;22585:6:0;;::::1;::::0;22564:40:::1;::::0;22601:1;;22564:40:::1;22632:1;22615:19:::0;;-1:-1:-1;;;;;;22615:19:0::1;::::0;;22494:148::o;23582:49::-;;;:::o;21852:79::-;21890:7;21917:6;-1:-1:-1;;;;;21917:6:0;21852:79;:::o;29294:114::-;29344:56;29352:42;29396:3;29344:7;:56::i;:::-;29294:114;:::o;29153:133::-;22074:12;:10;:12::i;:::-;22064:6;;-1:-1:-1;;;;;22064:6:0;;;:22;;;22056:67;;;;-1:-1:-1;;;22056:67:0;;;;;;;:::i;:::-;29249:5:::1;-1:-1:-1::0;;;;;29242:22:0::1;;29265:7;:5;:7::i;:::-;29274:3;29242:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;29153:133:::0;;:::o;24247:1608::-;24425:4;-1:-1:-1;;;;;24407:23:0;:6;-1:-1:-1;;;;;24407:23:0;;24404:137;;;24512:17;:15;:17::i;:::-;24505:24;;24404:137;24576:39;;-1:-1:-1;;;24576:39:0;;24551:21;;-1:-1:-1;;;;;24576:24:0;;;;;:39;;24609:4;;24576:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24551:64;;24628:20;24651:14;-1:-1:-1;;;;;24651:22:0;;24674:6;24690:4;24651:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24628:68;-1:-1:-1;;;;;;24781:26:0;;;;;;:57;;-1:-1:-1;;;;;;24811:27:0;;;;;;:13;:27;;;;;;;;24781:57;24778:464;;;25060:17;25080:70;25114:6;25122:12;25136:13;25080:33;:70::i;:::-;25060:90;;25170:21;25181:9;25170:21;;;;;;:::i;:::-;;;;;;;;25213:17;:15;:17::i;:::-;25206:24;;;;;24778:464;25382:36;;-1:-1:-1;;;25382:36:0;;25359:20;;-1:-1:-1;;;;;25382:14:0;:22;;;;:36;;25405:6;;25413:4;;25382:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25359:59;-1:-1:-1;;;;;;25432:26:0;;;25429:411;;25475:17;25495:70;25529:6;25537:12;25551:13;25495:33;:70::i;:::-;25475:90;;25606:65;25640:4;25646:13;25661:9;25606:33;:65::i;:::-;25594:77;;25691:21;25702:9;25691:21;;;;;;:::i;:::-;;;;;;;;25727:17;:15;:17::i;:::-;25429:411;;;;25786:42;;-1:-1:-1;;;25786:42:0;;;;;;;:::i;25429:411::-;24247:1608;;;;:::o;23638:38::-;;;:::o;23502:29::-;;;:::o;22797:244::-;22074:12;:10;:12::i;:::-;22064:6;;-1:-1:-1;;;;;22064:6:0;;;:22;;;22056:67;;;;-1:-1:-1;;;22056:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22886:22:0;::::1;22878:73;;;;-1:-1:-1::0;;;22878:73:0::1;;;;;;;:::i;:::-;22988:6;::::0;;22967:38:::1;::::0;-1:-1:-1;;;;;22967:38:0;;::::1;::::0;22988:6;::::1;::::0;22967:38:::1;::::0;::::1;23016:6;:17:::0;;-1:-1:-1;;;;;;23016:17:0::1;-1:-1:-1::0;;;;;23016:17:0;;;::::1;::::0;;;::::1;::::0;;22797:244::o;20398:106::-;20486:10;20398:106;:::o;28357:195::-;28528:16;;-1:-1:-1;;;;;28528:11:0;;;:16;;;;;28540:3;;28528:16;;;;28540:3;28528:11;:16;;;;;;;;;;;;;;;;;;;27371:204;27440:29;;-1:-1:-1;;;27440:29:0;;27418:19;;-1:-1:-1;;;;;27440:4:0;:14;;;;:29;;27463:4;;27440:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27480:46;;-1:-1:-1;;;27480:46:0;;27418:51;;-1:-1:-1;;;;;;27480:4:0;:13;;;;:46;;27502:9;;27418:51;;27480:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;27537:30:0;;-1:-1:-1;;;27537:30:0;;-1:-1:-1;;;;;27537:9:0;:27;;;;:30;;27565:1;;27537:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27371:204;:::o;25863:1500::-;26145:36;;-1:-1:-1;;;26145:36:0;;25978:17;;26047:5;;25978:17;;-1:-1:-1;;;;;26145:29:0;;;;;:36;;26047:5;;26145:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26105:76;;26219:42;26232:11;26245:5;26252:8;26219:12;:42::i;:::-;26414:36;;-1:-1:-1;;;26414:36:0;;26375;;-1:-1:-1;;;;;26414:29:0;;;;;:36;;26444:5;;26414:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26375:75;;26461:14;26495:11;-1:-1:-1;;;;;26478:28:0;:4;-1:-1:-1;;;;;26478:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;26478:28:0;;26461:45;;26518:16;26536;26557:4;-1:-1:-1;;;;;26557:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26517:58;-1:-1:-1;;;;;26517:58:0;;;-1:-1:-1;;;;;26517:58:0;;;26767:9;26764:592;;;26805:161;26867:29;26836:28;:60;26915:8;26942;26805:12;:161::i;:::-;27033:41;;-1:-1:-1;;;27033:41:0;;26793:173;;-1:-1:-1;;;;;;27033:9:0;;;;;:41;;26793:173;;27053:1;;27064:4;;27033:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26764:592;;;27128:160;27190:29;27159:28;:60;27238:8;27265;27128:12;:160::i;:::-;27303:41;;-1:-1:-1;;;27303:41:0;;27116:172;;-1:-1:-1;;;;;;27303:9:0;;;;;:41;;27313:1;;27116:172;;27334:4;;27303:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26764:592;25863:1500;;;;;;;;;;;:::o;28560:363::-;28712:12;28726:17;28747:5;-1:-1:-1;;;;;28747:10:0;28781;28793:2;28797:5;28758:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28758:45:0;;;;;;;;;;;28747:57;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28711:93;;;;28823:7;:57;;;;-1:-1:-1;28835:11:0;;:16;;:44;;;28866:4;28855:24;;;;;;;;;;;;:::i;:::-;28815:100;;;;-1:-1:-1;;;28815:100:0;;;;;;;:::i;27734:530::-;27837:17;27886:1;27875:8;:12;27867:68;;;;-1:-1:-1;;;27867:68:0;;;;;;;:::i;:::-;27966:1;27954:9;:13;:31;;;;;27984:1;27971:10;:14;27954:31;27946:84;;;;-1:-1:-1;;;27946:84:0;;;;;;;:::i;:::-;28041:20;28064:17;:8;28077:3;28064:12;:17::i;:::-;28041:40;-1:-1:-1;28092:14:0;28109:31;28041:40;28129:10;28109:19;:31::i;:::-;28092:48;-1:-1:-1;28151:16:0;28170:40;28194:15;28170:19;:9;28184:4;28170:13;:19::i;:::-;:23;;:40::i;:::-;28151:59;;28245:11;28233:9;:23;;;;;;;27734:530;-1:-1:-1;;;;;;;27734:530:0:o;16625:471::-;16683:7;16928:6;16924:47;;-1:-1:-1;16958:1:0;16951:8;;16924:47;16995:5;;;16999:1;16995;:5;:1;17019:5;;;;;:10;17011:56;;;;-1:-1:-1;;;17011:56:0;;;;;;;:::i;:::-;17087:1;-1:-1:-1;16625:471:0;;;;;:::o;15295:181::-;15353:7;15385:5;;;15409:6;;;;15401:46;;;;-1:-1:-1;;;15401:46:0;;;;;;;:::i;1107:241:-1:-;;1211:2;1199:9;1190:7;1186:23;1182:32;1179:2;;;-1:-1;;1217:12;1179:2;85:6;72:20;97:33;124:5;97:33;:::i;1355:263::-;;1470:2;1458:9;1449:7;1445:23;1441:32;1438:2;;;-1:-1;;1476:12;1438:2;226:6;220:13;238:33;265:5;238:33;:::i;1625:360::-;;;1743:2;1731:9;1722:7;1718:23;1714:32;1711:2;;;-1:-1;;1749:12;1711:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;1801:63;-1:-1;1901:2;1937:22;;347:20;372:30;347:20;372:30;:::i;:::-;1909:60;;;;1705:280;;;;;:::o;1992:366::-;;;2113:2;2101:9;2092:7;2088:23;2084:32;2081:2;;;-1:-1;;2119:12;2081:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;2171:63;2271:2;2310:22;;;;757:20;;-1:-1;;;2075:283::o;2365:257::-;;2477:2;2465:9;2456:7;2452:23;2448:32;2445:2;;;-1:-1;;2483:12;2445:2;495:6;489:13;507:30;531:5;507:30;:::i;2629:533::-;;;;2777:2;2765:9;2756:7;2752:23;2748:32;2745:2;;;-1:-1;;2783:12;2745:2;633:6;627:13;645:33;672:5;645:33;:::i;:::-;2946:2;2996:22;;627:13;2835:74;;-1:-1;645:33;627:13;645:33;:::i;:::-;3065:2;3114:22;;1045:13;2954:74;;-1:-1;16717:10;16706:22;;18591:34;;18581:2;;-1:-1;;18629:12;18581:2;3073:73;;;;2739:423;;;;;:::o;3169:241::-;;3273:2;3261:9;3252:7;3248:23;3244:32;3241:2;;;-1:-1;;3279:12;3241:2;-1:-1;757:20;;3235:175;-1:-1;3235:175::o;3417:263::-;;3532:2;3520:9;3511:7;3507:23;3503:32;3500:2;;;-1:-1;;3538:12;3500:2;-1:-1;905:13;;3494:186;-1:-1;3494:186::o;8118:271::-;;3967:5;15595:12;-1:-1;17839:101;17853:6;17850:1;17847:13;17839:101;;;4111:4;17920:11;;;;;17914:18;17901:11;;;17894:39;17868:10;17839:101;;;17955:6;17952:1;17949:13;17946:2;;;-1:-1;18011:6;18006:3;18002:16;17995:27;17946:2;-1:-1;4142:16;;;;;8252:137;-1:-1;;8252:137::o;8396:222::-;-1:-1;;;;;16500:54;;;;3758:37;;8523:2;8508:18;;8494:124::o;8625:333::-;-1:-1;;;;;16500:54;;;3758:37;;16500:54;;8944:2;8929:18;;3758:37;8780:2;8765:18;;8751:207::o;8965:333::-;-1:-1;;;;;16500:54;;;;3758:37;;9284:2;9269:18;;8069:37;9120:2;9105:18;;9091:207::o;10108:238::-;4764:58;;;10243:2;10228:18;;10214:132::o;10353:764::-;4764:58;;;10817:2;10802:18;;8069:37;;;;-1:-1;;;;;16500:54;10900:2;10885:18;;3758:37;10644:3;10937:2;10922:18;;10915:48;;;10353:764;10629:19;;;15739;16511:42;15779:14;;10615:502::o;11124:416::-;11324:2;11338:47;;;5059:2;11309:18;;;15739:19;5095:34;15779:14;;;5075:55;-1:-1;;;5150:12;;;5143:30;5192:12;;;11295:245::o;11547:416::-;11747:2;11761:47;;;11732:18;;;15739:19;5479:34;15779:14;;;5459:55;5533:12;;;11718:245::o;11970:416::-;12170:2;12184:47;;;5784:2;12155:18;;;15739:19;5820:29;15779:14;;;5800:50;5869:12;;;12141:245::o;12393:416::-;12593:2;12607:47;;;6120:2;12578:18;;;15739:19;6156:32;15779:14;;;6136:53;6208:12;;;12564:245::o;12816:416::-;13016:2;13030:47;;;6459:2;13001:18;;;15739:19;6495:34;15779:14;;;6475:55;-1:-1;;;6550:12;;;6543:32;6594:12;;;12987:245::o;13239:416::-;13439:2;13453:47;;;6845:2;13424:18;;;15739:19;6881:34;15779:14;;;6861:55;-1:-1;;;6936:12;;;6929:25;6973:12;;;13410:245::o;13662:416::-;13862:2;13876:47;;;13847:18;;;15739:19;7260:34;15779:14;;;7240:55;7314:12;;;13833:245::o;14085:416::-;14285:2;14299:47;;;7834:2;14270:18;;;15739:19;7870:34;15779:14;;;7850:55;-1:-1;;;7925:12;;;7918:35;7972:12;;;14256:245::o;18043:117::-;-1:-1;;;;;16500:54;;18102:35;;18092:2;;18151:1;;18141:12;18167:111;18248:5;16296:13;16289:21;18226:5;18223:32;18213:2;;18269:1;;18259:12;18285:117;-1:-1;;;;;18372:5;16384:42;18347:5;18344:35;18334:2;;18393:1;;18383:12
Swarm Source
ipfs://69ffe71ff7ba5c62431eba61bc0a0d99b0f6c55e266bc096da4a6d67acc10813
Loading...
Loading
Loading...
Loading
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.