More Info
Private Name Tags
ContractCreator
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
13754315 | 1046 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
CustomTreasury
Compiler Version
v0.7.5+commit.eb77ed08
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-12-06 */ // File contracts/libraries/SafeMath.sol // SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity 0.7.5; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } 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; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } function sqrrt(uint256 a) internal pure returns (uint c) { if (a > 3) { c = a; uint b = add( div( a, 2), 1 ); while (b < c) { c = b; b = div( add( div( a, b ), b), 2 ); } } else if (a != 0) { c = 1; } } } // File contracts/libraries/Address.sol pragma solidity 0.7.5; library Address { function isContract(address account) internal view returns (bool) { uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } function addressToString(address _address) internal pure returns(string memory) { bytes32 _bytes = bytes32(uint256(_address)); bytes memory HEX = "0123456789abcdef"; bytes memory _addr = new bytes(42); _addr[0] = '0'; _addr[1] = 'x'; for(uint256 i = 0; i < 20; i++) { _addr[2+i*2] = HEX[uint8(_bytes[i + 12] >> 4)]; _addr[3+i*2] = HEX[uint8(_bytes[i + 12] & 0x0f)]; } return string(_addr); } } // File contracts/interfaces/IERC20.sol pragma solidity 0.7.5; interface IERC20 { function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } // File contracts/libraries/SafeERC20.sol pragma solidity 0.7.5; library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint256 value) internal { require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function _callOptionalReturn(IERC20 token, bytes memory data) private { bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } // File contracts/types/Ownable.sol pragma solidity 0.7.5; contract Ownable { address public policy; constructor () { policy = msg.sender; } modifier onlyPolicy() { require( policy == msg.sender, "Ownable: caller is not the owner" ); _; } function transferManagment(address _newOwner) external onlyPolicy() { require( _newOwner != address(0) ); policy = _newOwner; } } // File contracts/OlympusProCustomTreasury.sol pragma solidity 0.7.5; contract CustomTreasury is Ownable { /* ======== DEPENDENCIES ======== */ using SafeERC20 for IERC20; using SafeMath for uint; /* ======== STATE VARIABLS ======== */ address public immutable payoutToken; mapping(address => bool) public bondContract; /* ======== EVENTS ======== */ event BondContractWhitelisted(address bondContract); event BondContractDewhitelisted(address bondContract); event Withdraw(address token, address destination, uint amount); /* ======== CONSTRUCTOR ======== */ constructor(address _payoutToken, address _initialOwner) { require( _payoutToken != address(0) ); payoutToken = _payoutToken; require( _initialOwner != address(0) ); policy = _initialOwner; } /* ======== BOND CONTRACT FUNCTION ======== */ /** * @notice bond contract recieves payout tokens * @param _amountPayoutToken uint */ function sendPayoutTokens(uint _amountPayoutToken) external { require(bondContract[msg.sender], "msg.sender is not a bond contract"); IERC20(payoutToken).safeTransfer(msg.sender, _amountPayoutToken); } /* ======== VIEW FUNCTION ======== */ /** * @notice returns payout token valuation of priciple * @param _principalTokenAddress address * @param _amount uint * @return value_ uint */ function valueOfToken( address _principalTokenAddress, uint _amount ) public view returns ( uint value_ ) { // convert amount to match payout token decimals value_ = _amount.mul( 10 ** IERC20( payoutToken ).decimals() ).div( 10 ** IERC20( _principalTokenAddress ).decimals() ); } /* ======== POLICY FUNCTIONS ======== */ /** * @notice policy can withdraw ERC20 token to desired address * @param _token uint * @param _destination address * @param _amount uint */ function withdraw(address _token, address _destination, uint _amount) external onlyPolicy() { IERC20(_token).safeTransfer(_destination, _amount); emit Withdraw(_token, _destination, _amount); } /** @notice whitelist bond contract @param _bondContract address */ function whitelistBondContract(address _bondContract) external onlyPolicy() { bondContract[_bondContract] = true; emit BondContractWhitelisted(_bondContract); } /** @notice dewhitelist bond contract @param _bondContract address */ function dewhitelistBondContract(address _bondContract) external onlyPolicy() { bondContract[_bondContract] = false; emit BondContractDewhitelisted(_bondContract); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_payoutToken","type":"address"},{"internalType":"address","name":"_initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"bondContract","type":"address"}],"name":"BondContractDewhitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"bondContract","type":"address"}],"name":"BondContractWhitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"destination","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bondContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_bondContract","type":"address"}],"name":"dewhitelistBondContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"payoutToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountPayoutToken","type":"uint256"}],"name":"sendPayoutTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferManagment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_principalTokenAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"valueOfToken","outputs":[{"internalType":"uint256","name":"value_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_bondContract","type":"address"}],"name":"whitelistBondContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_destination","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a060405234801561001057600080fd5b506040516112e63803806112e68339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156100c857600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b81525050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561013957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505060805160601c6111446101a2600039806103f1528061070052806107b352506111446000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80633bfdd7de116100665780633bfdd7de146101985780634efa82b6146101dc578063d1b317e514610210578063d9caed1214610272578063da2d9740146102e057610093565b80630505c8c9146100985780630b04f918146100cc5780631a32666c146100fa57806324705db31461013e575b600080fd5b6100a0610324565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100f8600480360360208110156100e257600080fd5b8101908080359060200190929190505050610348565b005b61013c6004803603602081101561011057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610438565b005b6101806004803603602081101561015457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105a0565b60405180821515815260200191505060405180910390f35b6101da600480360360208110156101ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105c0565b005b6101e46106fe565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61025c6004803603604081101561022657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610722565b6040518082815260200191505060405180910390f35b6102de6004803603606081101561028857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087d565b005b610322600480360360208110156102f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109e1565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166103ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806110c46021913960400191505060405180910390fd5b61043533827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b4a9092919063ffffffff16565b50565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff77a8f6961cd2a6c1a5c09f5871f9afa593a9be371e6d5db1c49c3c846f27c8e81604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60016020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610681576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156106bb57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006108758373ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561076d57600080fd5b505afa158015610781573d6000803e3d6000fd5b505050506040513d602081101561079757600080fd5b810190808051906020019092919050505060ff16600a0a6108677f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561081757600080fd5b505afa15801561082b573d6000803e3d6000fd5b505050506040513d602081101561084157600080fd5b810190808051906020019092919050505060ff16600a0a85610bec90919063ffffffff16565b610c7290919063ffffffff16565b905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61096982828573ffffffffffffffffffffffffffffffffffffffff16610b4a9092919063ffffffff16565b7f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb838383604051808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ffc70d1cccd20b1240aa868d1187dc4831d94c6a1e04ceb1875b061c53a24482e81604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b610be78363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610cbc565b505050565b600080831415610bff5760009050610c6c565b6000828402905082848281610c1057fe5b0414610c67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806110a36021913960400191505060405180910390fd5b809150505b92915050565b6000610cb483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610dab565b905092915050565b6060610d1e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610e719092919063ffffffff16565b9050600081511115610da657808060200190516020811015610d3f57600080fd5b8101908080519060200190929190505050610da5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806110e5602a913960400191505060405180910390fd5b5b505050565b60008083118290610e57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e1c578082015181840152602081019050610e01565b50505050905090810190601f168015610e495780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610e6357fe5b049050809150509392505050565b6060610e808484600085610e89565b90509392505050565b6060610e948561108f565b610f06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310610f565780518252602082019150602081019050602083039250610f33565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610fb8576040519150601f19603f3d011682016040523d82523d6000602084013e610fbd565b606091505b50915091508115610fd2578092505050611087565b600081511115610fe55780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561104c578082015181840152602081019050611031565b50505050905090810190601f1680156110795780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b600080823b90506000811191505091905056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d73672e73656e646572206973206e6f74206120626f6e6420636f6e74726163745361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220f7f8c3b3136d0fab1004ca3ea1c62a99ca51a37c324cea712d0f68d39f8381d564736f6c634300070500330000000000000000000000001ceb5cb57c4d4e2b2433641b95dd330a33185a440000000000000000000000000d5dc686d0a2abbfdafdfb4d0533e886517d4e83
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100935760003560e01c80633bfdd7de116100665780633bfdd7de146101985780634efa82b6146101dc578063d1b317e514610210578063d9caed1214610272578063da2d9740146102e057610093565b80630505c8c9146100985780630b04f918146100cc5780631a32666c146100fa57806324705db31461013e575b600080fd5b6100a0610324565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100f8600480360360208110156100e257600080fd5b8101908080359060200190929190505050610348565b005b61013c6004803603602081101561011057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610438565b005b6101806004803603602081101561015457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105a0565b60405180821515815260200191505060405180910390f35b6101da600480360360208110156101ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105c0565b005b6101e46106fe565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61025c6004803603604081101561022657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610722565b6040518082815260200191505060405180910390f35b6102de6004803603606081101561028857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087d565b005b610322600480360360208110156102f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109e1565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166103ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806110c46021913960400191505060405180910390fd5b61043533827f0000000000000000000000001ceb5cb57c4d4e2b2433641b95dd330a33185a4473ffffffffffffffffffffffffffffffffffffffff16610b4a9092919063ffffffff16565b50565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff77a8f6961cd2a6c1a5c09f5871f9afa593a9be371e6d5db1c49c3c846f27c8e81604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60016020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610681576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156106bb57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f0000000000000000000000001ceb5cb57c4d4e2b2433641b95dd330a33185a4481565b60006108758373ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561076d57600080fd5b505afa158015610781573d6000803e3d6000fd5b505050506040513d602081101561079757600080fd5b810190808051906020019092919050505060ff16600a0a6108677f0000000000000000000000001ceb5cb57c4d4e2b2433641b95dd330a33185a4473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561081757600080fd5b505afa15801561082b573d6000803e3d6000fd5b505050506040513d602081101561084157600080fd5b810190808051906020019092919050505060ff16600a0a85610bec90919063ffffffff16565b610c7290919063ffffffff16565b905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61096982828573ffffffffffffffffffffffffffffffffffffffff16610b4a9092919063ffffffff16565b7f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb838383604051808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ffc70d1cccd20b1240aa868d1187dc4831d94c6a1e04ceb1875b061c53a24482e81604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b610be78363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610cbc565b505050565b600080831415610bff5760009050610c6c565b6000828402905082848281610c1057fe5b0414610c67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806110a36021913960400191505060405180910390fd5b809150505b92915050565b6000610cb483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610dab565b905092915050565b6060610d1e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610e719092919063ffffffff16565b9050600081511115610da657808060200190516020811015610d3f57600080fd5b8101908080519060200190929190505050610da5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806110e5602a913960400191505060405180910390fd5b5b505050565b60008083118290610e57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e1c578082015181840152602081019050610e01565b50505050905090810190601f168015610e495780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610e6357fe5b049050809150509392505050565b6060610e808484600085610e89565b90509392505050565b6060610e948561108f565b610f06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310610f565780518252602082019150602081019050602083039250610f33565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610fb8576040519150601f19603f3d011682016040523d82523d6000602084013e610fbd565b606091505b50915091508115610fd2578092505050611087565b600081511115610fe55780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561104c578082015181840152602081019050611031565b50505050905090810190601f1680156110795780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b600080823b90506000811191505091905056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d73672e73656e646572206973206e6f74206120626f6e6420636f6e74726163745361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220f7f8c3b3136d0fab1004ca3ea1c62a99ca51a37c324cea712d0f68d39f8381d564736f6c63430007050033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001ceb5cb57c4d4e2b2433641b95dd330a33185a440000000000000000000000000d5dc686d0a2abbfdafdfb4d0533e886517d4e83
-----Decoded View---------------
Arg [0] : _payoutToken (address): 0x1cEB5cB57C4D4E2b2433641b95Dd330A33185A44
Arg [1] : _initialOwner (address): 0x0D5Dc686d0a2ABBfDaFDFb4D0533E886517d4E83
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000001ceb5cb57c4d4e2b2433641b95dd330a33185a44
Arg [1] : 0000000000000000000000000d5dc686d0a2abbfdafdfb4d0533e886517d4e83
Deployed Bytecode Sourcemap
10483:2817:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10023:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11488:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12813:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10749:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10246:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10704:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11952:302;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12492:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13103:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10023:21;;;;;;;;;;;;:::o;11488:224::-;11567:12;:24;11580:10;11567:24;;;;;;;;;;;;;;;;;;;;;;;;;11559:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11640:64;11673:10;11685:18;11647:11;11640:32;;;;:64;;;;;:::i;:::-;11488:224;:::o;12813:183::-;10166:10;10156:20;;:6;;;;;;;;;;:20;;;10147:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12930:4:::1;12900:12:::0;:27:::1;12913:13;12900:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12950:38;12974:13;12950:38;;;;;;;;;;;;;;;;;;;;12813:183:::0;:::o;10749:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;10246:150::-;10166:10;10156:20;;:6;;;;;;;;;;:20;;;10147:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10355:1:::1;10334:23;;:9;:23;;;;10325:34;;;::::0;::::1;;10379:9;10370:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;10246:150:::0;:::o;10704:36::-;;;:::o;11952:302::-;12044:11;12136:110;12209:22;12201:41;;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12195:49;;:2;:49;12136:53;12163:11;12155:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12149:38;;:2;:38;12136:7;:11;;:53;;;;:::i;:::-;:57;;:110;;;;:::i;:::-;12127:119;;11952:302;;;;:::o;12492:216::-;10166:10;10156:20;;:6;;;;;;;;;;:20;;;10147:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12595:50:::1;12623:12;12637:7;12602:6;12595:27;;;;:50;;;;;:::i;:::-;12661:39;12670:6;12678:12;12692:7;12661:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12492:216:::0;;;:::o;13103:188::-;10166:10;10156:20;;:6;;;;;;;;;;:20;;;10147:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13222:5:::1;13192:12;:27;13205:13;13192:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13243:40;13269:13;13243:40;;;;;;;;;;;;;;;;;;;;13103:188:::0;:::o;8112:177::-;8195:86;8215:5;8245:23;;;8270:2;8274:5;8222:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8195:19;:86::i;:::-;8112:177;;;:::o;678:250::-;736:7;765:1;760;:6;756:47;;;790:1;783:8;;;;756:47;815:9;831:1;827;:5;815:17;;860:1;855;851;:5;;;;;;:10;843:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;919:1;912:8;;;678:250;;;;;:::o;936:132::-;994:7;1021:39;1025:1;1028;1021:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1014:46;;936:132;;;;:::o;9501:420::-;9584:23;9610:69;9638:4;9610:69;;;;;;;;;;;;;;;;;9618:5;9610:27;;;;:69;;;;;:::i;:::-;9584:95;;9714:1;9694:10;:17;:21;9690:224;;;9836:10;9825:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9817:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9690:224;9501:420;;;:::o;1076:189::-;1162:7;1194:1;1190;:5;1197:12;1182:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1221:9;1237:1;1233;:5;;;;;;1221:17;;1256:1;1249:8;;;1076:189;;;;;:::o;2850:196::-;2953:12;2985:53;3008:6;3016:4;3022:1;3025:12;2985:22;:53::i;:::-;2978:60;;2850:196;;;;;:::o;3826:979::-;3956:12;3989:18;4000:6;3989:10;:18::i;:::-;3981:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4115:12;4129:23;4156:6;:11;;4176:8;4187:4;4156:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4114:78;;;;4207:7;4203:595;;;4238:10;4231:17;;;;;;4203:595;4372:1;4352:10;:17;:21;4348:439;;;4615:10;4609:17;4676:15;4663:10;4659:2;4655:19;4648:44;4563:148;4758:12;4751:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3826:979;;;;;;;:::o;2023:233::-;2083:4;2102:12;2213:7;2201:20;2193:28;;2247:1;2240:4;:8;2233:15;;;2023:233;;;:::o
Swarm Source
ipfs://f7f8c3b3136d0fab1004ca3ea1c62a99ca51a37c324cea712d0f68d39f8381d5
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.