Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Sponsored
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
14837013 | 486 days 20 hrs ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
DssSpell
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-05-24 */ // hevm: flattened sources of src/DssSpell.sol // SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity =0.6.12 >=0.5.12 >=0.6.12 <0.7.0; // pragma experimental ABIEncoderV2; ////// lib/dss-exec-lib/src/CollateralOpts.sol /* pragma solidity ^0.6.12; */ struct CollateralOpts { bytes32 ilk; address gem; address join; address clip; address calc; address pip; bool isLiquidatable; bool isOSM; bool whitelistOSM; uint256 ilkDebtCeiling; uint256 minVaultAmount; uint256 maxLiquidationAmount; uint256 liquidationPenalty; uint256 ilkStabilityFee; uint256 startingPriceFactor; uint256 breakerTolerance; uint256 auctionDuration; uint256 permittedDrop; uint256 liquidationRatio; uint256 kprFlatReward; uint256 kprPctReward; } ////// lib/dss-exec-lib/src/DssExecLib.sol // // DssExecLib.sol -- MakerDAO Executive Spellcrafting Library // // Copyright (C) 2020 Maker Ecosystem Growth Holdings, Inc. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. /* pragma solidity ^0.6.12; */ /* // pragma experimental ABIEncoderV2; */ /* import { CollateralOpts } from "./CollateralOpts.sol"; */ interface Initializable { function init(bytes32) external; } interface Authorizable { function rely(address) external; function deny(address) external; function setAuthority(address) external; } interface Fileable { function file(bytes32, address) external; function file(bytes32, uint256) external; function file(bytes32, bytes32, uint256) external; function file(bytes32, bytes32, address) external; } interface Drippable { function drip() external returns (uint256); function drip(bytes32) external returns (uint256); } interface Pricing { function poke(bytes32) external; } interface ERC20 { function decimals() external returns (uint8); } interface DssVat { function hope(address) external; function nope(address) external; function ilks(bytes32) external returns (uint256 Art, uint256 rate, uint256 spot, uint256 line, uint256 dust); function Line() external view returns (uint256); function suck(address, address, uint) external; } interface ClipLike { function vat() external returns (address); function dog() external returns (address); function spotter() external view returns (address); function calc() external view returns (address); function ilk() external returns (bytes32); } interface DogLike { function ilks(bytes32) external returns (address clip, uint256 chop, uint256 hole, uint256 dirt); } interface JoinLike { function vat() external returns (address); function ilk() external returns (bytes32); function gem() external returns (address); function dec() external returns (uint256); function join(address, uint) external; function exit(address, uint) external; } // Includes Median and OSM functions interface OracleLike_2 { function src() external view returns (address); function lift(address[] calldata) external; function drop(address[] calldata) external; function setBar(uint256) external; function kiss(address) external; function diss(address) external; function kiss(address[] calldata) external; function diss(address[] calldata) external; function orb0() external view returns (address); function orb1() external view returns (address); } interface MomLike { function setOsm(bytes32, address) external; function setPriceTolerance(address, uint256) external; } interface RegistryLike { function add(address) external; function xlip(bytes32) external view returns (address); } // https://github.com/makerdao/dss-chain-log interface ChainlogLike { function setVersion(string calldata) external; function setIPFS(string calldata) external; function setSha256sum(string calldata) external; function getAddress(bytes32) external view returns (address); function setAddress(bytes32, address) external; function removeAddress(bytes32) external; } interface IAMLike { function ilks(bytes32) external view returns (uint256,uint256,uint48,uint48,uint48); function setIlk(bytes32,uint256,uint256,uint256) external; function remIlk(bytes32) external; function exec(bytes32) external returns (uint256); } interface LerpFactoryLike { function newLerp(bytes32 name_, address target_, bytes32 what_, uint256 startTime_, uint256 start_, uint256 end_, uint256 duration_) external returns (address); function newIlkLerp(bytes32 name_, address target_, bytes32 ilk_, bytes32 what_, uint256 startTime_, uint256 start_, uint256 end_, uint256 duration_) external returns (address); } interface LerpLike { function tick() external returns (uint256); } library DssExecLib { /* WARNING The following library code acts as an interface to the actual DssExecLib library, which can be found in its own deployed contract. Only trust the actual library's implementation. */ address constant public LOG = 0xdA0Ab1e0017DEbCd72Be8599041a2aa3bA7e740F; uint256 constant internal WAD = 10 ** 18; uint256 constant internal RAY = 10 ** 27; uint256 constant internal RAD = 10 ** 45; uint256 constant internal THOUSAND = 10 ** 3; uint256 constant internal MILLION = 10 ** 6; uint256 constant internal BPS_ONE_PCT = 100; uint256 constant internal BPS_ONE_HUNDRED_PCT = 100 * BPS_ONE_PCT; uint256 constant internal RATES_ONE_HUNDRED_PCT = 1000000021979553151239153027; function add(uint256 x, uint256 y) internal pure returns (uint256 z) {} function mkr() public view returns (address) { return getChangelogAddress("MCD_GOV"); } function end() public view returns (address) { return getChangelogAddress("MCD_END"); } function esm() public view returns (address) { return getChangelogAddress("MCD_ESM"); } function reg() public view returns (address) { return getChangelogAddress("ILK_REGISTRY"); } function flap() public view returns (address) { return getChangelogAddress("MCD_FLAP"); } function lerpFab() public view returns (address) { return getChangelogAddress("LERP_FAB"); } function clip(bytes32 _ilk) public view returns (address _clip) {} function flip(bytes32 _ilk) public view returns (address _flip) {} function calc(bytes32 _ilk) public view returns (address _calc) {} function getChangelogAddress(bytes32 _key) public view returns (address) {} function setAuthority(address _base, address _authority) public {} function canCast(uint40 _ts, bool _officeHours) public pure returns (bool) {} function nextCastTime(uint40 _eta, uint40 _ts, bool _officeHours) public pure returns (uint256 castTime) {} function setValue(address _base, bytes32 _what, uint256 _amt) public {} function setValue(address _base, bytes32 _ilk, bytes32 _what, uint256 _amt) public {} function linearInterpolation(bytes32 _name, address _target, bytes32 _ilk, bytes32 _what, uint256 _startTime, uint256 _start, uint256 _end, uint256 _duration) public returns (address) {} } ////// lib/dss-exec-lib/src/DssAction.sol // // DssAction.sol -- DSS Executive Spell Actions // // Copyright (C) 2020 Maker Ecosystem Growth Holdings, Inc. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. /* pragma solidity ^0.6.12; */ /* import { DssExecLib } from "./DssExecLib.sol"; */ /* import { CollateralOpts } from "./CollateralOpts.sol"; */ interface OracleLike_1 { function src() external view returns (address); } abstract contract DssAction { using DssExecLib for *; // Modifier used to limit execution time when office hours is enabled modifier limited { require(DssExecLib.canCast(uint40(block.timestamp), officeHours()), "Outside office hours"); _; } // Office Hours defaults to true by default. // To disable office hours, override this function and // return false in the inherited action. function officeHours() public virtual returns (bool) { return true; } // DssExec calls execute. We limit this function subject to officeHours modifier. function execute() external limited { actions(); } // DssAction developer must override `actions()` and place all actions to be called inside. // The DssExec function will call this subject to the officeHours limiter // By keeping this function public we allow simulations of `execute()` on the actions outside of the cast time. function actions() public virtual; // Provides a descriptive tag for bot consumption // This should be modified weekly to provide a summary of the actions // Hash: seth keccak -- "$(wget https://<executive-vote-canonical-post> -q -O - 2>/dev/null)" function description() external virtual view returns (string memory); // Returns the next available cast time function nextCastTime(uint256 eta) external returns (uint256 castTime) { require(eta <= uint40(-1)); castTime = DssExecLib.nextCastTime(uint40(eta), uint40(block.timestamp), officeHours()); } } ////// lib/dss-exec-lib/src/DssExec.sol // // DssExec.sol -- MakerDAO Executive Spell Template // // Copyright (C) 2020 Maker Ecosystem Growth Holdings, Inc. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. /* pragma solidity ^0.6.12; */ interface PauseAbstract { function delay() external view returns (uint256); function plot(address, bytes32, bytes calldata, uint256) external; function exec(address, bytes32, bytes calldata, uint256) external returns (bytes memory); } interface Changelog { function getAddress(bytes32) external view returns (address); } interface SpellAction { function officeHours() external view returns (bool); function description() external view returns (string memory); function nextCastTime(uint256) external view returns (uint256); } contract DssExec { Changelog constant public log = Changelog(0xdA0Ab1e0017DEbCd72Be8599041a2aa3bA7e740F); uint256 public eta; bytes public sig; bool public done; bytes32 immutable public tag; address immutable public action; uint256 immutable public expiration; PauseAbstract immutable public pause; // Provides a descriptive tag for bot consumption // This should be modified weekly to provide a summary of the actions // Hash: seth keccak -- "$(wget https://<executive-vote-canonical-post> -q -O - 2>/dev/null)" function description() external view returns (string memory) { return SpellAction(action).description(); } function officeHours() external view returns (bool) { return SpellAction(action).officeHours(); } function nextCastTime() external view returns (uint256 castTime) { return SpellAction(action).nextCastTime(eta); } // @param _description A string description of the spell // @param _expiration The timestamp this spell will expire. (Ex. now + 30 days) // @param _spellAction The address of the spell action constructor(uint256 _expiration, address _spellAction) public { pause = PauseAbstract(log.getAddress("MCD_PAUSE")); expiration = _expiration; action = _spellAction; sig = abi.encodeWithSignature("execute()"); bytes32 _tag; // Required for assembly access address _action = _spellAction; // Required for assembly access assembly { _tag := extcodehash(_action) } tag = _tag; } function schedule() public { require(now <= expiration, "This contract has expired"); require(eta == 0, "This spell has already been scheduled"); eta = now + PauseAbstract(pause).delay(); pause.plot(action, tag, sig, eta); } function cast() public { require(!done, "spell-already-cast"); done = true; pause.exec(action, tag, sig, eta); } } ////// lib/dss-interfaces/src/dapp/DSTokenAbstract.sol /* pragma solidity >=0.5.12; */ // https://github.com/dapphub/ds-token/blob/master/src/token.sol interface DSTokenAbstract { function name() external view returns (bytes32); function symbol() external view returns (bytes32); function decimals() external view returns (uint256); function totalSupply() external view returns (uint256); function balanceOf(address) external view returns (uint256); function transfer(address, uint256) external returns (bool); function allowance(address, address) external view returns (uint256); function approve(address, uint256) external returns (bool); function approve(address) external returns (bool); function transferFrom(address, address, uint256) external returns (bool); function push(address, uint256) external; function pull(address, uint256) external; function move(address, address, uint256) external; function mint(uint256) external; function mint(address,uint) external; function burn(uint256) external; function burn(address,uint) external; function setName(bytes32) external; function authority() external view returns (address); function owner() external view returns (address); function setOwner(address) external; function setAuthority(address) external; } ////// lib/dss-interfaces/src/dss/EndAbstract.sol /* pragma solidity >=0.5.12; */ // https://github.com/makerdao/dss/blob/master/src/end.sol interface EndAbstract { function wards(address) external view returns (uint256); function rely(address) external; function deny(address) external; function vat() external view returns (address); function cat() external view returns (address); function dog() external view returns (address); function vow() external view returns (address); function pot() external view returns (address); function spot() external view returns (address); function live() external view returns (uint256); function when() external view returns (uint256); function wait() external view returns (uint256); function debt() external view returns (uint256); function tag(bytes32) external view returns (uint256); function gap(bytes32) external view returns (uint256); function Art(bytes32) external view returns (uint256); function fix(bytes32) external view returns (uint256); function bag(address) external view returns (uint256); function out(bytes32, address) external view returns (uint256); function WAD() external view returns (uint256); function RAY() external view returns (uint256); function file(bytes32, address) external; function file(bytes32, uint256) external; function cage() external; function cage(bytes32) external; function skip(bytes32, uint256) external; function snip(bytes32, uint256) external; function skim(bytes32, address) external; function free(bytes32) external; function thaw() external; function flow(bytes32) external; function pack(uint256) external; function cash(bytes32, uint256) external; } ////// lib/dss-interfaces/src/dss/FlashAbstract.sol /* pragma solidity >=0.5.12; */ // https://github.com/makerdao/dss-flash/blob/master/src/flash.sol interface FlashAbstract { function wards(address) external view returns (uint256); function rely(address) external; function deny(address) external; function vat() external view returns (address); function daiJoin() external view returns (address); function dai() external view returns (address); function vow() external view returns (address); function max() external view returns (uint256); function toll() external view returns (uint256); function CALLBACK_SUCCESS() external view returns (bytes32); function CALLBACK_SUCCESS_VAT_DAI() external view returns (bytes32); function file(bytes32, uint256) external; function maxFlashLoan(address) external view returns (uint256); function flashFee(address, uint256) external view returns (uint256); function flashLoan(address, address, uint256, bytes calldata) external returns (bool); function vatDaiFlashLoan(address, uint256, bytes calldata) external returns (bool); function convert() external; function accrue() external; } ////// lib/dss-interfaces/src/dss/IlkRegistryAbstract.sol /* pragma solidity >=0.5.12; */ // https://github.com/makerdao/ilk-registry interface IlkRegistryAbstract { function wards(address) external view returns (uint256); function rely(address) external; function deny(address) external; function vat() external view returns (address); function dog() external view returns (address); function cat() external view returns (address); function spot() external view returns (address); function ilkData(bytes32) external view returns ( uint96, address, address, uint8, uint96, address, address, string memory, string memory ); function ilks() external view returns (bytes32[] memory); function ilks(uint) external view returns (bytes32); function add(address) external; function remove(bytes32) external; function update(bytes32) external; function removeAuth(bytes32) external; function file(bytes32, address) external; function file(bytes32, bytes32, address) external; function file(bytes32, bytes32, uint256) external; function file(bytes32, bytes32, string calldata) external; function count() external view returns (uint256); function list() external view returns (bytes32[] memory); function list(uint256, uint256) external view returns (bytes32[] memory); function get(uint256) external view returns (bytes32); function info(bytes32) external view returns ( string memory, string memory, uint256, uint256, address, address, address, address ); function pos(bytes32) external view returns (uint256); function class(bytes32) external view returns (uint256); function gem(bytes32) external view returns (address); function pip(bytes32) external view returns (address); function join(bytes32) external view returns (address); function xlip(bytes32) external view returns (address); function dec(bytes32) external view returns (uint256); function symbol(bytes32) external view returns (string memory); function name(bytes32) external view returns (string memory); function put(bytes32, address, address, uint256, uint256, address, address, string calldata, string calldata) external; } ////// src/DssSpellCollateralOnboarding.sol // // Copyright (C) 2021-2022 Dai Foundation // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. /* pragma solidity 0.6.12; */ /* import "dss-exec-lib/DssExecLib.sol"; */ contract DssSpellCollateralOnboardingAction { // --- Rates --- // Many of the settings that change weekly rely on the rate accumulator // described at https://docs.makerdao.com/smart-contract-modules/rates-module // To check this yourself, use the following rate calculation (example 8%): // // $ bc -l <<< 'scale=27; e( l(1.08)/(60 * 60 * 24 * 365) )' // // A table of rates can be found at // https://ipfs.io/ipfs/QmPgPVrVxDCGyNR5rGp9JC5AUxppLzUAqvncRJDcxQnX1u // // uint256 constant NUMBER_PCT = 1000000001234567890123456789; // --- Math --- // uint256 constant THOUSAND = 10 ** 3; // uint256 constant MILLION = 10 ** 6; // uint256 constant BILLION = 10 ** 9; // --- DEPLOYED COLLATERAL ADDRESSES --- // address constant XXX = 0x0000000000000000000000000000000000000000; // address constant PIP_XXX = 0x0000000000000000000000000000000000000000; // address constant MCD_JOIN_XXX_A = 0x0000000000000000000000000000000000000000; // address constant MCD_CLIP_XXX_A = 0x0000000000000000000000000000000000000000; // address constant MCD_CLIP_CALC_XXX_A = 0x0000000000000000000000000000000000000000; function onboardNewCollaterals() internal { // ----------------------------- Collateral onboarding ----------------------------- // Add ______________ as a new Vault Type // Poll Link: // DssExecLib.addNewCollateral( // CollateralOpts({ // ilk: "XXX-A", // gem: XXX, // join: MCD_JOIN_XXX_A, // clip: MCD_CLIP_XXX_A, // calc: MCD_CLIP_CALC_XXX_A, // pip: PIP_XXX, // isLiquidatable: BOOL, // isOSM: BOOL, // whitelistOSM: BOOL, // ilkDebtCeiling: line, // minVaultAmount: dust, // maxLiquidationAmount: hole, // liquidationPenalty: chop, // ilkStabilityFee: duty, // startingPriceFactor: buf, // breakerTolerance: tolerance, // auctionDuration: tail, // permittedDrop: cusp, // liquidationRatio: mat, // kprFlatReward: tip, // kprPctReward: chip // }) // ); // DssExecLib.setStairstepExponentialDecrease( // CALC_ADDR, // DURATION, // PCT_BPS // ); // DssExecLib.setIlkAutoLineParameters( // "XXX-A", // AMOUNT, // GAP, // TTL // ); // ChainLog Updates // DssExecLib.setChangelogAddress("XXX", XXX); // DssExecLib.setChangelogAddress("PIP_XXX", PIP_XXX); // DssExecLib.setChangelogAddress("MCD_JOIN_XXX_A", MCD_JOIN_XXX_A); // DssExecLib.setChangelogAddress("MCD_CLIP_XXX_A", MCD_CLIP_XXX_A); // DssExecLib.setChangelogAddress("MCD_CLIP_CALC_XXX_A", MCD_CLIP_CALC_XXX_A); } } ////// src/DssSpell.sol // // Copyright (C) 2021-2022 Dai Foundation // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. /* pragma solidity 0.6.12; */ // Enable ABIEncoderV2 when onboarding collateral // // pragma experimental ABIEncoderV2; /* import "dss-exec-lib/DssExec.sol"; */ /* import "dss-exec-lib/DssAction.sol"; */ /* import { DssSpellCollateralOnboardingAction } from "./DssSpellCollateralOnboarding.sol"; */ /* import "dss-interfaces/dss/EndAbstract.sol"; */ /* import "dss-interfaces/dss/IlkRegistryAbstract.sol"; */ /* import "dss-interfaces/dss/FlashAbstract.sol"; */ /* import "dss-interfaces/dapp/DSTokenAbstract.sol"; */ contract DssSpellAction is DssAction, DssSpellCollateralOnboardingAction { // Provides a descriptive tag for bot consumption // This should be modified weekly to provide a summary of the actions // Hash: cast keccak -- "$(wget https://raw.githubusercontent.com/makerdao/community/45d2525f0b3f57a3e102fbd7034d1d912dea921a/governance/votes/Executive%20vote%20-%20May%2025%2C%202022.md -q -O - 2>/dev/null)" string public constant override description = "2022-05-25 MakerDAO Executive Spell | Hash: 0x308785a5c5d12cf03a48ce076a72b12ac887590da1b84ef68e4272a2d026ed9c"; // Math uint256 constant WAD = 10 ** 18; uint256 constant RAD = 10 ** 45; // Many of the settings that change weekly rely on the rate accumulator // described at https://docs.makerdao.com/smart-contract-modules/rates-module // To check this yourself, use the following rate calculation (example 8%): // // $ bc -l <<< 'scale=27; e( l(1.08)/(60 * 60 * 24 * 365) )' // // A table of rates can be found at // https://ipfs.io/ipfs/QmPgPVrVxDCGyNR5rGp9JC5AUxppLzUAqvncRJDcxQnX1u // // Turn office hours off function officeHours() public override returns (bool) { return false; } address immutable MCD_FLAP = DssExecLib.flap(); address immutable MCD_ESM = DssExecLib.esm(); address immutable MCD_GOV = DssExecLib.mkr(); address immutable SIDESTREAM_WALLET = 0xb1f950a51516a697E103aaa69E152d839182f6Fe; address immutable DUX_WALLET = 0x5A994D8428CCEbCC153863CCdA9D2Be6352f89ad; function actions() public override { // --------------------------------------------------------------------- // Includes changes from the DssSpellCollateralOnboardingAction // onboardNewCollaterals(); // ---------------------------- Lid for Flap --------------------------- // https://vote.makerdao.com/polling/QmREdTJK DssExecLib.setValue(MCD_FLAP, "lid", 30_000 * RAD); // ------------------------------ ESM Min ------------------------------ // https://vote.makerdao.com/polling/QmQgab4a DssExecLib.setValue(MCD_ESM, "min", 150_000 * WAD); // ---------------------------- Transfer MKR --------------------------- // https://vote.makerdao.com/polling/QmPnAkS4 DSTokenAbstract(MCD_GOV).transfer(SIDESTREAM_WALLET, 243.7953 ether); // Original Proposal: https://forum.makerdao.com/t/mip40c3-sp27-development-ux-core-unit-mkr-budget-dux-001/9777 // Adjusted Amounts in Monthly Report: // Apr 2022: https://github.com/makerdao-dux/transparency-reporting/blob/main/Monthy%20Budget%20Statements/2022-04.md#3-mkr-vesting-overview DSTokenAbstract(MCD_GOV).transfer(DUX_WALLET, 355.86 ether); } } contract DssSpell is DssExec { constructor() DssExec(block.timestamp + 30 days, address(new DssSpellAction())) public {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"action","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"done","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"expiration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"log","outputs":[{"internalType":"contract Changelog","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextCastTime","outputs":[{"internalType":"uint256","name":"castTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"officeHours","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[{"internalType":"contract PauseAbstract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"schedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6101006040523480156200001257600080fd5b5062278d004201604051620000279062000234565b604051809103906000f08015801562000044573d6000803e3d6000fd5b5073da0ab1e0017debcd72be8599041a2aa3ba7e740f73ffffffffffffffffffffffffffffffffffffffff166321f8a7216040518163ffffffff1660e01b815260040180807f4d43445f50415553450000000000000000000000000000000000000000000000815250602001905060206040518083038186803b158015620000cb57600080fd5b505afa158015620000e0573d6000803e3d6000fd5b505050506040513d6020811015620000f757600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508160c081815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250506040516024016040516020818303038152906040527f61461954000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050600190805190602001906200021792919062000242565b50600080829050803f9150816080818152505050505050620002e8565b610ae8806200113283390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028557805160ff1916838001178555620002b6565b82800160010185558215620002b6579182015b82811115620002b557825182559160200191906001019062000298565b5b509050620002c59190620002c9565b5090565b5b80821115620002e4576000816000905550600101620002ca565b5090565b60805160a05160601c60c05160e05160601c610dd76200035b6000398061067352806107355280610a9a5280610b4352508061040552806109aa5250806103e15280610467528061050f52806107715280610b7f5280610ccb52508061044152806107925280610ba05250610dd76000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80637284e4161161008c578063ae8421e111610066578063ae8421e1146102db578063b0604a26146102fb578063f7992d8514610305578063fe7d47bb14610323576100ce565b80637284e4161461021a5780638456cb591461029d57806396d373e5146102d1576100ce565b8062a7029b146100d35780630a7a1c4d146101565780634665096d1461018a57806351973ec9146101a857806351f91066146101dc5780636e832f07146101fa575b600080fd5b6100db610341565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011b578082015181840152602081019050610100565b50505050905090810190601f1680156101485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61015e6103df565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610192610403565b6040518082815260200191505060405180910390f35b6101b0610427565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e461043f565b6040518082815260200191505060405180910390f35b610202610463565b60405180821515815260200191505060405180910390f35b61022261050b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610262578082015181840152602081019050610247565b50505050905090810190601f16801561028f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a5610671565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102d9610695565b005b6102e3610995565b60405180821515815260200191505060405180910390f35b6103036109a8565b005b61030d610cc1565b6040518082815260200191505060405180910390f35b61032b610cc7565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103d75780601f106103ac576101008083540402835291602001916103d7565b820191906000526020600020905b8154815290600101906020018083116103ba57829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b73da0ab1e0017debcd72be8599041a2aa3ba7e740f81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e832f076040518163ffffffff1660e01b815260040160206040518083038186803b1580156104cb57600080fd5b505afa1580156104df573d6000803e3d6000fd5b505050506040513d60208110156104f557600080fd5b8101908080519060200190929190505050905090565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637284e4166040518163ffffffff1660e01b815260040160006040518083038186803b15801561057357600080fd5b505afa158015610587573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156105b157600080fd5b81019080805160405193929190846401000000008211156105d157600080fd5b838201915060208201858111156105e757600080fd5b825186600182028301116401000000008211171561060457600080fd5b8083526020830192505050908051906020019080838360005b8381101561063857808201518184015260208101905061061d565b50505050905090810190601f1680156106655780820380516001836020036101000a031916815260200191505b50604052505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260009054906101000a900460ff1615610718576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f7370656c6c2d616c72656164792d63617374000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663168ccd677f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060016000546040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018381526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156108765780601f1061084b57610100808354040283529160200191610876565b820191906000526020600020905b81548152906001019060200180831161085957829003601f168201915b505095505050505050600060405180830381600087803b15801561089957600080fd5b505af11580156108ad573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156108d757600080fd5b81019080805160405193929190846401000000008211156108f757600080fd5b8382019150602082018581111561090d57600080fd5b825186600182028301116401000000008211171561092a57600080fd5b8083526020830192505050908051906020019080838360005b8381101561095e578082015181840152602081019050610943565b50505050905090810190601f16801561098b5780820380516001836020036101000a031916815260200191505b5060405250505050565b600260009054906101000a900460ff1681565b7f0000000000000000000000000000000000000000000000000000000000000000421115610a3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5468697320636f6e74726163742068617320657870697265640000000000000081525060200191505060405180910390fd5b6000805414610a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610d7d6025913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b158015610afe57600080fd5b505afa158015610b12573d6000803e3d6000fd5b505050506040513d6020811015610b2857600080fd5b810190808051906020019092919050505042016000819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166346d2fbbb7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060016000546040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001838152602001828103825284818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610c845780601f10610c5957610100808354040283529160200191610c84565b820191906000526020600020905b815481529060010190602001808311610c6757829003601f168201915b505095505050505050600060405180830381600087803b158015610ca757600080fd5b505af1158015610cbb573d6000803e3d6000fd5b50505050565b60005481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bf0fbcec6000546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610d3c57600080fd5b505afa158015610d50573d6000803e3d6000fd5b505050506040513d6020811015610d6657600080fd5b810190808051906020019092919050505090509056fe54686973207370656c6c2068617320616c7265616479206265656e207363686564756c6564a264697066735822122082743896e03c9de38255b707ffabf613d8bd7986ad1ff54a71db4d2b6a40d53d64736f6c634300060c0033610120604052738de6ddbcd5053d32292aaa0d2105a32d108484a6630e01198b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561004957600080fd5b505af415801561005d573d6000803e3d6000fd5b505050506040513d602081101561007357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b815250738de6ddbcd5053d32292aaa0d2105a32d108484a663af41b2486040518163ffffffff1660e01b815260040160206040518083038186803b1580156100fd57600080fd5b505af4158015610111573d6000803e3d6000fd5b505050506040513d602081101561012757600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1660601b815250738de6ddbcd5053d32292aaa0d2105a32d108484a6637e992cb86040518163ffffffff1660e01b815260040160206040518083038186803b1580156101b157600080fd5b505af41580156101c5573d6000803e3d6000fd5b505050506040513d60208110156101db57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1660c09073ffffffffffffffffffffffffffffffffffffffff1660601b81525073b1f950a51516a697e103aaa69e152d839182f6fe73ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff1660601b815250735a994d8428ccebcc153863ccda9d2be6352f89ad73ffffffffffffffffffffffffffffffffffffffff166101009073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156102c257600080fd5b5060805160601c60a05160601c60c05160601c60e05160601c6101005160601c6107d26103166000398061067452508061057e525080610542528061063852508061048252508061039e52506107d26000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063614619541461005c5780636e832f07146100665780637284e41614610086578063bf0fbcec14610109578063f99e36bc1461014b575b600080fd5b610064610155565b005b61006e610273565b60405180821515815260200191505060405180910390f35b61008e610278565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100ce5780820151818401526020810190506100b3565b50505050905090810190601f1680156100fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101356004803603602081101561011f57600080fd5b8101908080359060200190929190505050610294565b6040518082815260200191505060405180910390f35b610153610382565b005b738de6ddbcd5053d32292aaa0d2105a32d108484a66335329d4c42610178610273565b6040518363ffffffff1660e01b8152600401808364ffffffffff16815260200182151581526020019250505060206040518083038186803b1580156101bc57600080fd5b505af41580156101d0573d6000803e3d6000fd5b505050506040513d60208110156101e657600080fd5b8101908080519060200190929190505050610269576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4f757473696465206f666669636520686f75727300000000000000000000000081525060200191505060405180910390fd5b610271610382565b565b600090565b6040518060a00160405280606e815260200161072f606e913981565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff64ffffffffff168211156102ca57600080fd5b738de6ddbcd5053d32292aaa0d2105a32d108484a663d255745683426102ee610273565b6040518463ffffffff1660e01b8152600401808464ffffffffff1681526020018364ffffffffff1681526020018215158152602001935050505060206040518083038186803b15801561034057600080fd5b505af4158015610354573d6000803e3d6000fd5b505050506040513d602081101561036a57600080fd5b81019080805190602001909291905050509050919050565b738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f0000000000000000000000000000000000000000000000000000000000000000722cd76fe086b93ce2f768a00b22a00000000000617530026040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001807f6c696400000000000000000000000000000000000000000000000000000000008152506020018281526020019250505060006040518083038186803b15801561044e57600080fd5b505af4158015610462573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000620249f0026040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001807f6d696e00000000000000000000000000000000000000000000000000000000008152506020018281526020019250505060006040518083038186803b15801561052857600080fd5b505af415801561053c573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000680d3756e5aac9ca40006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156105fa57600080fd5b505af115801561060e573d6000803e3d6000fd5b505050506040513d602081101561062457600080fd5b8101908080519060200190929190505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f000000000000000000000000000000000000000000000000000000000000000068134a8cb092aa8200006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050506040513d602081101561071a57600080fd5b81019080805190602001909291905050505056fe323032322d30352d3235204d616b657244414f20457865637574697665205370656c6c207c20486173683a20307833303837383561356335643132636630336134386365303736613732623132616338383735393064613162383465663638653432373261326430323665643963a26469706673582212201d32378e81c5547db294ba18e8fd0928257d97a709c413f58e2183241355f4ef64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ce5760003560e01c80637284e4161161008c578063ae8421e111610066578063ae8421e1146102db578063b0604a26146102fb578063f7992d8514610305578063fe7d47bb14610323576100ce565b80637284e4161461021a5780638456cb591461029d57806396d373e5146102d1576100ce565b8062a7029b146100d35780630a7a1c4d146101565780634665096d1461018a57806351973ec9146101a857806351f91066146101dc5780636e832f07146101fa575b600080fd5b6100db610341565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011b578082015181840152602081019050610100565b50505050905090810190601f1680156101485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61015e6103df565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610192610403565b6040518082815260200191505060405180910390f35b6101b0610427565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e461043f565b6040518082815260200191505060405180910390f35b610202610463565b60405180821515815260200191505060405180910390f35b61022261050b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610262578082015181840152602081019050610247565b50505050905090810190601f16801561028f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a5610671565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102d9610695565b005b6102e3610995565b60405180821515815260200191505060405180910390f35b6103036109a8565b005b61030d610cc1565b6040518082815260200191505060405180910390f35b61032b610cc7565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103d75780601f106103ac576101008083540402835291602001916103d7565b820191906000526020600020905b8154815290600101906020018083116103ba57829003601f168201915b505050505081565b7f00000000000000000000000091e23b44f7f63677f6f47870f8fc8c938e82be7881565b7f0000000000000000000000000000000000000000000000000000000062b4a34781565b73da0ab1e0017debcd72be8599041a2aa3ba7e740f81565b7f4dc83d6f69529b570cfd281e068c6cc0806138616e2a8350aba48cdd2d9da52981565b60007f00000000000000000000000091e23b44f7f63677f6f47870f8fc8c938e82be7873ffffffffffffffffffffffffffffffffffffffff16636e832f076040518163ffffffff1660e01b815260040160206040518083038186803b1580156104cb57600080fd5b505afa1580156104df573d6000803e3d6000fd5b505050506040513d60208110156104f557600080fd5b8101908080519060200190929190505050905090565b60607f00000000000000000000000091e23b44f7f63677f6f47870f8fc8c938e82be7873ffffffffffffffffffffffffffffffffffffffff16637284e4166040518163ffffffff1660e01b815260040160006040518083038186803b15801561057357600080fd5b505afa158015610587573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156105b157600080fd5b81019080805160405193929190846401000000008211156105d157600080fd5b838201915060208201858111156105e757600080fd5b825186600182028301116401000000008211171561060457600080fd5b8083526020830192505050908051906020019080838360005b8381101561063857808201518184015260208101905061061d565b50505050905090810190601f1680156106655780820380516001836020036101000a031916815260200191505b50604052505050905090565b7f000000000000000000000000be286431454714f511008713973d3b053a2d38f381565b600260009054906101000a900460ff1615610718576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f7370656c6c2d616c72656164792d63617374000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f000000000000000000000000be286431454714f511008713973d3b053a2d38f373ffffffffffffffffffffffffffffffffffffffff1663168ccd677f00000000000000000000000091e23b44f7f63677f6f47870f8fc8c938e82be787f4dc83d6f69529b570cfd281e068c6cc0806138616e2a8350aba48cdd2d9da52960016000546040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018381526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156108765780601f1061084b57610100808354040283529160200191610876565b820191906000526020600020905b81548152906001019060200180831161085957829003601f168201915b505095505050505050600060405180830381600087803b15801561089957600080fd5b505af11580156108ad573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156108d757600080fd5b81019080805160405193929190846401000000008211156108f757600080fd5b8382019150602082018581111561090d57600080fd5b825186600182028301116401000000008211171561092a57600080fd5b8083526020830192505050908051906020019080838360005b8381101561095e578082015181840152602081019050610943565b50505050905090810190601f16801561098b5780820380516001836020036101000a031916815260200191505b5060405250505050565b600260009054906101000a900460ff1681565b7f0000000000000000000000000000000000000000000000000000000062b4a347421115610a3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5468697320636f6e74726163742068617320657870697265640000000000000081525060200191505060405180910390fd5b6000805414610a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610d7d6025913960400191505060405180910390fd5b7f000000000000000000000000be286431454714f511008713973d3b053a2d38f373ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b158015610afe57600080fd5b505afa158015610b12573d6000803e3d6000fd5b505050506040513d6020811015610b2857600080fd5b810190808051906020019092919050505042016000819055507f000000000000000000000000be286431454714f511008713973d3b053a2d38f373ffffffffffffffffffffffffffffffffffffffff166346d2fbbb7f00000000000000000000000091e23b44f7f63677f6f47870f8fc8c938e82be787f4dc83d6f69529b570cfd281e068c6cc0806138616e2a8350aba48cdd2d9da52960016000546040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001838152602001828103825284818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610c845780601f10610c5957610100808354040283529160200191610c84565b820191906000526020600020905b815481529060010190602001808311610c6757829003601f168201915b505095505050505050600060405180830381600087803b158015610ca757600080fd5b505af1158015610cbb573d6000803e3d6000fd5b50505050565b60005481565b60007f00000000000000000000000091e23b44f7f63677f6f47870f8fc8c938e82be7873ffffffffffffffffffffffffffffffffffffffff1663bf0fbcec6000546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610d3c57600080fd5b505afa158015610d50573d6000803e3d6000fd5b505050506040513d6020811015610d6657600080fd5b810190808051906020019092919050505090509056fe54686973207370656c6c2068617320616c7265616479206265656e207363686564756c6564a264697066735822122082743896e03c9de38255b707ffabf613d8bd7986ad1ff54a71db4d2b6a40d53d64736f6c634300060c0033
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ Download: CSV Export ]
[ 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.