Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
618964 | 112 days ago | Contract Creation | 0 S |
Loading...
Loading
Contract Name:
Pauser
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
Yes with 200 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.21; import {Auth, Authority} from "@solmate/auth/Auth.sol"; import {IPausable} from "src/interfaces/IPausable.sol"; contract Pauser is Auth { // ========================================= STATE ========================================= /** * @notice List of contracts that can be paused and unpaused using: * - `pauseAll` * - `unpauseAll` */ IPausable[] internal pausables; /** * @notice Used to pause calls to `deposit` and `depositWithPermit`. */ bool public isPaused; /** * @notice Maps a sender to a pausable contract. * @dev Used to pause and unpause using `senderPause` and `senderUnpause`. */ mapping(address => IPausable) public senderToPausable; //============================== ERRORS =============================== error Pauser__IndexOutOfBounds(); //============================== EVENTS =============================== event PausablePaused(address indexed pausable); event PausableUnpaused(address indexed pausable); event PausableAdded(address indexed pausable); event PausableRemoved(address indexed pausable); event SenderToPausableUpdated(address indexed sender, address indexed pausable); //============================== IMMUTABLES =============================== constructor(address _owner, Authority _authority, IPausable[] memory _pausables) Auth(_owner, _authority) { for (uint256 i = 0; i < _pausables.length; ++i) { pausables.push(_pausables[i]); } } // ========================================= ADMIN FUNCTIONS ========================================= /** * @notice Adds a contract to the list of pausables. * @dev Callable by PAUSER_ADMIN_ROLE. */ function addPausable(IPausable _pausable) external requiresAuth { pausables.push(_pausable); emit PausableAdded(address(_pausable)); } /** * @notice Removes a contract from the list of pausables. * @dev Callable by PAUSER_ADMIN_ROLE. */ function removePausable(uint256 index) external requiresAuth { uint256 pausablesLength = pausables.length; if (index >= pausablesLength) { revert Pauser__IndexOutOfBounds(); } address removed = address(pausables[index]); pausables[index] = pausables[pausablesLength - 1]; pausables.pop(); emit PausableRemoved(removed); } /** * @notice Updates the index of the pausable contract that the sender can pause and unpause. * @dev Callable by PAUSER_ADMIN_ROLE. */ function updateSenderToPausable(address sender, IPausable pausable) external requiresAuth { senderToPausable[sender] = pausable; emit SenderToPausableUpdated(sender, address(pausable)); } // ========================================= GENERIC PAUSER FUNCTIONS ========================================= /** * @notice Pauses a single pausable contract. * @dev Callable by GENERIC_PAUSER_ROLE. */ function pauseSingle(IPausable pausable) external requiresAuth { pausable.pause(); emit PausablePaused(address(pausable)); } /** * @notice Unpauses a single pausable contract. * @dev Callable by GENERIC_UNPAUSER_ROLE. */ function unpauseSingle(IPausable pausable) external requiresAuth { pausable.unpause(); emit PausableUnpaused(address(pausable)); } /** * @notice Pauses multiple pausable contracts. * @dev Callable by GENERIC_PAUSER_ROLE. */ function pauseMultiple(IPausable[] calldata _pausables) external requiresAuth { for (uint256 i = 0; i < _pausables.length; ++i) { _pausables[i].pause(); emit PausablePaused(address(_pausables[i])); } } /** * @notice Unpauses multiple pausable contracts. * @dev Callable by GENERIC_UNPAUSER_ROLE. */ function unpauseMultiple(IPausable[] calldata _pausables) external requiresAuth { for (uint256 i = 0; i < _pausables.length; ++i) { _pausables[i].unpause(); emit PausableUnpaused(address(_pausables[i])); } } // ========================================= PAUSABLES ALL FUNCTIONS ========================================= /** * @notice Pauses all pausable contracts. * @dev Callable by PAUSE_ALL_ROLE. */ function pauseAll() external requiresAuth { for (uint256 i = 0; i < pausables.length; ++i) { pausables[i].pause(); emit PausablePaused(address(pausables[i])); } } /** * @notice Unpauses all pausable contracts. * @dev Callable by UNPAUSE_ALL_ROLE. */ function unpauseAll() external requiresAuth { for (uint256 i = 0; i < pausables.length; ++i) { pausables[i].unpause(); emit PausableUnpaused(address(pausables[i])); } } // ========================================= SENDER FUNCTIONS ========================================= /** * @notice The below functions can be marked as publically callable, as the `senderToPausable` mapping * must be updated by an admin in order for the call to succeed. The main advantage of this * is needing less overhead to explicilty grant a role to pausing bots. * However if security is of upmost importance, then seperate roles can be created for each function. */ /** * @notice Pauses senders pausable contract. * @dev Callable by PUBLIC or SENDER_PAUSER_ROLE. */ function senderPause() external requiresAuth { IPausable pausable = senderToPausable[msg.sender]; pausable.pause(); emit PausablePaused(address(pausable)); } /** * @notice Unpauses senders pausable contract. * @dev Callable by PUBLIC or SENDER_UNPAUSER_ROLE. */ function senderUnpause() external requiresAuth { IPausable pausable = senderToPausable[msg.sender]; pausable.unpause(); emit PausableUnpaused(address(pausable)); } // ========================================= VIEW FUNCTIONS ========================================= /** * @notice Returns the list of pausable contracts. */ function getPausables() external view returns (IPausable[] memory) { return pausables; } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Provides a flexible and updatable auth pattern which is completely separate from application logic. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Auth.sol) /// @author Modified from Dappsys (https://github.com/dapphub/ds-auth/blob/master/src/auth.sol) abstract contract Auth { event OwnershipTransferred(address indexed user, address indexed newOwner); event AuthorityUpdated(address indexed user, Authority indexed newAuthority); address public owner; Authority public authority; constructor(address _owner, Authority _authority) { owner = _owner; authority = _authority; emit OwnershipTransferred(msg.sender, _owner); emit AuthorityUpdated(msg.sender, _authority); } modifier requiresAuth() virtual { require(isAuthorized(msg.sender, msg.sig), "UNAUTHORIZED"); _; } function isAuthorized(address user, bytes4 functionSig) internal view virtual returns (bool) { Authority auth = authority; // Memoizing authority saves us a warm SLOAD, around 100 gas. // Checking if the caller is the owner only after calling the authority saves gas in most cases, but be // aware that this makes protected functions uncallable even to the owner if the authority is out of order. return (address(auth) != address(0) && auth.canCall(user, address(this), functionSig)) || user == owner; } function setAuthority(Authority newAuthority) public virtual { // We check if the caller is the owner first because we want to ensure they can // always swap out the authority even if it's reverting or using up a lot of gas. require(msg.sender == owner || authority.canCall(msg.sender, address(this), msg.sig)); authority = newAuthority; emit AuthorityUpdated(msg.sender, newAuthority); } function transferOwnership(address newOwner) public virtual requiresAuth { owner = newOwner; emit OwnershipTransferred(msg.sender, newOwner); } } /// @notice A generic interface for a contract which provides authorization data to an Auth instance. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Auth.sol) /// @author Modified from Dappsys (https://github.com/dapphub/ds-auth/blob/master/src/auth.sol) interface Authority { function canCall( address user, address target, bytes4 functionSig ) external view returns (bool); }
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.21; interface IPausable { function pause() external; function unpause() external; }
{ "remappings": [ "@solmate/=lib/solmate/src/", "@forge-std/=lib/forge-std/src/", "@ds-test/=lib/forge-std/lib/ds-test/src/", "ds-test/=lib/forge-std/lib/ds-test/src/", "@openzeppelin/=lib/openzeppelin-contracts/", "@ccip/=lib/ccip/", "@oapp-auth/=lib/OAppAuth/src/", "@devtools-oapp-evm/=lib/OAppAuth/lib/devtools/packages/oapp-evm/contracts/oapp/", "@layerzerolabs/lz-evm-messagelib-v2/=lib/OAppAuth/node_modules/@layerzerolabs/lz-evm-messagelib-v2/", "@layerzerolabs/lz-evm-protocol-v2/=lib/OAppAuth/lib/LayerZero-V2/packages/layerzero-v2/evm/protocol/", "@layerzerolabs/oapp-evm/=lib/OAppAuth/lib/devtools/packages/oapp-evm/", "@lz-oapp-evm/=lib/OAppAuth/lib/LayerZero-V2/packages/layerzero-v2/evm/oapp/contracts/oapp/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@sbu/=lib/OAppAuth/lib/solidity-bytes-utils/", "LayerZero-V2/=lib/OAppAuth/lib/", "OAppAuth/=lib/OAppAuth/", "ccip/=lib/ccip/contracts/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/OAppAuth/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "solidity-bytes-utils/=lib/OAppAuth/node_modules/solidity-bytes-utils/", "solmate/=lib/solmate/src/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "viaIR": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"contract Authority","name":"_authority","type":"address"},{"internalType":"contract IPausable[]","name":"_pausables","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Pauser__IndexOutOfBounds","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pausable","type":"address"}],"name":"PausableAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pausable","type":"address"}],"name":"PausablePaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pausable","type":"address"}],"name":"PausableRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pausable","type":"address"}],"name":"PausableUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"pausable","type":"address"}],"name":"SenderToPausableUpdated","type":"event"},{"inputs":[{"internalType":"contract IPausable","name":"_pausable","type":"address"}],"name":"addPausable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPausables","outputs":[{"internalType":"contract IPausable[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPaused","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":"pauseAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IPausable[]","name":"_pausables","type":"address[]"}],"name":"pauseMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IPausable","name":"pausable","type":"address"}],"name":"pauseSingle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"removePausable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"senderPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"senderToPausable","outputs":[{"internalType":"contract IPausable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"senderUnpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IPausable[]","name":"_pausables","type":"address[]"}],"name":"unpauseMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IPausable","name":"pausable","type":"address"}],"name":"unpauseSingle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"contract IPausable","name":"pausable","type":"address"}],"name":"updateSenderToPausable","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620013c2380380620013c2833981016040819052620000349162000184565b600080546001600160a01b03199081166001600160a01b0386811691821784556001805490931690861617909155604051859285929133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a3505060005b815181101562000139576002828281518110620000eb57620000eb62000284565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b0390921691909117905562000131816200029a565b9050620000ca565b50505050620002c2565b6001600160a01b03811681146200015957600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b80516200017f8162000143565b919050565b6000806000606084860312156200019a57600080fd5b8351620001a78162000143565b80935050602080850151620001bc8162000143565b60408601519093506001600160401b0380821115620001da57600080fd5b818701915087601f830112620001ef57600080fd5b8151818111156200020457620002046200015c565b8060051b604051601f19603f830116810181811085821117156200022c576200022c6200015c565b60405291825284820192508381018501918a8311156200024b57600080fd5b938501935b828510156200027457620002648562000172565b8452938501939285019262000250565b8096505050505050509250925092565b634e487b7160e01b600052603260045260246000fd5b600060018201620002bb57634e487b7160e01b600052601160045260246000fd5b5060010190565b6110f080620002d26000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806382c6321f116100a2578063a6bb383311610071578063a6bb38331461022c578063b187bd261461023f578063ba2cd4f91461025c578063bf7e214f14610264578063f2fde38b1461027757600080fd5b806382c6321f146101c85780638a2ddd03146101d05780638da5cb5b146101d85780639c260dc11461020357600080fd5b806354720ecd116100e957806354720ecd14610169578063595c6a67146101875780636e0db6871461018f5780636fa02012146101a25780637a9e5e4b146101b557600080fd5b80631414a7371461011b57806325fdd89a146101305780632a578b95146101435780634ed1a7ed14610156575b600080fd5b61012e610129366004610e8a565b61028a565b005b61012e61013e366004610eff565b6103ba565b61012e610151366004610e8a565b61051e565b61012e610164366004610f2d565b610640565b6101716106fc565b60405161017e9190610f51565b60405180910390f35b61012e61075e565b61012e61019d366004610f9e565b610873565b61012e6101b0366004610f2d565b6108fb565b61012e6101c3366004610f2d565b6109b7565b61012e610aa1565b61012e610b23565b6000546101eb906001600160a01b031681565b6040516001600160a01b03909116815260200161017e565b6101eb610211366004610f2d565b6004602052600090815260409020546001600160a01b031681565b61012e61023a366004610f2d565b610c35565b60035461024c9060ff1681565b604051901515815260200161017e565b61012e610cdf565b6001546101eb906001600160a01b031681565b61012e610285366004610f2d565b610d61565b6102a0336000356001600160e01b031916610dde565b6102c55760405162461bcd60e51b81526004016102bc90610fd7565b60405180910390fd5b60005b818110156103b5578282828181106102e2576102e2610ffd565b90506020020160208101906102f79190610f2d565b6001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561033157600080fd5b505af1158015610345573d6000803e3d6000fd5b5050505082828281811061035b5761035b610ffd565b90506020020160208101906103709190610f2d565b6001600160a01b03167fc67793348a9acacd2336821be434b55e750d7eaceb75a7d98cddf25c4abd25fe60405160405180910390a26103ae81611029565b90506102c8565b505050565b6103d0336000356001600160e01b031916610dde565b6103ec5760405162461bcd60e51b81526004016102bc90610fd7565b60025480821061040f57604051631788aed960e01b815260040160405180910390fd5b60006002838154811061042457610424610ffd565b6000918252602090912001546001600160a01b031690506002610448600184611042565b8154811061045857610458610ffd565b600091825260209091200154600280546001600160a01b03909216918590811061048457610484610ffd565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060028054806104c3576104c3611055565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b038316917fb0a48303f5301707a7bd5b756b686984a62fbc23474e950e06b9e580afe86ce791a2505050565b610534336000356001600160e01b031916610dde565b6105505760405162461bcd60e51b81526004016102bc90610fd7565b60005b818110156103b55782828281811061056d5761056d610ffd565b90506020020160208101906105829190610f2d565b6001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105bc57600080fd5b505af11580156105d0573d6000803e3d6000fd5b505050508282828181106105e6576105e6610ffd565b90506020020160208101906105fb9190610f2d565b6001600160a01b03167f2e11755ce1f86691f0c706962af2ec7c16a3ee55627a262caa6136ab538ab48260405160405180910390a261063981611029565b9050610553565b610656336000356001600160e01b031916610dde565b6106725760405162461bcd60e51b81526004016102bc90610fd7565b806001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106ad57600080fd5b505af11580156106c1573d6000803e3d6000fd5b50506040516001600160a01b03841692507f2e11755ce1f86691f0c706962af2ec7c16a3ee55627a262caa6136ab538ab4829150600090a250565b6060600280548060200260200160405190810160405280929190818152602001828054801561075457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610736575b5050505050905090565b610774336000356001600160e01b031916610dde565b6107905760405162461bcd60e51b81526004016102bc90610fd7565b60005b60025481101561087057600281815481106107b0576107b0610ffd565b600091825260208220015460408051638456cb5960e01b815290516001600160a01b0390921692638456cb599260048084019382900301818387803b1580156107f857600080fd5b505af115801561080c573d6000803e3d6000fd5b505050506002818154811061082357610823610ffd565b60009182526020822001546040516001600160a01b03909116917fc67793348a9acacd2336821be434b55e750d7eaceb75a7d98cddf25c4abd25fe91a261086981611029565b9050610793565b50565b610889336000356001600160e01b031916610dde565b6108a55760405162461bcd60e51b81526004016102bc90610fd7565b6001600160a01b0382811660008181526004602052604080822080546001600160a01b0319169486169485179055517e69ba6739aefe8c5da62d189e7531045ee8346f32f97499a4c33a8ac63d70db9190a35050565b610911336000356001600160e01b031916610dde565b61092d5760405162461bcd60e51b81526004016102bc90610fd7565b806001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561096857600080fd5b505af115801561097c573d6000803e3d6000fd5b50506040516001600160a01b03841692507fc67793348a9acacd2336821be434b55e750d7eaceb75a7d98cddf25c4abd25fe9150600090a250565b6000546001600160a01b0316331480610a4c575060015460405163b700961360e01b81526001600160a01b039091169063b700961390610a0b90339030906001600160e01b0319600035169060040161106b565b602060405180830381865afa158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c9190611098565b610a5557600080fd5b600180546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a350565b610ab7336000356001600160e01b031916610dde565b610ad35760405162461bcd60e51b81526004016102bc90610fd7565b336000908152600460208190526040808320548151638456cb5960e01b815291516001600160a01b03909116938493638456cb599380820193919082900301818387803b15801561096857600080fd5b610b39336000356001600160e01b031916610dde565b610b555760405162461bcd60e51b81526004016102bc90610fd7565b60005b6002548110156108705760028181548110610b7557610b75610ffd565b600091825260208220015460408051631fa5d41d60e11b815290516001600160a01b0390921692633f4ba83a9260048084019382900301818387803b158015610bbd57600080fd5b505af1158015610bd1573d6000803e3d6000fd5b5050505060028181548110610be857610be8610ffd565b60009182526020822001546040516001600160a01b03909116917f2e11755ce1f86691f0c706962af2ec7c16a3ee55627a262caa6136ab538ab48291a2610c2e81611029565b9050610b58565b610c4b336000356001600160e01b031916610dde565b610c675760405162461bcd60e51b81526004016102bc90610fd7565b6002805460018101825560009182527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b03841690811790915560405190917fad0f29a9103b372244dd2efa706fe423b3e4db36d6cc3dd1fa195add738aea1c91a250565b610cf5336000356001600160e01b031916610dde565b610d115760405162461bcd60e51b81526004016102bc90610fd7565b336000908152600460208190526040808320548151631fa5d41d60e11b815291516001600160a01b03909116938493633f4ba83a9380820193919082900301818387803b1580156106ad57600080fd5b610d77336000356001600160e01b031916610dde565b610d935760405162461bcd60e51b81526004016102bc90610fd7565b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001546000906001600160a01b03168015801590610e68575060405163b700961360e01b81526001600160a01b0382169063b700961390610e279087903090889060040161106b565b602060405180830381865afa158015610e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e689190611098565b80610e8057506000546001600160a01b038581169116145b9150505b92915050565b60008060208385031215610e9d57600080fd5b823567ffffffffffffffff80821115610eb557600080fd5b818501915085601f830112610ec957600080fd5b813581811115610ed857600080fd5b8660208260051b8501011115610eed57600080fd5b60209290920196919550909350505050565b600060208284031215610f1157600080fd5b5035919050565b6001600160a01b038116811461087057600080fd5b600060208284031215610f3f57600080fd5b8135610f4a81610f18565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610f925783516001600160a01b031683529284019291840191600101610f6d565b50909695505050505050565b60008060408385031215610fb157600080fd5b8235610fbc81610f18565b91506020830135610fcc81610f18565b809150509250929050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161103b5761103b611013565b5060010190565b81810381811115610e8457610e84611013565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b6000602082840312156110aa57600080fd5b81518015158114610f4a57600080fdfea2646970667358221220f571bfa0a3955ad102a09d8a6c2347aaae78067207c43db15df7e0f90ccf548864736f6c634300081500330000000000000000000000005f2f11ad8656439d5c14d9b351f8b09cdac2a02d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004000000000000000000000000e9b6997be1d23f07eccd0c656749d12ea1a89388000000000000000000000000ab6312bc40affb6078c928b1994c8590f001e26700000000000000000000000006b4f47a817c67804f059f2ef5a378d310584bdb000000000000000000000000f2af1125b62bae8ca112e1fe386ba4b8cd61755b
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101165760003560e01c806382c6321f116100a2578063a6bb383311610071578063a6bb38331461022c578063b187bd261461023f578063ba2cd4f91461025c578063bf7e214f14610264578063f2fde38b1461027757600080fd5b806382c6321f146101c85780638a2ddd03146101d05780638da5cb5b146101d85780639c260dc11461020357600080fd5b806354720ecd116100e957806354720ecd14610169578063595c6a67146101875780636e0db6871461018f5780636fa02012146101a25780637a9e5e4b146101b557600080fd5b80631414a7371461011b57806325fdd89a146101305780632a578b95146101435780634ed1a7ed14610156575b600080fd5b61012e610129366004610e8a565b61028a565b005b61012e61013e366004610eff565b6103ba565b61012e610151366004610e8a565b61051e565b61012e610164366004610f2d565b610640565b6101716106fc565b60405161017e9190610f51565b60405180910390f35b61012e61075e565b61012e61019d366004610f9e565b610873565b61012e6101b0366004610f2d565b6108fb565b61012e6101c3366004610f2d565b6109b7565b61012e610aa1565b61012e610b23565b6000546101eb906001600160a01b031681565b6040516001600160a01b03909116815260200161017e565b6101eb610211366004610f2d565b6004602052600090815260409020546001600160a01b031681565b61012e61023a366004610f2d565b610c35565b60035461024c9060ff1681565b604051901515815260200161017e565b61012e610cdf565b6001546101eb906001600160a01b031681565b61012e610285366004610f2d565b610d61565b6102a0336000356001600160e01b031916610dde565b6102c55760405162461bcd60e51b81526004016102bc90610fd7565b60405180910390fd5b60005b818110156103b5578282828181106102e2576102e2610ffd565b90506020020160208101906102f79190610f2d565b6001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561033157600080fd5b505af1158015610345573d6000803e3d6000fd5b5050505082828281811061035b5761035b610ffd565b90506020020160208101906103709190610f2d565b6001600160a01b03167fc67793348a9acacd2336821be434b55e750d7eaceb75a7d98cddf25c4abd25fe60405160405180910390a26103ae81611029565b90506102c8565b505050565b6103d0336000356001600160e01b031916610dde565b6103ec5760405162461bcd60e51b81526004016102bc90610fd7565b60025480821061040f57604051631788aed960e01b815260040160405180910390fd5b60006002838154811061042457610424610ffd565b6000918252602090912001546001600160a01b031690506002610448600184611042565b8154811061045857610458610ffd565b600091825260209091200154600280546001600160a01b03909216918590811061048457610484610ffd565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060028054806104c3576104c3611055565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b038316917fb0a48303f5301707a7bd5b756b686984a62fbc23474e950e06b9e580afe86ce791a2505050565b610534336000356001600160e01b031916610dde565b6105505760405162461bcd60e51b81526004016102bc90610fd7565b60005b818110156103b55782828281811061056d5761056d610ffd565b90506020020160208101906105829190610f2d565b6001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105bc57600080fd5b505af11580156105d0573d6000803e3d6000fd5b505050508282828181106105e6576105e6610ffd565b90506020020160208101906105fb9190610f2d565b6001600160a01b03167f2e11755ce1f86691f0c706962af2ec7c16a3ee55627a262caa6136ab538ab48260405160405180910390a261063981611029565b9050610553565b610656336000356001600160e01b031916610dde565b6106725760405162461bcd60e51b81526004016102bc90610fd7565b806001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106ad57600080fd5b505af11580156106c1573d6000803e3d6000fd5b50506040516001600160a01b03841692507f2e11755ce1f86691f0c706962af2ec7c16a3ee55627a262caa6136ab538ab4829150600090a250565b6060600280548060200260200160405190810160405280929190818152602001828054801561075457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610736575b5050505050905090565b610774336000356001600160e01b031916610dde565b6107905760405162461bcd60e51b81526004016102bc90610fd7565b60005b60025481101561087057600281815481106107b0576107b0610ffd565b600091825260208220015460408051638456cb5960e01b815290516001600160a01b0390921692638456cb599260048084019382900301818387803b1580156107f857600080fd5b505af115801561080c573d6000803e3d6000fd5b505050506002818154811061082357610823610ffd565b60009182526020822001546040516001600160a01b03909116917fc67793348a9acacd2336821be434b55e750d7eaceb75a7d98cddf25c4abd25fe91a261086981611029565b9050610793565b50565b610889336000356001600160e01b031916610dde565b6108a55760405162461bcd60e51b81526004016102bc90610fd7565b6001600160a01b0382811660008181526004602052604080822080546001600160a01b0319169486169485179055517e69ba6739aefe8c5da62d189e7531045ee8346f32f97499a4c33a8ac63d70db9190a35050565b610911336000356001600160e01b031916610dde565b61092d5760405162461bcd60e51b81526004016102bc90610fd7565b806001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561096857600080fd5b505af115801561097c573d6000803e3d6000fd5b50506040516001600160a01b03841692507fc67793348a9acacd2336821be434b55e750d7eaceb75a7d98cddf25c4abd25fe9150600090a250565b6000546001600160a01b0316331480610a4c575060015460405163b700961360e01b81526001600160a01b039091169063b700961390610a0b90339030906001600160e01b0319600035169060040161106b565b602060405180830381865afa158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c9190611098565b610a5557600080fd5b600180546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a350565b610ab7336000356001600160e01b031916610dde565b610ad35760405162461bcd60e51b81526004016102bc90610fd7565b336000908152600460208190526040808320548151638456cb5960e01b815291516001600160a01b03909116938493638456cb599380820193919082900301818387803b15801561096857600080fd5b610b39336000356001600160e01b031916610dde565b610b555760405162461bcd60e51b81526004016102bc90610fd7565b60005b6002548110156108705760028181548110610b7557610b75610ffd565b600091825260208220015460408051631fa5d41d60e11b815290516001600160a01b0390921692633f4ba83a9260048084019382900301818387803b158015610bbd57600080fd5b505af1158015610bd1573d6000803e3d6000fd5b5050505060028181548110610be857610be8610ffd565b60009182526020822001546040516001600160a01b03909116917f2e11755ce1f86691f0c706962af2ec7c16a3ee55627a262caa6136ab538ab48291a2610c2e81611029565b9050610b58565b610c4b336000356001600160e01b031916610dde565b610c675760405162461bcd60e51b81526004016102bc90610fd7565b6002805460018101825560009182527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b03841690811790915560405190917fad0f29a9103b372244dd2efa706fe423b3e4db36d6cc3dd1fa195add738aea1c91a250565b610cf5336000356001600160e01b031916610dde565b610d115760405162461bcd60e51b81526004016102bc90610fd7565b336000908152600460208190526040808320548151631fa5d41d60e11b815291516001600160a01b03909116938493633f4ba83a9380820193919082900301818387803b1580156106ad57600080fd5b610d77336000356001600160e01b031916610dde565b610d935760405162461bcd60e51b81526004016102bc90610fd7565b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001546000906001600160a01b03168015801590610e68575060405163b700961360e01b81526001600160a01b0382169063b700961390610e279087903090889060040161106b565b602060405180830381865afa158015610e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e689190611098565b80610e8057506000546001600160a01b038581169116145b9150505b92915050565b60008060208385031215610e9d57600080fd5b823567ffffffffffffffff80821115610eb557600080fd5b818501915085601f830112610ec957600080fd5b813581811115610ed857600080fd5b8660208260051b8501011115610eed57600080fd5b60209290920196919550909350505050565b600060208284031215610f1157600080fd5b5035919050565b6001600160a01b038116811461087057600080fd5b600060208284031215610f3f57600080fd5b8135610f4a81610f18565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610f925783516001600160a01b031683529284019291840191600101610f6d565b50909695505050505050565b60008060408385031215610fb157600080fd5b8235610fbc81610f18565b91506020830135610fcc81610f18565b809150509250929050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161103b5761103b611013565b5060010190565b81810381811115610e8457610e84611013565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b6000602082840312156110aa57600080fd5b81518015158114610f4a57600080fdfea2646970667358221220f571bfa0a3955ad102a09d8a6c2347aaae78067207c43db15df7e0f90ccf548864736f6c63430008150033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005f2f11ad8656439d5c14d9b351f8b09cdac2a02d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004000000000000000000000000e9b6997be1d23f07eccd0c656749d12ea1a89388000000000000000000000000ab6312bc40affb6078c928b1994c8590f001e26700000000000000000000000006b4f47a817c67804f059f2ef5a378d310584bdb000000000000000000000000f2af1125b62bae8ca112e1fe386ba4b8cd61755b
-----Decoded View---------------
Arg [0] : _owner (address): 0x5F2F11ad8656439d5C14d9B351f8b09cDaC2A02d
Arg [1] : _authority (address): 0x0000000000000000000000000000000000000000
Arg [2] : _pausables (address[]): 0xe9b6997BE1D23f07eCcd0C656749d12EA1a89388,0xAb6312bc40afFb6078c928b1994c8590f001e267,0x06B4F47a817C67804F059F2Ef5A378d310584bDB,0xf2Af1125B62bAe8cA112E1fe386BA4B8CD61755b
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000005f2f11ad8656439d5c14d9b351f8b09cdac2a02d
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [4] : 000000000000000000000000e9b6997be1d23f07eccd0c656749d12ea1a89388
Arg [5] : 000000000000000000000000ab6312bc40affb6078c928b1994c8590f001e267
Arg [6] : 00000000000000000000000006b4f47a817c67804f059f2ef5a378d310584bdb
Arg [7] : 000000000000000000000000f2af1125b62bae8ca112e1fe386ba4b8cd61755b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.