Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Showing the last 25 internal transactions (View Advanced Filter)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 15096989 | 1325 days ago | 1 ETH | ||||
| Transfer | 15036417 | 1335 days ago | 1 ETH | ||||
| - | 14844307 | 1368 days ago | 36.54900207 ETH | ||||
| - | 14623158 | 1403 days ago | 2.625 ETH | ||||
| - | 14619674 | 1404 days ago | 5.77137877 ETH | ||||
| - | 14341628 | 1447 days ago | 3.75 ETH | ||||
| - | 14285259 | 1456 days ago | 5.14747627 ETH | ||||
| - | 14207307 | 1468 days ago | 1.25 ETH | ||||
| - | 14071984 | 1489 days ago | 4.31769525 ETH | ||||
| - | 14045318 | 1493 days ago | 4.8 ETH | ||||
| - | 14006502 | 1499 days ago | 1.6 ETH | ||||
| - | 14005901 | 1499 days ago | 3.375 ETH | ||||
| - | 13697462 | 1547 days ago | 25.0051277 ETH | ||||
| - | 13679079 | 1550 days ago | 1.014475 ETH | ||||
| - | 13647111 | 1555 days ago | 2.85 ETH | ||||
| - | 13646991 | 1555 days ago | 7.36875 ETH | ||||
| - | 13641555 | 1556 days ago | 2.625 ETH | ||||
| - | 13629449 | 1558 days ago | 1.875 ETH | ||||
| - | 13623990 | 1559 days ago | 6 ETH | ||||
| - | 13584564 | 1565 days ago | 1.125 ETH | ||||
| - | 13563326 | 1568 days ago | 4.125 ETH | ||||
| - | 13513229 | 1576 days ago | 1.01875 ETH | ||||
| - | 13468615 | 1583 days ago | 12.75 ETH | ||||
| - | 13468602 | 1583 days ago | 25.375 ETH | ||||
| - | 13468580 | 1583 days ago | 1 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
MirrorTreasury
Compiler Version
v0.8.6+commit.11564f7e
Optimization Enabled:
Yes with 2000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;
import {IDistributionLogic} from "../distribution/interface/IDistributionLogic.sol";
import {ITributaryRegistry} from "../interface/ITributaryRegistry.sol";
import {ITreasuryConfig} from "../interface/ITreasuryConfig.sol";
import {IMirrorTreasury} from "../interface/IMirrorTreasury.sol";
import {Governable} from "../lib/Governable.sol";
interface IERC20 {
function transfer(address to, uint256 value) external returns (bool);
}
contract MirrorTreasury is IMirrorTreasury, Governable {
// ============ Treasury Configuration ============
// Used to pull the active distribution model.
address public treasuryConfig;
// ============ Tributary Registry ============
// Used to find tributary addresses associated with Economic Producers.
address public tributaryRegistry;
// ============ Structs ============
// Allows governance to execute generic functions.
struct Call {
// The target of the transaction.
address target;
// The value passed into the transaction.
uint96 value;
// Any data passed with the call.
bytes data;
}
// ============ Events ============
// Emitted when the treasury transfers ETH.
event Transfer(address indexed from, address indexed to, uint256 value);
// Emitted when the treasury transfers an ERC20 token.
event ERC20Transfer(
address indexed token,
address indexed from,
address indexed to,
uint256 amount
);
// ============ Constructor ============
// NOTE: Once deployed, tributaryRegistry and treasuryConfig should be set.
constructor(address owner_) Governable(owner_) {}
// ============ Treasury Contributions ============
/**
* A safe, public function for making contributions to the treasury.
* If a tributary is registered for the contributor, then governance
* tokens will be allocated according to the active distribution model.
*/
function contribute(uint256 amount) public payable override {
require(msg.value == amount, "msg.value != amount");
_allocateGovernance(msg.sender, amount);
}
// Allows directly contributing with a specify treasury, but the sender
// must be registered as a "singleton producer" - e.g. auctions house.
function contributeWithTributary(address tributary)
public
payable
override
{
// Here we don't revert, but instead just don't allocate goverance
// if the call isn't registered as an economic producer.
if (
ITributaryRegistry(tributaryRegistry).singletonProducer(msg.sender)
) {
_allocateGovernanceToTributary(tributary, msg.value);
}
}
/**
* Allows receiving ETH, and can mint treasury governance tokens in
* exchange. Uses a registry to specify which addresses are allowed
* to receive gov tokens in exchange for contributing ETH.
*/
receive() external payable {
_allocateGovernance(msg.sender, msg.value);
}
// ============ Treasury Configuration ============
function setTreasuryConfig(address treasuryConfig_) public onlyGovernance {
treasuryConfig = treasuryConfig_;
}
// ============ Tributary Registry Configuration ============
function setTributaryRegistry(address tributaryRegistry_)
public
onlyGovernance
{
tributaryRegistry = tributaryRegistry_;
}
// ============ Funds Administration ============
function transferFunds(address payable to, uint256 value)
external
override
onlyGovernance
{
_sendFunds(to, value);
emit Transfer(address(this), to, value);
}
function transferERC20(
address token,
address to,
uint256 amount
) external override onlyGovernance {
IERC20(token).transfer(to, amount);
emit ERC20Transfer(token, address(this), to, amount);
}
// ============ Generic Call Execution ============
function executeGeneric(Call memory call) public onlyGovernance {
(bool ok, ) = call.target.call{value: uint256(call.value)}(call.data);
require(ok, "execute transaction failed");
}
// ============ Private Utils ============
function _sendFunds(address payable recipient, uint256 amount) private {
require(
address(this).balance >= amount,
"Insufficient balance for send"
);
(bool success, ) = recipient.call{value: amount}("");
require(success, "Unable to send value: recipient may have reverted");
}
function _allocateGovernance(address producer, uint256 amount) private {
// Get the tributary that was registered for the given producer.
address tributary = ITributaryRegistry(tributaryRegistry)
.producerToTributary(producer);
_allocateGovernanceToTributary(tributary, amount);
}
function _allocateGovernanceToTributary(address tributary, uint256 amount)
private
{
// If there is a registered tributary to mint Mirror tokens for,
// then, here, we go and mint those tokens! Else, just accept ETH, no sweat.
if (tributary != address(0)) {
address distributionModel = ITreasuryConfig(treasuryConfig)
.distributionModel();
IDistributionLogic(distributionModel).distribute(tributary, amount);
}
}
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;
interface IDistributionLogic {
function version() external returns (uint256);
function distribute(address tributary, uint256 contribution) external;
function claim(address claimant) external;
function claimable(address claimant) external view returns (uint256);
function increaseAwards(address member, uint256 amount) external;
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;
interface ITributaryRegistry {
function addRegistrar(address registrar) external;
function removeRegistrar(address registrar) external;
function addSingletonProducer(address producer) external;
function removeSingletonProducer(address producer) external;
function registerTributary(address producer, address tributary) external;
function producerToTributary(address producer)
external
returns (address tributary);
function singletonProducer(address producer) external returns (bool);
function changeTributary(address producer, address newTributary) external;
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;
interface ITreasuryConfig {
function treasury() external returns (address payable);
function distributionModel() external returns (address);
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;
interface IMirrorTreasury {
function transferFunds(address payable to, uint256 value) external;
function transferERC20(
address token,
address to,
uint256 value
) external;
function contributeWithTributary(address tributary) external payable;
function contribute(uint256 amount) external payable;
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;
import {Ownable} from "../lib/Ownable.sol";
import {IGovernable} from "../lib/interface/IGovernable.sol";
contract Governable is Ownable, IGovernable {
// ============ Mutable Storage ============
// Mirror governance contract.
address public override governor;
// ============ Modifiers ============
modifier onlyGovernance() {
require(isOwner() || isGovernor(), "caller is not governance");
_;
}
modifier onlyGovernor() {
require(isGovernor(), "caller is not governor");
_;
}
// ============ Constructor ============
constructor(address owner_) Ownable(owner_) {}
// ============ Administration ============
function changeGovernor(address governor_) public override onlyGovernance {
governor = governor_;
}
// ============ Utility Functions ============
function isGovernor() public view override returns (bool) {
return msg.sender == governor;
}
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;
contract Ownable {
address public owner;
address private nextOwner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
// modifiers
modifier onlyOwner() {
require(isOwner(), "caller is not the owner.");
_;
}
modifier onlyNextOwner() {
require(isNextOwner(), "current owner must set caller as next owner.");
_;
}
/**
* @dev Initialize contract by setting transaction submitter as initial owner.
*/
constructor(address owner_) {
owner = owner_;
emit OwnershipTransferred(address(0), owner);
}
/**
* @dev Initiate ownership transfer by setting nextOwner.
*/
function transferOwnership(address nextOwner_) external onlyOwner {
require(nextOwner_ != address(0), "Next owner is the zero address.");
nextOwner = nextOwner_;
}
/**
* @dev Cancel ownership transfer by deleting nextOwner.
*/
function cancelOwnershipTransfer() external onlyOwner {
delete nextOwner;
}
/**
* @dev Accepts ownership transfer by setting owner.
*/
function acceptOwnership() external onlyNextOwner {
delete nextOwner;
owner = msg.sender;
emit OwnershipTransferred(owner, msg.sender);
}
/**
* @dev Renounce ownership by setting owner to zero address.
*/
function renounceOwnership() external onlyOwner {
owner = address(0);
emit OwnershipTransferred(owner, address(0));
}
/**
* @dev Returns true if the caller is the current owner.
*/
function isOwner() public view returns (bool) {
return msg.sender == owner;
}
/**
* @dev Returns true if the caller is the next owner.
*/
function isNextOwner() public view returns (bool) {
return msg.sender == nextOwner;
}
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;
interface IGovernable {
function changeGovernor(address governor_) external;
function isGovernor() external view returns (bool);
function governor() external view returns (address);
}{
"optimizer": {
"enabled": true,
"runs": 2000
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelOwnershipTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"governor_","type":"address"}],"name":"changeGovernor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"contribute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"tributary","type":"address"}],"name":"contributeWithTributary","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint96","name":"value","type":"uint96"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct MirrorTreasury.Call","name":"call","type":"tuple"}],"name":"executeGeneric","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"governor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isGovernor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isNextOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"treasuryConfig_","type":"address"}],"name":"setTreasuryConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tributaryRegistry_","type":"address"}],"name":"setTributaryRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"nextOwner_","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryConfig","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tributaryRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561001057600080fd5b5060405161135e38038061135e83398101604081905261002f91610081565b600080546001600160a01b0319166001600160a01b038316908117825560405183928392917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35050506100b1565b60006020828403121561009357600080fd5b81516001600160a01b03811681146100aa57600080fd5b9392505050565b61129e806100c06000396000f3fe6080604052600436106101485760003560e01c8063c1cbbca7116100c0578063e4c0aaf411610074578063ed459df211610059578063ed459df21461034c578063f1fe16631461036c578063f2fde38b1461038c57600080fd5b8063e4c0aaf414610319578063e75cb3021461033957600080fd5b8063cfd7b0df116100a5578063cfd7b0df146102b9578063d321de73146102d9578063d6811b6f146102f957600080fd5b8063c1cbbca714610286578063c7af33521461029957600080fd5b806379ba5097116101175780638f32d59b116100fc5780638f32d59b1461021a578063990dc9db146102465780639db5dbe41461026657600080fd5b806379ba5097146101e55780638da5cb5b146101fa57600080fd5b806303f411191461015e5780630c340a241461017e57806323452b9c146101bb578063715018a6146101d057600080fd5b366101595761015733346103ac565b005b600080fd5b34801561016a57600080fd5b5061015761017936600461107e565b61045b565b34801561018a57600080fd5b5060025461019e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101c757600080fd5b5061015761059b565b3480156101dc57600080fd5b50610157610614565b3480156101f157600080fd5b506101576106b7565b34801561020657600080fd5b5060005461019e906001600160a01b031681565b34801561022657600080fd5b506000546001600160a01b031633145b60405190151581526020016101b2565b34801561025257600080fd5b50610157610261366004610fef565b61078c565b34801561027257600080fd5b5061015761028136600461101b565b610849565b610157610294366004611176565b6109b0565b3480156102a557600080fd5b506002546001600160a01b03163314610236565b3480156102c557600080fd5b5060035461019e906001600160a01b031681565b3480156102e557600080fd5b506101576102f4366004610fae565b610a0c565b34801561030557600080fd5b5060045461019e906001600160a01b031681565b34801561032557600080fd5b50610157610334366004610fae565b610aaa565b610157610347366004610fae565b610b48565b34801561035857600080fd5b506001546001600160a01b03163314610236565b34801561037857600080fd5b50610157610387366004610fae565b610bee565b34801561039857600080fd5b506101576103a7366004610fae565b610c8c565b600480546040517fa57518560000000000000000000000000000000000000000000000000000000081526001600160a01b03858116938201939093526000929091169063a575185690602401602060405180830381600087803b15801561041257600080fd5b505af1158015610426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044a9190610fd2565b90506104568183610d6b565b505050565b6000546001600160a01b031633148061047e57506002546001600160a01b031633145b6104cf5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064015b60405180910390fd5b600081600001516001600160a01b031682602001516bffffffffffffffffffffffff168360400151604051610504919061118f565b60006040518083038185875af1925050503d8060008114610541576040519150601f19603f3d011682016040523d82523d6000602084013e610546565b606091505b50509050806105975760405162461bcd60e51b815260206004820152601a60248201527f65786563757465207472616e73616374696f6e206661696c656400000000000060448201526064016104c6565b5050565b6000546001600160a01b031633146105f55760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064016104c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b0316331461066e5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064016104c6565b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6001546001600160a01b031633146107375760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e000000000000000000000000000000000000000060648201526084016104c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19908116909155600080543392168217815560405182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3565b6000546001600160a01b03163314806107af57506002546001600160a01b031633145b6107fb5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6108058282610e95565b6040518181526001600160a01b0383169030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000546001600160a01b031633148061086c57506002546001600160a01b031633145b6108b85760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b15801561091b57600080fd5b505af115801561092f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610953919061105c565b50816001600160a01b0316306001600160a01b0316846001600160a01b03167f16e1b64802081839623a4bec223b20b6ee097d9edd8fcef3d4ceb3a94271306e846040516109a391815260200190565b60405180910390a4505050565b8034146109ff5760405162461bcd60e51b815260206004820152601360248201527f6d73672e76616c756520213d20616d6f756e740000000000000000000000000060448201526064016104c6565b610a0933826103ac565b50565b6000546001600160a01b0316331480610a2f57506002546001600160a01b031633145b610a7b5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b0316331480610acd57506002546001600160a01b031633145b610b195760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600480546040517fad0a44a100000000000000000000000000000000000000000000000000000000815233928101929092526001600160a01b03169063ad0a44a190602401602060405180830381600087803b158015610ba757600080fd5b505af1158015610bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdf919061105c565b15610a0957610a098134610d6b565b6000546001600160a01b0316331480610c1157506002546001600160a01b031633145b610c5d5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ce65760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064016104c6565b6001600160a01b038116610d3c5760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e0060448201526064016104c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b0382161561059757600354604080517f3174044800000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691633174044891600480830192602092919082900301818787803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e119190610fd2565b6040517ffb9321080000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192509082169063fb93210890604401600060405180830381600087803b158015610e7857600080fd5b505af1158015610e8c573d6000803e3d6000fd5b50505050505050565b80471015610ee55760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e742062616c616e636520666f722073656e6400000060448201526064016104c6565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f32576040519150601f19603f3d011682016040523d82523d6000602084013e610f37565b606091505b50509050806104565760405162461bcd60e51b815260206004820152603160248201527f556e61626c6520746f2073656e642076616c75653a20726563697069656e742060448201527f6d6179206861766520726576657274656400000000000000000000000000000060648201526084016104c6565b600060208284031215610fc057600080fd5b8135610fcb81611253565b9392505050565b600060208284031215610fe457600080fd5b8151610fcb81611253565b6000806040838503121561100257600080fd5b823561100d81611253565b946020939093013593505050565b60008060006060848603121561103057600080fd5b833561103b81611253565b9250602084013561104b81611253565b929592945050506040919091013590565b60006020828403121561106e57600080fd5b81518015158114610fcb57600080fd5b6000602080838503121561109157600080fd5b823567ffffffffffffffff808211156110a957600080fd5b90840190606082870312156110bd57600080fd5b6110c56111ca565b82356110d081611253565b8152828401356bffffffffffffffffffffffff811681146110f057600080fd5b8185015260408301358281111561110657600080fd5b80840193505086601f84011261111b57600080fd5b82358281111561112d5761112d611224565b61113f85601f19601f840116016111f3565b9250808352878582860101111561115557600080fd5b80858501868501376000908301909401939093526040830152509392505050565b60006020828403121561118857600080fd5b5035919050565b6000825160005b818110156111b05760208186018101518583015201611196565b818111156111bf576000828501525b509190910192915050565b6040516060810167ffffffffffffffff811182821017156111ed576111ed611224565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561121c5761121c611224565b604052919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b0381168114610a0957600080fdfea26469706673582212207f68092614ab73a35f04d9e9a58f6d3ded23fabc603aba3f1de5fc1cc61c3eef64736f6c634300080600330000000000000000000000002330ee705ffd040bb0cba8cb7734dfe00e7c4b57
Deployed Bytecode
0x6080604052600436106101485760003560e01c8063c1cbbca7116100c0578063e4c0aaf411610074578063ed459df211610059578063ed459df21461034c578063f1fe16631461036c578063f2fde38b1461038c57600080fd5b8063e4c0aaf414610319578063e75cb3021461033957600080fd5b8063cfd7b0df116100a5578063cfd7b0df146102b9578063d321de73146102d9578063d6811b6f146102f957600080fd5b8063c1cbbca714610286578063c7af33521461029957600080fd5b806379ba5097116101175780638f32d59b116100fc5780638f32d59b1461021a578063990dc9db146102465780639db5dbe41461026657600080fd5b806379ba5097146101e55780638da5cb5b146101fa57600080fd5b806303f411191461015e5780630c340a241461017e57806323452b9c146101bb578063715018a6146101d057600080fd5b366101595761015733346103ac565b005b600080fd5b34801561016a57600080fd5b5061015761017936600461107e565b61045b565b34801561018a57600080fd5b5060025461019e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101c757600080fd5b5061015761059b565b3480156101dc57600080fd5b50610157610614565b3480156101f157600080fd5b506101576106b7565b34801561020657600080fd5b5060005461019e906001600160a01b031681565b34801561022657600080fd5b506000546001600160a01b031633145b60405190151581526020016101b2565b34801561025257600080fd5b50610157610261366004610fef565b61078c565b34801561027257600080fd5b5061015761028136600461101b565b610849565b610157610294366004611176565b6109b0565b3480156102a557600080fd5b506002546001600160a01b03163314610236565b3480156102c557600080fd5b5060035461019e906001600160a01b031681565b3480156102e557600080fd5b506101576102f4366004610fae565b610a0c565b34801561030557600080fd5b5060045461019e906001600160a01b031681565b34801561032557600080fd5b50610157610334366004610fae565b610aaa565b610157610347366004610fae565b610b48565b34801561035857600080fd5b506001546001600160a01b03163314610236565b34801561037857600080fd5b50610157610387366004610fae565b610bee565b34801561039857600080fd5b506101576103a7366004610fae565b610c8c565b600480546040517fa57518560000000000000000000000000000000000000000000000000000000081526001600160a01b03858116938201939093526000929091169063a575185690602401602060405180830381600087803b15801561041257600080fd5b505af1158015610426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044a9190610fd2565b90506104568183610d6b565b505050565b6000546001600160a01b031633148061047e57506002546001600160a01b031633145b6104cf5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064015b60405180910390fd5b600081600001516001600160a01b031682602001516bffffffffffffffffffffffff168360400151604051610504919061118f565b60006040518083038185875af1925050503d8060008114610541576040519150601f19603f3d011682016040523d82523d6000602084013e610546565b606091505b50509050806105975760405162461bcd60e51b815260206004820152601a60248201527f65786563757465207472616e73616374696f6e206661696c656400000000000060448201526064016104c6565b5050565b6000546001600160a01b031633146105f55760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064016104c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b0316331461066e5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064016104c6565b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6001546001600160a01b031633146107375760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e000000000000000000000000000000000000000060648201526084016104c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19908116909155600080543392168217815560405182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3565b6000546001600160a01b03163314806107af57506002546001600160a01b031633145b6107fb5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6108058282610e95565b6040518181526001600160a01b0383169030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000546001600160a01b031633148061086c57506002546001600160a01b031633145b6108b85760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b15801561091b57600080fd5b505af115801561092f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610953919061105c565b50816001600160a01b0316306001600160a01b0316846001600160a01b03167f16e1b64802081839623a4bec223b20b6ee097d9edd8fcef3d4ceb3a94271306e846040516109a391815260200190565b60405180910390a4505050565b8034146109ff5760405162461bcd60e51b815260206004820152601360248201527f6d73672e76616c756520213d20616d6f756e740000000000000000000000000060448201526064016104c6565b610a0933826103ac565b50565b6000546001600160a01b0316331480610a2f57506002546001600160a01b031633145b610a7b5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b0316331480610acd57506002546001600160a01b031633145b610b195760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600480546040517fad0a44a100000000000000000000000000000000000000000000000000000000815233928101929092526001600160a01b03169063ad0a44a190602401602060405180830381600087803b158015610ba757600080fd5b505af1158015610bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdf919061105c565b15610a0957610a098134610d6b565b6000546001600160a01b0316331480610c1157506002546001600160a01b031633145b610c5d5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ce65760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064016104c6565b6001600160a01b038116610d3c5760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e0060448201526064016104c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b0382161561059757600354604080517f3174044800000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691633174044891600480830192602092919082900301818787803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e119190610fd2565b6040517ffb9321080000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192509082169063fb93210890604401600060405180830381600087803b158015610e7857600080fd5b505af1158015610e8c573d6000803e3d6000fd5b50505050505050565b80471015610ee55760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e742062616c616e636520666f722073656e6400000060448201526064016104c6565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f32576040519150601f19603f3d011682016040523d82523d6000602084013e610f37565b606091505b50509050806104565760405162461bcd60e51b815260206004820152603160248201527f556e61626c6520746f2073656e642076616c75653a20726563697069656e742060448201527f6d6179206861766520726576657274656400000000000000000000000000000060648201526084016104c6565b600060208284031215610fc057600080fd5b8135610fcb81611253565b9392505050565b600060208284031215610fe457600080fd5b8151610fcb81611253565b6000806040838503121561100257600080fd5b823561100d81611253565b946020939093013593505050565b60008060006060848603121561103057600080fd5b833561103b81611253565b9250602084013561104b81611253565b929592945050506040919091013590565b60006020828403121561106e57600080fd5b81518015158114610fcb57600080fd5b6000602080838503121561109157600080fd5b823567ffffffffffffffff808211156110a957600080fd5b90840190606082870312156110bd57600080fd5b6110c56111ca565b82356110d081611253565b8152828401356bffffffffffffffffffffffff811681146110f057600080fd5b8185015260408301358281111561110657600080fd5b80840193505086601f84011261111b57600080fd5b82358281111561112d5761112d611224565b61113f85601f19601f840116016111f3565b9250808352878582860101111561115557600080fd5b80858501868501376000908301909401939093526040830152509392505050565b60006020828403121561118857600080fd5b5035919050565b6000825160005b818110156111b05760208186018101518583015201611196565b818111156111bf576000828501525b509190910192915050565b6040516060810167ffffffffffffffff811182821017156111ed576111ed611224565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561121c5761121c611224565b604052919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b0381168114610a0957600080fdfea26469706673582212207f68092614ab73a35f04d9e9a58f6d3ded23fabc603aba3f1de5fc1cc61c3eef64736f6c63430008060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002330ee705ffd040bb0cba8cb7734dfe00e7c4b57
-----Decoded View---------------
Arg [0] : owner_ (address): 0x2330ee705fFD040bB0cbA8CB7734Dfe00E7C4b57
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002330ee705ffd040bb0cba8cb7734dfe00e7c4b57
Loading...
Loading
Loading...
Loading
Net Worth in USD
$62.19
Net Worth in ETH
0.031476
Token Allocations
ETH
98.73%
SSV
0.74%
PEOPLE
0.53%
Multichain Portfolio | 34 Chains
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.