Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set Owner | 20668773 | 440 days ago | IN | 0 ETH | 0.00002916 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SplitterMom
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-FileCopyrightText: © 2023 Dai Foundation <www.daifoundation.org>
// SPDX-License-Identifier: AGPL-3.0-or-later
//
// 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.21;
interface SplitterLike {
function file(bytes32, uint256) external;
}
interface AuthorityLike {
function canCall(address src, address dst, bytes4 sig) external view returns (bool);
}
// Bypass governance delay to disable the splitter
contract SplitterMom {
address public owner;
address public authority;
SplitterLike public immutable splitter;
event SetOwner(address indexed _owner);
event SetAuthority(address indexed _authority);
event Stop();
modifier onlyOwner {
require(msg.sender == owner, "SplitterMom/only-owner");
_;
}
modifier auth {
require(isAuthorized(msg.sender, msg.sig), "SplitterMom/not-authorized");
_;
}
constructor(address _splitter) {
splitter = SplitterLike(_splitter);
owner = msg.sender;
emit SetOwner(msg.sender);
}
function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
if (src == address(this)) {
return true;
} else if (src == owner) {
return true;
} else if (authority == address(0)) {
return false;
} else {
return AuthorityLike(authority).canCall(src, address(this), sig);
}
}
// Governance actions with delay
function setOwner(address _owner) external onlyOwner {
owner = _owner;
emit SetOwner(_owner);
}
function setAuthority(address _authority) external onlyOwner {
authority = _authority;
emit SetAuthority(_authority);
}
// Governance action without delay
function stop() external auth {
splitter.file("hop", type(uint256).max);
emit Stop();
}
}{
"remappings": [
"dss-interfaces/=lib/dss-test/lib/dss-interfaces/src/",
"dss-test/=lib/dss-test/src/",
"forge-std/=lib/dss-test/lib/forge-std/src/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "paris",
"viaIR": false,
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_splitter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_authority","type":"address"}],"name":"SetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"}],"name":"SetOwner","type":"event"},{"anonymous":false,"inputs":[],"name":"Stop","type":"event"},{"inputs":[],"name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_authority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"splitter","outputs":[{"internalType":"contract SplitterLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stop","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60a060405234801561001057600080fd5b5060405161058538038061058583398101604081905261002f9161007e565b6001600160a01b038116608052600080546001600160a01b03191633908117825560405190917f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb591a2506100ae565b60006020828403121561009057600080fd5b81516001600160a01b03811681146100a757600080fd5b9392505050565b6080516104b66100cf600039600081816089015261018a01526104b66000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806307da68f51461006757806313af4035146100715780633cd8045e146100845780637a9e5e4b146100c75780638da5cb5b146100da578063bf7e214f146100ed575b600080fd5b61006f610100565b005b61006f61007f36600461042e565b610219565b6100ab7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61006f6100d536600461042e565b6102b4565b6000546100ab906001600160a01b031681565b6001546100ab906001600160a01b031681565b610116336000356001600160e01b031916610351565b6101675760405162461bcd60e51b815260206004820152601a60248201527f53706c69747465724d6f6d2f6e6f742d617574686f72697a656400000000000060448201526064015b60405180910390fd5b604051630a6ba04560e21b8152620686f760ec1b600482015260001960248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906329ae811490604401600060405180830381600087803b1580156101d657600080fd5b505af11580156101ea573d6000803e3d6000fd5b50506040517fbedf0f4abfe86d4ffad593d9607fe70e83ea706033d44d24b3b6283cf3fc4f6b925060009150a1565b6000546001600160a01b0316331461026c5760405162461bcd60e51b815260206004820152601660248201527529b83634ba3a32b926b7b697b7b7363c96b7bbb732b960511b604482015260640161015e565b600080546001600160a01b0319166001600160a01b038316908117825560405190917f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb591a250565b6000546001600160a01b031633146103075760405162461bcd60e51b815260206004820152601660248201527529b83634ba3a32b926b7b697b7b7363c96b7bbb732b960511b604482015260640161015e565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f1679749591538f58df6938d50167216de9dda7d8a999dbb21d9f098383a13e0290600090a250565b6000306001600160a01b0384160361036b57506001610428565b6000546001600160a01b039081169084160361038957506001610428565b6001546001600160a01b03166103a157506000610428565b60015460405163b700961360e01b81526001600160a01b0385811660048301523060248301526001600160e01b0319851660448301529091169063b700961390606401602060405180830381865afa158015610401573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610425919061045e565b90505b92915050565b60006020828403121561044057600080fd5b81356001600160a01b038116811461045757600080fd5b9392505050565b60006020828403121561047057600080fd5b8151801515811461045757600080fdfea26469706673582212208b2c5cccab4be9bdcf133d599d69107b7d3515d490fb5985b3d6dc2643a333fa64736f6c63430008150033000000000000000000000000bf7111f13386d23cb2fba5a538107a73f6872bcf
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100625760003560e01c806307da68f51461006757806313af4035146100715780633cd8045e146100845780637a9e5e4b146100c75780638da5cb5b146100da578063bf7e214f146100ed575b600080fd5b61006f610100565b005b61006f61007f36600461042e565b610219565b6100ab7f000000000000000000000000bf7111f13386d23cb2fba5a538107a73f6872bcf81565b6040516001600160a01b03909116815260200160405180910390f35b61006f6100d536600461042e565b6102b4565b6000546100ab906001600160a01b031681565b6001546100ab906001600160a01b031681565b610116336000356001600160e01b031916610351565b6101675760405162461bcd60e51b815260206004820152601a60248201527f53706c69747465724d6f6d2f6e6f742d617574686f72697a656400000000000060448201526064015b60405180910390fd5b604051630a6ba04560e21b8152620686f760ec1b600482015260001960248201527f000000000000000000000000bf7111f13386d23cb2fba5a538107a73f6872bcf6001600160a01b0316906329ae811490604401600060405180830381600087803b1580156101d657600080fd5b505af11580156101ea573d6000803e3d6000fd5b50506040517fbedf0f4abfe86d4ffad593d9607fe70e83ea706033d44d24b3b6283cf3fc4f6b925060009150a1565b6000546001600160a01b0316331461026c5760405162461bcd60e51b815260206004820152601660248201527529b83634ba3a32b926b7b697b7b7363c96b7bbb732b960511b604482015260640161015e565b600080546001600160a01b0319166001600160a01b038316908117825560405190917f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb591a250565b6000546001600160a01b031633146103075760405162461bcd60e51b815260206004820152601660248201527529b83634ba3a32b926b7b697b7b7363c96b7bbb732b960511b604482015260640161015e565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f1679749591538f58df6938d50167216de9dda7d8a999dbb21d9f098383a13e0290600090a250565b6000306001600160a01b0384160361036b57506001610428565b6000546001600160a01b039081169084160361038957506001610428565b6001546001600160a01b03166103a157506000610428565b60015460405163b700961360e01b81526001600160a01b0385811660048301523060248301526001600160e01b0319851660448301529091169063b700961390606401602060405180830381865afa158015610401573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610425919061045e565b90505b92915050565b60006020828403121561044057600080fd5b81356001600160a01b038116811461045757600080fd5b9392505050565b60006020828403121561047057600080fd5b8151801515811461045757600080fdfea26469706673582212208b2c5cccab4be9bdcf133d599d69107b7d3515d490fb5985b3d6dc2643a333fa64736f6c63430008150033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bf7111f13386d23cb2fba5a538107a73f6872bcf
-----Decoded View---------------
Arg [0] : _splitter (address): 0xBF7111F13386d23cb2Fba5A538107A73f6872bCF
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000bf7111f13386d23cb2fba5a538107a73f6872bcf
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.