Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
18677774 | 340 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
DssSpell
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-29 */ // hevm: flattened sources of src/DssSpell.sol // SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity =0.8.16 >=0.5.12 >=0.8.16 <0.9.0; ////// lib/dss-exec-lib/src/CollateralOpts.sol // // CollateralOpts.sol -- Data structure for onboarding collateral // // Copyright (C) 2020-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.8.16; */ 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-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.8.16; */ /* 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, uint256) 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, uint256) external; function exit(address, uint256) 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); } interface RwaOracleLike { function bump(bytes32 ilk, uint256 val) external; } 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 dai() public view returns (address) { return getChangelogAddress("MCD_DAI"); } function mkr() public view returns (address) { return getChangelogAddress("MCD_GOV"); } function vat() public view returns (address) { return getChangelogAddress("MCD_VAT"); } function jug() public view returns (address) { return getChangelogAddress("MCD_JUG"); } function pot() public view returns (address) { return getChangelogAddress("MCD_POT"); } function vow() public view returns (address) { return getChangelogAddress("MCD_VOW"); } function end() public view returns (address) { return getChangelogAddress("MCD_END"); } function reg() public view returns (address) { return getChangelogAddress("ILK_REGISTRY"); } function spotter() public view returns (address) { return getChangelogAddress("MCD_SPOT"); } function flap() public view returns (address) { return getChangelogAddress("MCD_FLAP"); } function autoLine() public view returns (address) { return getChangelogAddress("MCD_IAM_AUTO_LINE"); } function daiJoin() public view returns (address) { return getChangelogAddress("MCD_JOIN_DAI"); } 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 updateCollateralPrice(bytes32 _ilk) public {} function setValue(address _base, bytes32 _what, uint256 _amt) public {} function setValue(address _base, bytes32 _ilk, bytes32 _what, uint256 _amt) public {} function increaseGlobalDebtCeiling(uint256 _amount) public {} function setIlkDebtCeiling(bytes32 _ilk, uint256 _amount) public {} function increaseIlkDebtCeiling(bytes32 _ilk, uint256 _amount, bool _global) public {} function removeIlkFromAutoLine(bytes32 _ilk) public {} function setIlkStabilityFee(bytes32 _ilk, uint256 _rate, bool _doDrip) public {} function sendPaymentFromSurplusBuffer(address _target, uint256 _amount) 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-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.8.16; */ /* 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 view 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 view virtual returns (string memory); // Returns the next available cast time function nextCastTime(uint256 eta) external view returns (uint256 castTime) { require(eta <= type(uint40).max); 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-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.8.16; */ 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. block.timestamp + 30 days) // @param _spellAction The address of the spell action constructor(uint256 _expiration, address _spellAction) { 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(block.timestamp <= expiration, "This contract has expired"); require(eta == 0, "This spell has already been scheduled"); eta = block.timestamp + 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-test/lib/dss-interfaces/src/ERC/GemAbstract.sol /* pragma solidity >=0.5.12; */ // A base ERC-20 abstract class // https://eips.ethereum.org/EIPS/eip-20 interface GemAbstract { function totalSupply() external view returns (uint256); function balanceOf(address) external view returns (uint256); function allowance(address, address) external view returns (uint256); function approve(address, uint256) external returns (bool); function transfer(address, uint256) external returns (bool); function transferFrom(address, address, uint256) external returns (bool); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } ////// lib/dss-test/lib/dss-interfaces/src/dss/VatAbstract.sol /* pragma solidity >=0.5.12; */ // https://github.com/makerdao/dss/blob/master/src/vat.sol interface VatAbstract { function wards(address) external view returns (uint256); function rely(address) external; function deny(address) external; function can(address, address) external view returns (uint256); function hope(address) external; function nope(address) external; function ilks(bytes32) external view returns (uint256, uint256, uint256, uint256, uint256); function urns(bytes32, address) external view returns (uint256, uint256); function gem(bytes32, address) external view returns (uint256); function dai(address) external view returns (uint256); function sin(address) external view returns (uint256); function debt() external view returns (uint256); function vice() external view returns (uint256); function Line() external view returns (uint256); function live() external view returns (uint256); function init(bytes32) external; function file(bytes32, uint256) external; function file(bytes32, bytes32, uint256) external; function cage() external; function slip(bytes32, address, int256) external; function flux(bytes32, address, address, uint256) external; function move(address, address, uint256) external; function frob(bytes32, address, address, address, int256, int256) external; function fork(bytes32, address, address, int256, int256) external; function grab(bytes32, address, address, address, int256, int256) external; function heal(uint256) external; function suck(address, address, uint256) external; function fold(bytes32, address, int256) external; } ////// lib/dss-test/lib/dss-interfaces/src/dss/VestAbstract.sol /* pragma solidity >=0.5.12; */ // https://github.com/makerdao/dss-vest/blob/master/src/DssVest.sol interface VestAbstract { function TWENTY_YEARS() external view returns (uint256); function wards(address) external view returns (uint256); function rely(address) external; function deny(address) external; function awards(uint256) external view returns (address, uint48, uint48, uint48, address, uint8, uint128, uint128); function ids() external view returns (uint256); function cap() external view returns (uint256); function usr(uint256) external view returns (address); function bgn(uint256) external view returns (uint256); function clf(uint256) external view returns (uint256); function fin(uint256) external view returns (uint256); function mgr(uint256) external view returns (address); function res(uint256) external view returns (uint256); function tot(uint256) external view returns (uint256); function rxd(uint256) external view returns (uint256); function file(bytes32, uint256) external; function create(address, uint256, uint256, uint256, uint256, address) external returns (uint256); function vest(uint256) external; function vest(uint256, uint256) external; function accrued(uint256) external view returns (uint256); function unpaid(uint256) external view returns (uint256); function restrict(uint256) external; function unrestrict(uint256) external; function yank(uint256) external; function yank(uint256, uint256) external; function move(uint256, address) external; function valid(uint256) external view returns (bool); } ////// src/DssSpell.sol // SPDX-FileCopyrightText: © 2020 Dai Foundation <www.daifoundation.org> // // 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.8.16; */ /* import "dss-exec-lib/DssExec.sol"; */ /* import "dss-exec-lib/DssAction.sol"; */ /* import { VatAbstract } from "dss-interfaces/dss/VatAbstract.sol"; */ /* import { VestAbstract } from "dss-interfaces/dss/VestAbstract.sol"; */ /* import { GemAbstract } from "dss-interfaces/ERC/GemAbstract.sol"; */ interface RwaLiquidationOracleLike_1 { function bump(bytes32 ilk, uint256 val) external; } interface ProxyLike_1 { function exec(address target, bytes calldata args) external payable returns (bytes memory out); } contract DssSpellAction is DssAction { // 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/bf322ac65482bfc3f42bdb58dcc11a2f2ceeba5a/governance/votes/Executive%20vote%20-%20November%2029%2C%202023.md' -q -O - 2>/dev/null)" string public constant override description = "2023-11-29 MakerDAO Executive Spell | Hash: 0xbd47c214fb16080be97b08f3cf5b45ca9b3d5ff7bbc2057501534e05d84823ea"; // Set office hours according to the summary function officeHours() public pure override returns (bool) { return false; } // ---------- RWA Foundation Service Provider Changes ---------- // Forum: https://forum.makerdao.com/t/dao-resolution-rwa-foundation-service-provider-changes/22866 // Approve Dao resolution with IPFS hash QmPiEHtt8rkVtSibBXMrhEzHUmSriXWz4AL2bjscq8dUvU // Note: by the previous convention it is comma-separated list of DAO resolutions IPFS hashes string public constant dao_resolutions = "QmPiEHtt8rkVtSibBXMrhEzHUmSriXWz4AL2bjscq8dUvU"; // ---------- 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/QmVp4mhhbwWGTfbh2BzwQB9eiBrQBKiqcPRZCaAxNUaar6 // // uint256 internal constant X_PCT_RATE = ; uint256 internal constant FIVE_PT_FIVE_FOUR_PCT_RATE = 1000000001709786974743980088; uint256 internal constant FIVE_PT_SEVEN_NINE_PCT_RATE = 1000000001784811360376128985; uint256 internal constant SIX_PT_TWO_NINE_PCT_RATE = 1000000001934329706253075715; // ---------- Math ---------- uint256 internal constant THOUSAND = 10 ** 3; uint256 internal constant MILLION = 10 ** 6; uint256 internal constant BILLION = 10 ** 9; uint256 internal constant WAD = 10 ** 18; uint256 internal constant RAD = 10 ** 45; // ---------- SBE parameter changes ---------- address internal immutable MCD_VOW = DssExecLib.vow(); address internal immutable MCD_FLAP = DssExecLib.flap(); // ---------- Reduce PSM-GUSD-A Debt Ceiling ---------- VatAbstract internal immutable vat = VatAbstract(DssExecLib.vat()); // ---------- Increase RWA014-A (Coinbase Custody) Debt Ceiling ---------- address internal immutable MIP21_LIQUIDATION_ORACLE = DssExecLib.getChangelogAddress("MIP21_LIQUIDATION_ORACLE"); // ---------- Andromeda Legal Expenses ---------- address internal constant BLOCKTOWER_WALLET_2 = 0xc4dB894A11B1eACE4CDb794d0753A3cB7A633767; // ---------- Trigger Spark Proxy Spell ---------- // Spark Proxy: https://github.com/marsfoundation/sparklend/blob/d42587ba36523dcff24a4c827dc29ab71cd0808b/script/output/1/primary-sce-latest.json#L2 address internal constant SPARK_PROXY = 0x3300f198988e4C9C63F75dF86De36421f06af8c4; address internal constant SPARK_SPELL = 0x68a075249fA77173b8d1B92750c9920423997e2B; // ---------- Payment Streams ---------- address internal immutable MCD_VEST_DAI = DssExecLib.getChangelogAddress("MCD_VEST_DAI"); address internal immutable MCD_VEST_MKR_TREASURY = DssExecLib.getChangelogAddress("MCD_VEST_MKR_TREASURY"); GemAbstract internal immutable MKR = GemAbstract(DssExecLib.mkr()); address internal constant ECOSYSTEM_FACILITATOR = 0xFCa6e196c2ad557E64D9397e283C2AFe57344b75; // ---------- Timestamps ---------- // 2023-12-01 00:00:00 uint256 internal constant DEC_01_2023 = 1701385200; // 2024-11-30 23:59:59 uint256 internal constant NOV_30_2024 = 1733007599; function actions() public override { // ---------- Stability Fee Changes ---------- // Forum: https://forum.makerdao.com/t/stability-scope-parameter-changes-7/22882#increase-rwa014-a-coinbase-custody-debt-ceiling-9 // Decrease the WBTC-A Stability Fee (SF) by 0.07%, from 5.86% to 5.79% DssExecLib.setIlkStabilityFee("WBTC-A", FIVE_PT_SEVEN_NINE_PCT_RATE, /* doDrip = */ true); // Decrease the WBTC-B Stability Fee (SF) by 0.07%, from 6.36% to 6.29% DssExecLib.setIlkStabilityFee("WBTC-B", SIX_PT_TWO_NINE_PCT_RATE, /* doDrip = */ true); // Decrease the WBTC-C Stability Fee (SF) by 0.07%, from 5.61% to 5.54% DssExecLib.setIlkStabilityFee("WBTC-C", FIVE_PT_FIVE_FOUR_PCT_RATE, /* doDrip = */ true); // ---------- Reduce PSM-GUSD-A Debt Ceiling ---------- // Forum: https://forum.makerdao.com/t/stability-scope-parameter-changes-7/22882/2 // Note: record currently set debt ceiling for PSM-GUSD-A (,,,uint256 lineReduction,) = vat.ilks("PSM-GUSD-A"); // Remove PSM-GUSD-A from `Autoline` DssExecLib.removeIlkFromAutoLine("PSM-GUSD-A"); // Set PSM-GUSD-A debt ceiling to 0 DssExecLib.setIlkDebtCeiling("PSM-GUSD-A", 0); // Reduce Global Debt Ceiling? Yes vat.file("Line", vat.Line() - lineReduction); // ---------- Increase RWA014-A (Coinbase Custody) Debt Ceiling ---------- // Forum: https://forum.makerdao.com/t/stability-scope-parameter-changes-7/22882#increase-rwa014-a-coinbase-custody-debt-ceiling-9 // Increase the RWA014-A (Coinbase Custody) debt ceiling by 1b DAI, from 500M to 1.5b DssExecLib.increaseIlkDebtCeiling("RWA014-A", 1 * BILLION, /* global = */ true); // Note: we have to bump the oracle price to account for the new DC // Note: the formula is `Debt ceiling * [ (1 + RWA stability fee ) ^ (minimum deal duration in years) ] * liquidation ratio` // Note: as stability fee is 0 for this deal, this should be equal to ilk DC RwaLiquidationOracleLike_1(MIP21_LIQUIDATION_ORACLE).bump( "RWA014-A", 1_500 * MILLION * WAD ); // Note: we have to update collateral price to propagate the changes DssExecLib.updateCollateralPrice("RWA014-A"); // ---------- SBE parameter changes ---------- // Forum: https://forum.makerdao.com/t/smart-burn-engine-transaction-analysis-parameter-reconfiguration-update-3/22876 // Increase bump by 10,000, from 20,000 to 30,000 DssExecLib.setValue(MCD_VOW, "bump", 30 * THOUSAND * RAD); // Increase hop by 9,460, from 6,308 to 15,768 DssExecLib.setValue(MCD_FLAP, "hop", 15_768); // ---------- Andromeda Legal Expenses ---------- // Forum: https://forum.makerdao.com/t/project-andromeda-legal-expenses-ii/22577/4 // Transfer 201,738 Dai to 0xc4dB894A11B1eACE4CDb794d0753A3cB7A633767 DssExecLib.sendPaymentFromSurplusBuffer(BLOCKTOWER_WALLET_2, 201_738); // ---------- Trigger Spark Proxy Spell ---------- // Forum: https://forum.makerdao.com/t/accounting-discrepancy-in-the-dai-market/22845/2 // Mainnet - 0x68a075249fA77173b8d1B92750c9920423997e2B ProxyLike_1(SPARK_PROXY).exec(SPARK_SPELL, abi.encodeWithSignature("execute()")); // ---------- Yank Steakhouse and TechOps DSS-Vest Streams ---------- // Forum: https://forum.makerdao.com/t/mip102c2-sp20-mip-amendment-subproposal/22334 // MIP: https://mips.makerdao.com/mips/details/MIP113#7-1-1-1-1a // Yank Steakhouse DAI stream ID 19 VestAbstract(MCD_VEST_DAI).yank(19); // Yank TechOps DAI stream ID 18 VestAbstract(MCD_VEST_DAI).yank(18); // Yank Steakhouse MKR stream ID 32 VestAbstract(MCD_VEST_MKR_TREASURY).yank(32); // Yank TechOps MKR stream ID 33 VestAbstract(MCD_VEST_MKR_TREASURY).yank(33); // ---------- Set up Ecosystem Facilitator DSS-Vest Streams ---------- // Forum: https://forum.makerdao.com/t/mip102c2-sp20-mip-amendment-subproposal/22334 // MIP: https://mips.makerdao.com/mips/details/MIP113#7-1-1-1-1a // Ecosystem | 2023-12-01 00:00:00 to 2024-11-30 23:59:59 | 504,000.00 DAI | 0xFCa6e196c2ad557E64D9397e283C2AFe57344b75 VestAbstract(MCD_VEST_DAI).restrict( VestAbstract(MCD_VEST_DAI).create( ECOSYSTEM_FACILITATOR, // usr 504_000 * WAD, // tot DEC_01_2023, // bgn NOV_30_2024 - DEC_01_2023, // tau 0, // eta address(0) // mgr ) ); // Note: For the MKR stream we need to increase allowance by new vesting delta MKR.approve(address(MCD_VEST_MKR_TREASURY), MKR.allowance(address(this), address(MCD_VEST_MKR_TREASURY)) + 216 * WAD); // Ecosystem | 2023-12-01 00:00:00 to 2024-11-30 23:59:59 | 216.00 MKR | 0xFCa6e196c2ad557E64D9397e283C2AFe57344b75 VestAbstract(MCD_VEST_MKR_TREASURY).restrict( VestAbstract(MCD_VEST_MKR_TREASURY).create( ECOSYSTEM_FACILITATOR, // usr 216 * WAD, // tot DEC_01_2023, // bgn NOV_30_2024 - DEC_01_2023, // tau 0, // eta address(0) // mgr ) ); } } contract DssSpell is DssExec { constructor() DssExec(block.timestamp + 30 days, address(new DssSpellAction())) {} }
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
6101006040523480156200001257600080fd5b5062278d004262000024919062000247565b604051620000329062000200565b604051809103906000f0801580156200004f573d6000803e3d6000fd5b5073da0ab1e0017debcd72be8599041a2aa3ba7e740f73ffffffffffffffffffffffffffffffffffffffff166321f8a7216040518163ffffffff1660e01b81526004016200009d90620002a8565b602060405180830381865afa158015620000bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e191906200032d565b73ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250508160c081815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506040516024016040516020818303038152906040527f61461954000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060019081620001e39190620005cf565b50600080829050803f9150816080818152505050505050620006b6565b61269a806200194683390190565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000254826200020e565b915062000261836200020e565b92508282019050808211156200027c576200027b62000218565b5b92915050565b7f4d43445f50415553450000000000000000000000000000000000000000000000815250565b6000602082019050620002be6000830162000282565b919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002f582620002c8565b9050919050565b6200030781620002e8565b81146200031357600080fd5b50565b6000815190506200032781620002fc565b92915050565b600060208284031215620003465762000345620002c3565b5b6000620003568482850162000316565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003e157607f821691505b602082108103620003f757620003f662000399565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000422565b6200046d868362000422565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620004b0620004aa620004a4846200020e565b62000485565b6200020e565b9050919050565b6000819050919050565b620004cc836200048f565b620004e4620004db82620004b7565b8484546200042f565b825550505050565b600090565b620004fb620004ec565b62000508818484620004c1565b505050565b5b81811015620005305762000524600082620004f1565b6001810190506200050e565b5050565b601f8211156200057f576200054981620003fd565b620005548462000412565b8101602085101562000564578190505b6200057c620005738562000412565b8301826200050d565b50505b505050565b600082821c905092915050565b6000620005a46000198460080262000584565b1980831691505092915050565b6000620005bf838362000591565b9150826002028217905092915050565b620005da826200035f565b67ffffffffffffffff811115620005f657620005f56200036a565b5b620006028254620003c8565b6200060f82828562000534565b600060209050601f83116001811462000647576000841562000632578287015190505b6200063e8582620005b1565b865550620006ae565b601f1984166200065786620003fd565b60005b8281101562000681578489015182556001820191506020850194506020810190506200065a565b86831015620006a157848901516200069d601f89168262000591565b8355505b6001600288020188555050505b505050505050565b60805160a05160c05160e0516112096200073d6000396000818161047601528181610505015281816106ac015261074c0152600081816102e501526106050152600081816102c101528181610347015281816103dd0152818161054101528181610788015261082a0152600081816103210152818161056201526107a901526112096000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80637284e4161161008c578063ae8421e111610066578063ae8421e1146101cd578063b0604a26146101eb578063f7992d85146101f5578063fe7d47bb14610213576100ce565b80637284e416146101875780638456cb59146101a557806396d373e5146101c3576100ce565b8062a7029b146100d35780630a7a1c4d146100f15780634665096d1461010f57806351973ec91461012d57806351f910661461014b5780636e832f0714610169575b600080fd5b6100db610231565b6040516100e89190610959565b60405180910390f35b6100f96102bf565b60405161010691906109bc565b60405180910390f35b6101176102e3565b60405161012491906109f0565b60405180910390f35b610135610307565b6040516101429190610a6a565b60405180910390f35b61015361031f565b6040516101609190610a9e565b60405180910390f35b610171610343565b60405161017e9190610ad4565b60405180910390f35b61018f6103d9565b60405161019c9190610b44565b60405180910390f35b6101ad610474565b6040516101ba9190610b87565b60405180910390f35b6101cb610498565b005b6101d56105f0565b6040516101e29190610ad4565b60405180910390f35b6101f3610603565b005b6101fd610820565b60405161020a91906109f0565b60405180910390f35b61021b610826565b60405161022891906109f0565b60405180910390f35b6001805461023e90610bd1565b80601f016020809104026020016040519081016040528092919081815260200182805461026a90610bd1565b80156102b75780601f1061028c576101008083540402835291602001916102b7565b820191906000526020600020905b81548152906001019060200180831161029a57829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b73da0ab1e0017debcd72be8599041a2aa3ba7e740f81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e832f076040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d49190610c42565b905090565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637284e4166040518163ffffffff1660e01b8152600401600060405180830381865afa158015610446573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061046f9190610d95565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260009054906101000a900460ff16156104e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104df90610e2a565b60405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663168ccd677f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060016000546040518563ffffffff1660e01b81526004016105a59493929190610ee3565b6000604051808303816000875af11580156105c4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906105ed9190610fd0565b50565b600260009054906101000a900460ff1681565b7f0000000000000000000000000000000000000000000000000000000000000000421115610666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065d90611065565b60405180910390fd5b60008054146106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a1906110f7565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610715573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107399190611143565b42610744919061119f565b6000819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166346d2fbbb7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060016000546040518563ffffffff1660e01b81526004016107ec9493929190610ee3565b600060405180830381600087803b15801561080657600080fd5b505af115801561081a573d6000803e3d6000fd5b50505050565b60005481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bf0fbcec6000546040518263ffffffff1660e01b815260040161088391906109f0565b602060405180830381865afa1580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c49190611143565b905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156109035780820151818401526020810190506108e8565b60008484015250505050565b6000601f19601f8301169050919050565b600061092b826108c9565b61093581856108d4565b93506109458185602086016108e5565b61094e8161090f565b840191505092915050565b600060208201905081810360008301526109738184610920565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109a68261097b565b9050919050565b6109b68161099b565b82525050565b60006020820190506109d160008301846109ad565b92915050565b6000819050919050565b6109ea816109d7565b82525050565b6000602082019050610a0560008301846109e1565b92915050565b6000819050919050565b6000610a30610a2b610a268461097b565b610a0b565b61097b565b9050919050565b6000610a4282610a15565b9050919050565b6000610a5482610a37565b9050919050565b610a6481610a49565b82525050565b6000602082019050610a7f6000830184610a5b565b92915050565b6000819050919050565b610a9881610a85565b82525050565b6000602082019050610ab36000830184610a8f565b92915050565b60008115159050919050565b610ace81610ab9565b82525050565b6000602082019050610ae96000830184610ac5565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610b1682610aef565b610b208185610afa565b9350610b308185602086016108e5565b610b398161090f565b840191505092915050565b60006020820190508181036000830152610b5e8184610b0b565b905092915050565b6000610b7182610a37565b9050919050565b610b8181610b66565b82525050565b6000602082019050610b9c6000830184610b78565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610be957607f821691505b602082108103610bfc57610bfb610ba2565b5b50919050565b6000604051905090565b600080fd5b600080fd5b610c1f81610ab9565b8114610c2a57600080fd5b50565b600081519050610c3c81610c16565b92915050565b600060208284031215610c5857610c57610c0c565b5b6000610c6684828501610c2d565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610cb18261090f565b810181811067ffffffffffffffff82111715610cd057610ccf610c79565b5b80604052505050565b6000610ce3610c02565b9050610cef8282610ca8565b919050565b600067ffffffffffffffff821115610d0f57610d0e610c79565b5b610d188261090f565b9050602081019050919050565b6000610d38610d3384610cf4565b610cd9565b905082815260208101848484011115610d5457610d53610c74565b5b610d5f8482856108e5565b509392505050565b600082601f830112610d7c57610d7b610c6f565b5b8151610d8c848260208601610d25565b91505092915050565b600060208284031215610dab57610daa610c0c565b5b600082015167ffffffffffffffff811115610dc957610dc8610c11565b5b610dd584828501610d67565b91505092915050565b7f7370656c6c2d616c72656164792d636173740000000000000000000000000000600082015250565b6000610e14601283610afa565b9150610e1f82610dde565b602082019050919050565b60006020820190508181036000830152610e4381610e07565b9050919050565b60008190508160005260206000209050919050565b60008154610e6c81610bd1565b610e7681866108d4565b94506001821660008114610e915760018114610ea757610eda565b60ff198316865281151560200286019350610eda565b610eb085610e4a565b60005b83811015610ed257815481890152600182019150602081019050610eb3565b808801955050505b50505092915050565b6000608082019050610ef860008301876109ad565b610f056020830186610a8f565b8181036040830152610f178185610e5f565b9050610f2660608301846109e1565b95945050505050565b600067ffffffffffffffff821115610f4a57610f49610c79565b5b610f538261090f565b9050602081019050919050565b6000610f73610f6e84610f2f565b610cd9565b905082815260208101848484011115610f8f57610f8e610c74565b5b610f9a8482856108e5565b509392505050565b600082601f830112610fb757610fb6610c6f565b5b8151610fc7848260208601610f60565b91505092915050565b600060208284031215610fe657610fe5610c0c565b5b600082015167ffffffffffffffff81111561100457611003610c11565b5b61101084828501610fa2565b91505092915050565b7f5468697320636f6e747261637420686173206578706972656400000000000000600082015250565b600061104f601983610afa565b915061105a82611019565b602082019050919050565b6000602082019050818103600083015261107e81611042565b9050919050565b7f54686973207370656c6c2068617320616c7265616479206265656e207363686560008201527f64756c6564000000000000000000000000000000000000000000000000000000602082015250565b60006110e1602583610afa565b91506110ec82611085565b604082019050919050565b60006020820190508181036000830152611110816110d4565b9050919050565b611120816109d7565b811461112b57600080fd5b50565b60008151905061113d81611117565b92915050565b60006020828403121561115957611158610c0c565b5b60006111678482850161112e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006111aa826109d7565b91506111b5836109d7565b92508282019050808211156111cd576111cc611170565b5b9291505056fea264697066735822122042c16841a2fff6fa94db519b9791b4d32030cbbfc0cc42053129a2be85576dea64736f6c63430008100033610160604052738de6ddbcd5053d32292aaa0d2105a32d108484a663626cb3c56040518163ffffffff1660e01b8152600401602060405180830381865af41580156200004f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000075919062000515565b73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250738de6ddbcd5053d32292aaa0d2105a32d108484a6630e01198b6040518163ffffffff1660e01b8152600401602060405180830381865af4158015620000f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000117919062000515565b73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff16815250738de6ddbcd5053d32292aaa0d2105a32d108484a66336569e776040518163ffffffff1660e01b8152600401602060405180830381865af415801562000193573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b9919062000515565b73ffffffffffffffffffffffffffffffffffffffff1660c09073ffffffffffffffffffffffffffffffffffffffff16815250738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b815260040162000222906200056d565b602060405180830381865af415801562000240573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000266919062000515565b73ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff16815250738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b8152600401620002cf90620005ae565b602060405180830381865af4158015620002ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000313919062000515565b73ffffffffffffffffffffffffffffffffffffffff166101009073ffffffffffffffffffffffffffffffffffffffff16815250738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b81526004016200037d90620005ef565b602060405180830381865af41580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c1919062000515565b73ffffffffffffffffffffffffffffffffffffffff166101209073ffffffffffffffffffffffffffffffffffffffff16815250738de6ddbcd5053d32292aaa0d2105a32d108484a6637e992cb86040518163ffffffff1660e01b8152600401602060405180830381865af41580156200043e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000464919062000515565b73ffffffffffffffffffffffffffffffffffffffff166101409073ffffffffffffffffffffffffffffffffffffffff16815250348015620004a457600080fd5b506200060a565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004dd82620004b0565b9050919050565b620004ef81620004d0565b8114620004fb57600080fd5b50565b6000815190506200050f81620004e4565b92915050565b6000602082840312156200052e576200052d620004ab565b5b60006200053e84828501620004fe565b91505092915050565b7f4d495032315f4c49515549444154494f4e5f4f5241434c450000000000000000815250565b6000602082019050620005836000830162000547565b919050565b7f4d43445f564553545f4441490000000000000000000000000000000000000000815250565b6000602082019050620005c46000830162000588565b919050565b7f4d43445f564553545f4d4b525f54524541535552590000000000000000000000815250565b60006020820190506200060560008301620005c9565b919050565b60805160a05160c05160e051610100516101205161014051611fe8620006b260003960008181610eba0152610f2c015260008181610c3401528181610cc001528181610ef601528181610f6901528181611053015261108f015260008181610b1c01528181610ba801528181610d4c0152610d880152600061071b0152600081816104120152818161057d01526105ba015260006108fd015260006108480152611fe86000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806361461954146100675780636e832f07146100715780637284e4161461008f578063b22555bb146100ad578063bf0fbcec146100cb578063f99e36bc146100fb575b600080fd5b61006f610105565b005b6100796101cf565b60405161008691906111db565b60405180910390f35b6100976101d4565b6040516100a49190611286565b60405180910390f35b6100b56101f0565b6040516100c29190611286565b60405180910390f35b6100e560048036038101906100e091906112f2565b61020c565b6040516100f2919061132e565b60405180910390f35b6101036102ac565b005b738de6ddbcd5053d32292aaa0d2105a32d108484a66335329d4c426101286101cf565b6040518363ffffffff1660e01b8152600401610145929190611378565b602060405180830381865af4158015610162573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018691906113cd565b6101c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101bc90611446565b60405180910390fd5b6101cd6102ac565b565b600090565b6040518060a00160405280606e8152602001611f45606e913981565b6040518060600160405280602e8152602001611f17602e913981565b600064ffffffffff801682111561022257600080fd5b738de6ddbcd5053d32292aaa0d2105a32d108484a663d255745683426102466101cf565b6040518463ffffffff1660e01b815260040161026493929190611466565b602060405180830381865af4158015610281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a591906114b2565b9050919050565b738de6ddbcd5053d32292aaa0d2105a32d108484a663e40898e06b033b2e3cb8956cb6be4d05d960016040518363ffffffff1660e01b81526004016102f2929190611514565b60006040518083038186803b15801561030a57600080fd5b505af415801561031e573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663e40898e06b033b2e3cbaa89edb73b3450360016040518363ffffffff1660e01b815260040161036892919061156f565b60006040518083038186803b15801561038057600080fd5b505af4158015610394573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663e40898e06b033b2e3cb78ae26ebf34683860016040518363ffffffff1660e01b81526004016103de9291906115ca565b60006040518083038186803b1580156103f657600080fd5b505af415801561040a573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d9638d366040518163ffffffff1660e01b815260040161046790611625565b60a060405180830381865afa158015610484573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a8919061163e565b509350505050738de6ddbcd5053d32292aaa0d2105a32d108484a663f02b0d026040518163ffffffff1660e01b81526004016104e3906116df565b60006040518083038186803b1580156104fb57600080fd5b505af415801561050f573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6639976f02b60006040518263ffffffff1660e01b815260040161054b919061173d565b60006040518083038186803b15801561056357600080fd5b505af4158015610577573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166329ae8114827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663babe8a3f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610623573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064791906114b2565b6106519190611793565b6040518263ffffffff1660e01b815260040161066d91906117ed565b600060405180830381600087803b15801561068757600080fd5b505af115801561069b573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663ef94132e633b9aca0060016106ca9190611814565b60016040518363ffffffff1660e01b81526004016106e9929190611894565b60006040518083038186803b15801561070157600080fd5b505af4158015610715573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e9eb09f6670de0b6b3a7640000620f42406105dc61076f9190611814565b6107799190611814565b6040518263ffffffff1660e01b815260040161079591906118ef565b600060405180830381600087803b1580156107af57600080fd5b505af11580156107c3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6636d530fb36040518163ffffffff1660e01b81526004016107fc90611916565b60006040518083038186803b15801561081457600080fd5b505af4158015610828573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f0000000000000000000000000000000000000000000000000000000000000000722cd76fe086b93ce2f768a00b22a000000000006103e8601e61088a9190611814565b6108949190611814565b6040518363ffffffff1660e01b81526004016108b1929190611996565b60006040518083038186803b1580156108c957600080fd5b505af41580156108dd573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f0000000000000000000000000000000000000000000000000000000000000000613d986040518363ffffffff1660e01b815260040161093c929190611a2c565b60006040518083038186803b15801561095457600080fd5b505af4158015610968573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173c4db894a11b1eace4cdb794d0753a3cb7a6337676203140a6040518363ffffffff1660e01b81526004016109bc929190611a9c565b60006040518083038186803b1580156109d457600080fd5b505af41580156109e8573d6000803e3d6000fd5b50505050733300f198988e4c9c63f75df86de36421f06af8c473ffffffffffffffffffffffffffffffffffffffff1663be6002c27368a075249fa77173b8d1b92750c9920423997e2b6040516024016040516020818303038152906040527f61461954000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518363ffffffff1660e01b8152600401610ad1929190611b29565b6000604051808303816000875af1158015610af0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610b199190611c7f565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166326e027f160136040518263ffffffff1660e01b8152600401610b749190611d03565b600060405180830381600087803b158015610b8e57600080fd5b505af1158015610ba2573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166326e027f160126040518263ffffffff1660e01b8152600401610c009190611d59565b600060405180830381600087803b158015610c1a57600080fd5b505af1158015610c2e573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166326e027f160206040518263ffffffff1660e01b8152600401610c8c9190611daf565b600060405180830381600087803b158015610ca657600080fd5b505af1158015610cba573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166326e027f160216040518263ffffffff1660e01b8152600401610d189190611e05565b600060405180830381600087803b158015610d3257600080fd5b505af1158015610d46573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633c433d5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663db64ff8f73fca6e196c2ad557e64d9397e283c2afe57344b75670de0b6b3a76400006207b0c0610dee9190611814565b63656913f08063674b98ef610e039190611793565b6000806040518763ffffffff1660e01b8152600401610e2796959493929190611e2f565b6020604051808303816000875af1158015610e46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6a91906114b2565b6040518263ffffffff1660e01b8152600401610e86919061132e565b600060405180830381600087803b158015610ea057600080fd5b505af1158015610eb4573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a764000060d8610f2a9190611814565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e307f00000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401610fa5929190611e90565b602060405180830381865afa158015610fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe691906114b2565b610ff09190611eb9565b6040518363ffffffff1660e01b815260040161100d929190611eed565b6020604051808303816000875af115801561102c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105091906113cd565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633c433d5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663db64ff8f73fca6e196c2ad557e64d9397e283c2afe57344b75670de0b6b3a764000060d86110f39190611814565b63656913f08063674b98ef6111089190611793565b6000806040518763ffffffff1660e01b815260040161112c96959493929190611e2f565b6020604051808303816000875af115801561114b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116f91906114b2565b6040518263ffffffff1660e01b815260040161118b919061132e565b600060405180830381600087803b1580156111a557600080fd5b505af11580156111b9573d6000803e3d6000fd5b5050505050565b60008115159050919050565b6111d5816111c0565b82525050565b60006020820190506111f060008301846111cc565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611230578082015181840152602081019050611215565b60008484015250505050565b6000601f19601f8301169050919050565b6000611258826111f6565b6112628185611201565b9350611272818560208601611212565b61127b8161123c565b840191505092915050565b600060208201905081810360008301526112a0818461124d565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6112cf816112bc565b81146112da57600080fd5b50565b6000813590506112ec816112c6565b92915050565b600060208284031215611308576113076112b2565b5b6000611316848285016112dd565b91505092915050565b611328816112bc565b82525050565b6000602082019050611343600083018461131f565b92915050565b600064ffffffffff82169050919050565b61136381611349565b82525050565b611372816111c0565b82525050565b600060408201905061138d600083018561135a565b61139a6020830184611369565b9392505050565b6113aa816111c0565b81146113b557600080fd5b50565b6000815190506113c7816113a1565b92915050565b6000602082840312156113e3576113e26112b2565b5b60006113f1848285016113b8565b91505092915050565b7f4f757473696465206f666669636520686f757273000000000000000000000000600082015250565b6000611430601483611201565b915061143b826113fa565b602082019050919050565b6000602082019050818103600083015261145f81611423565b9050919050565b600060608201905061147b600083018661135a565b611488602083018561135a565b6114956040830184611369565b949350505050565b6000815190506114ac816112c6565b92915050565b6000602082840312156114c8576114c76112b2565b5b60006114d68482850161149d565b91505092915050565b7f574254432d410000000000000000000000000000000000000000000000000000815250565b61150e816112bc565b82525050565b6000606082019050611528600083016114df565b6115356020830185611505565b6115426040830184611369565b9392505050565b7f574254432d420000000000000000000000000000000000000000000000000000815250565b600060608201905061158360008301611549565b6115906020830185611505565b61159d6040830184611369565b9392505050565b7f574254432d430000000000000000000000000000000000000000000000000000815250565b60006060820190506115de600083016115a4565b6115eb6020830185611505565b6115f86040830184611369565b9392505050565b7f50534d2d475553442d4100000000000000000000000000000000000000000000815250565b6000602082019050611639600083016115ff565b919050565b600080600080600060a0868803121561165a576116596112b2565b5b60006116688882890161149d565b95505060206116798882890161149d565b945050604061168a8882890161149d565b935050606061169b8882890161149d565b92505060806116ac8882890161149d565b9150509295509295909350565b7f50534d2d475553442d4100000000000000000000000000000000000000000000815250565b60006020820190506116f3600083016116b9565b919050565b6000819050919050565b6000819050919050565b600061172761172261171d846116f8565b611702565b6112bc565b9050919050565b6117378161170c565b82525050565b6000604082019050611751600083016116b9565b61175e602083018461172e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061179e826112bc565b91506117a9836112bc565b92508282039050818111156117c1576117c0611764565b5b92915050565b7f4c696e6500000000000000000000000000000000000000000000000000000000815250565b6000604082019050611801600083016117c7565b61180e602083018461131f565b92915050565b600061181f826112bc565b915061182a836112bc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561186357611862611764565b5b828202905092915050565b7f5257413031342d41000000000000000000000000000000000000000000000000815250565b60006060820190506118a86000830161186e565b6118b56020830185611505565b6118c26040830184611369565b9392505050565b7f5257413031342d41000000000000000000000000000000000000000000000000815250565b6000604082019050611903600083016118c9565b611910602083018461131f565b92915050565b600060208201905061192a6000830161186e565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061195a8261192f565b9050919050565b61196a8161194f565b82525050565b7f62756d7000000000000000000000000000000000000000000000000000000000815250565b60006060820190506119ab6000830185611961565b6119b760208301611970565b6119c46040830184611505565b9392505050565b7f686f700000000000000000000000000000000000000000000000000000000000815250565b6000819050919050565b6000611a16611a11611a0c846119f1565b611702565b6112bc565b9050919050565b611a26816119fb565b82525050565b6000606082019050611a416000830185611961565b611a4d602083016119cb565b611a5a6040830184611a1d565b9392505050565b6000819050919050565b6000611a86611a81611a7c84611a61565b611702565b6112bc565b9050919050565b611a9681611a6b565b82525050565b6000604082019050611ab16000830185611961565b611abe6020830184611a8d565b9392505050565b611ace8161194f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000611afb82611ad4565b611b058185611adf565b9350611b15818560208601611212565b611b1e8161123c565b840191505092915050565b6000604082019050611b3e6000830185611ac5565b8181036020830152611b508184611af0565b90509392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611b9b8261123c565b810181811067ffffffffffffffff82111715611bba57611bb9611b63565b5b80604052505050565b6000611bcd6112a8565b9050611bd98282611b92565b919050565b600067ffffffffffffffff821115611bf957611bf8611b63565b5b611c028261123c565b9050602081019050919050565b6000611c22611c1d84611bde565b611bc3565b905082815260208101848484011115611c3e57611c3d611b5e565b5b611c49848285611212565b509392505050565b600082601f830112611c6657611c65611b59565b5b8151611c76848260208601611c0f565b91505092915050565b600060208284031215611c9557611c946112b2565b5b600082015167ffffffffffffffff811115611cb357611cb26112b7565b5b611cbf84828501611c51565b91505092915050565b6000819050919050565b6000611ced611ce8611ce384611cc8565b611702565b6112bc565b9050919050565b611cfd81611cd2565b82525050565b6000602082019050611d186000830184611cf4565b92915050565b6000819050919050565b6000611d43611d3e611d3984611d1e565b611702565b6112bc565b9050919050565b611d5381611d28565b82525050565b6000602082019050611d6e6000830184611d4a565b92915050565b6000819050919050565b6000611d99611d94611d8f84611d74565b611702565b6112bc565b9050919050565b611da981611d7e565b82525050565b6000602082019050611dc46000830184611da0565b92915050565b6000819050919050565b6000611def611dea611de584611dca565b611702565b6112bc565b9050919050565b611dff81611dd4565b82525050565b6000602082019050611e1a6000830184611df6565b92915050565b611e298161170c565b82525050565b600060c082019050611e446000830189611ac5565b611e51602083018861131f565b611e5e604083018761131f565b611e6b606083018661131f565b611e786080830185611e20565b611e8560a0830184611ac5565b979650505050505050565b6000604082019050611ea56000830185611ac5565b611eb26020830184611ac5565b9392505050565b6000611ec4826112bc565b9150611ecf836112bc565b9250828201905080821115611ee757611ee6611764565b5b92915050565b6000604082019050611f026000830185611ac5565b611f0f602083018461131f565b939250505056fe516d50694548747438726b567453696242584d7268457a48556d53726958577a34414c32626a7363713864557655323032332d31312d3239204d616b657244414f20457865637574697665205370656c6c207c20486173683a20307862643437633231346662313630383062653937623038663363663562343563613962336435666637626263323035373530313533346530356438343832336561a2646970667358221220f2567d6602757f4e531ab2438d241665f90860c3db5650648f548b69e6e87a4c64736f6c63430008100033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ce5760003560e01c80637284e4161161008c578063ae8421e111610066578063ae8421e1146101cd578063b0604a26146101eb578063f7992d85146101f5578063fe7d47bb14610213576100ce565b80637284e416146101875780638456cb59146101a557806396d373e5146101c3576100ce565b8062a7029b146100d35780630a7a1c4d146100f15780634665096d1461010f57806351973ec91461012d57806351f910661461014b5780636e832f0714610169575b600080fd5b6100db610231565b6040516100e89190610959565b60405180910390f35b6100f96102bf565b60405161010691906109bc565b60405180910390f35b6101176102e3565b60405161012491906109f0565b60405180910390f35b610135610307565b6040516101429190610a6a565b60405180910390f35b61015361031f565b6040516101609190610a9e565b60405180910390f35b610171610343565b60405161017e9190610ad4565b60405180910390f35b61018f6103d9565b60405161019c9190610b44565b60405180910390f35b6101ad610474565b6040516101ba9190610b87565b60405180910390f35b6101cb610498565b005b6101d56105f0565b6040516101e29190610ad4565b60405180910390f35b6101f3610603565b005b6101fd610820565b60405161020a91906109f0565b60405180910390f35b61021b610826565b60405161022891906109f0565b60405180910390f35b6001805461023e90610bd1565b80601f016020809104026020016040519081016040528092919081815260200182805461026a90610bd1565b80156102b75780601f1061028c576101008083540402835291602001916102b7565b820191906000526020600020905b81548152906001019060200180831161029a57829003601f168201915b505050505081565b7f0000000000000000000000007566eed7ab4e4421565d9ecf88602aa514eca00281565b7f00000000000000000000000000000000000000000000000000000000658ed31381565b73da0ab1e0017debcd72be8599041a2aa3ba7e740f81565b7f0e261ef2a9abc977d9067a2f1df6613f1695a9475307bda72cecbb0d04bf62c881565b60007f0000000000000000000000007566eed7ab4e4421565d9ecf88602aa514eca00273ffffffffffffffffffffffffffffffffffffffff16636e832f076040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d49190610c42565b905090565b60607f0000000000000000000000007566eed7ab4e4421565d9ecf88602aa514eca00273ffffffffffffffffffffffffffffffffffffffff16637284e4166040518163ffffffff1660e01b8152600401600060405180830381865afa158015610446573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061046f9190610d95565b905090565b7f000000000000000000000000be286431454714f511008713973d3b053a2d38f381565b600260009054906101000a900460ff16156104e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104df90610e2a565b60405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f000000000000000000000000be286431454714f511008713973d3b053a2d38f373ffffffffffffffffffffffffffffffffffffffff1663168ccd677f0000000000000000000000007566eed7ab4e4421565d9ecf88602aa514eca0027f0e261ef2a9abc977d9067a2f1df6613f1695a9475307bda72cecbb0d04bf62c860016000546040518563ffffffff1660e01b81526004016105a59493929190610ee3565b6000604051808303816000875af11580156105c4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906105ed9190610fd0565b50565b600260009054906101000a900460ff1681565b7f00000000000000000000000000000000000000000000000000000000658ed313421115610666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065d90611065565b60405180910390fd5b60008054146106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a1906110f7565b60405180910390fd5b7f000000000000000000000000be286431454714f511008713973d3b053a2d38f373ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610715573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107399190611143565b42610744919061119f565b6000819055507f000000000000000000000000be286431454714f511008713973d3b053a2d38f373ffffffffffffffffffffffffffffffffffffffff166346d2fbbb7f0000000000000000000000007566eed7ab4e4421565d9ecf88602aa514eca0027f0e261ef2a9abc977d9067a2f1df6613f1695a9475307bda72cecbb0d04bf62c860016000546040518563ffffffff1660e01b81526004016107ec9493929190610ee3565b600060405180830381600087803b15801561080657600080fd5b505af115801561081a573d6000803e3d6000fd5b50505050565b60005481565b60007f0000000000000000000000007566eed7ab4e4421565d9ecf88602aa514eca00273ffffffffffffffffffffffffffffffffffffffff1663bf0fbcec6000546040518263ffffffff1660e01b815260040161088391906109f0565b602060405180830381865afa1580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c49190611143565b905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156109035780820151818401526020810190506108e8565b60008484015250505050565b6000601f19601f8301169050919050565b600061092b826108c9565b61093581856108d4565b93506109458185602086016108e5565b61094e8161090f565b840191505092915050565b600060208201905081810360008301526109738184610920565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109a68261097b565b9050919050565b6109b68161099b565b82525050565b60006020820190506109d160008301846109ad565b92915050565b6000819050919050565b6109ea816109d7565b82525050565b6000602082019050610a0560008301846109e1565b92915050565b6000819050919050565b6000610a30610a2b610a268461097b565b610a0b565b61097b565b9050919050565b6000610a4282610a15565b9050919050565b6000610a5482610a37565b9050919050565b610a6481610a49565b82525050565b6000602082019050610a7f6000830184610a5b565b92915050565b6000819050919050565b610a9881610a85565b82525050565b6000602082019050610ab36000830184610a8f565b92915050565b60008115159050919050565b610ace81610ab9565b82525050565b6000602082019050610ae96000830184610ac5565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610b1682610aef565b610b208185610afa565b9350610b308185602086016108e5565b610b398161090f565b840191505092915050565b60006020820190508181036000830152610b5e8184610b0b565b905092915050565b6000610b7182610a37565b9050919050565b610b8181610b66565b82525050565b6000602082019050610b9c6000830184610b78565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610be957607f821691505b602082108103610bfc57610bfb610ba2565b5b50919050565b6000604051905090565b600080fd5b600080fd5b610c1f81610ab9565b8114610c2a57600080fd5b50565b600081519050610c3c81610c16565b92915050565b600060208284031215610c5857610c57610c0c565b5b6000610c6684828501610c2d565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610cb18261090f565b810181811067ffffffffffffffff82111715610cd057610ccf610c79565b5b80604052505050565b6000610ce3610c02565b9050610cef8282610ca8565b919050565b600067ffffffffffffffff821115610d0f57610d0e610c79565b5b610d188261090f565b9050602081019050919050565b6000610d38610d3384610cf4565b610cd9565b905082815260208101848484011115610d5457610d53610c74565b5b610d5f8482856108e5565b509392505050565b600082601f830112610d7c57610d7b610c6f565b5b8151610d8c848260208601610d25565b91505092915050565b600060208284031215610dab57610daa610c0c565b5b600082015167ffffffffffffffff811115610dc957610dc8610c11565b5b610dd584828501610d67565b91505092915050565b7f7370656c6c2d616c72656164792d636173740000000000000000000000000000600082015250565b6000610e14601283610afa565b9150610e1f82610dde565b602082019050919050565b60006020820190508181036000830152610e4381610e07565b9050919050565b60008190508160005260206000209050919050565b60008154610e6c81610bd1565b610e7681866108d4565b94506001821660008114610e915760018114610ea757610eda565b60ff198316865281151560200286019350610eda565b610eb085610e4a565b60005b83811015610ed257815481890152600182019150602081019050610eb3565b808801955050505b50505092915050565b6000608082019050610ef860008301876109ad565b610f056020830186610a8f565b8181036040830152610f178185610e5f565b9050610f2660608301846109e1565b95945050505050565b600067ffffffffffffffff821115610f4a57610f49610c79565b5b610f538261090f565b9050602081019050919050565b6000610f73610f6e84610f2f565b610cd9565b905082815260208101848484011115610f8f57610f8e610c74565b5b610f9a8482856108e5565b509392505050565b600082601f830112610fb757610fb6610c6f565b5b8151610fc7848260208601610f60565b91505092915050565b600060208284031215610fe657610fe5610c0c565b5b600082015167ffffffffffffffff81111561100457611003610c11565b5b61101084828501610fa2565b91505092915050565b7f5468697320636f6e747261637420686173206578706972656400000000000000600082015250565b600061104f601983610afa565b915061105a82611019565b602082019050919050565b6000602082019050818103600083015261107e81611042565b9050919050565b7f54686973207370656c6c2068617320616c7265616479206265656e207363686560008201527f64756c6564000000000000000000000000000000000000000000000000000000602082015250565b60006110e1602583610afa565b91506110ec82611085565b604082019050919050565b60006020820190508181036000830152611110816110d4565b9050919050565b611120816109d7565b811461112b57600080fd5b50565b60008151905061113d81611117565b92915050565b60006020828403121561115957611158610c0c565b5b60006111678482850161112e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006111aa826109d7565b91506111b5836109d7565b92508282019050808211156111cd576111cc611170565b5b9291505056fea264697066735822122042c16841a2fff6fa94db519b9791b4d32030cbbfc0cc42053129a2be85576dea64736f6c63430008100033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.