Contract 0xa8bB618B1520E284046F3dFc448851A1Ff26e41B 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb0xec8b3cb6129944382022-05-26 13:16:271 hr 28 mins ago0x6cb1ce2516fb7d211038420a8cf9a843c7bd3b08 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.00053568655 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae0xec8b3cb6129712702022-05-26 6:30:178 hrs 14 mins ago0xedd45674825cd5a27c4c645014f37b9e402fdcbe IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000409309726 ETH
0x08048d7d1d37cbcd318a8d6a802a29a91969f33e0ae08c118bfb19468f7664be0xec8b3cb6129629802022-05-26 3:04:2311 hrs 40 mins ago0xf909ac60c647a14db3663da5ecf5f8ecbe324395 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000456333057 ETH
0xe41b74a02628b00fbeeaff9c16216e6b11bbf824bcc2983617908d1c2f135bd70xec8b3cb6129611752022-05-26 2:17:1612 hrs 27 mins ago0xdb22609515433e664e28067c81704d8266098986 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000456234946 ETH
0x1980c95f3bc940c9027b9f54ac2715150e8c34167a445049b4ca486ef831b3e40xec8b3cb6129577042022-05-26 0:29:5714 hrs 14 mins ago0x10b21af759129f32c6064adfb85d3ea2a8c0209c IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000417796812 ETH
0x913cb56588fe406352dd731a197346142c2d722c85901ed94772c6bb3b77e8280xec8b3cb6129543842022-05-25 22:27:0216 hrs 17 mins ago0xf8fb0aef25b850dc8d8aeead92eb64a3010795a0 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000522856038 ETH
0xbbbf8246ecfd73bda239207cb7c000418d865a33d1f27441b97cd054de08ca6e0xec8b3cb6129477882022-05-25 18:56:1419 hrs 48 mins ago0x3b28a7d785356dc67c7970666747e042305bfb79 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000376893497 ETH
0x4591ba29788de24d6eb042bb1f81e648d43b1e2287750bc8f3763b5138a6eb310xec8b3cb6129390602022-05-25 15:29:2023 hrs 15 mins ago0x3b28a7d785356dc67c7970666747e042305bfb79 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000259842187 ETH
0xba4628445fc93a9f8509287f75c8eee5f550be9d95d277b50c00f2a92173e5dc0xec8b3cb6129371532022-05-25 14:50:4223 hrs 54 mins ago0x10742714f33f3d804e3fa489618b5c3ca12a6df7 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000271305117 ETH
0xc5a4aac17170fd548aa2cebc65f8425653d37925d5bcba6c9973508954a52b240xec8b3cb6129233342022-05-25 11:02:511 day 3 hrs ago0x5d11abd838073df76e32c495f97fd3239eabb9fb IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000287210405 ETH
0x6559d22390f1a4a2dc6a5bc67dfc49ae4f4166561339143b717684c684b482850xec8b3cb6129170102022-05-25 9:16:221 day 5 hrs ago0xf7750e9acf38442744128828f36089563da7da32 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000284989047 ETH
0xfcb0fd9a07ea25c36f56a6ce5085e2101cd6d3286484abdadca54934a2db94e60xec8b3cb6128996592022-05-25 3:45:061 day 10 hrs ago0x4a43b1d7e6227c8b0512e413f406555647ff7bdb IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000349994891 ETH
0x54329de334cf53f375cb1ffe4c2d3661921c71b6883ea990be3517e3324b2d3c0xec8b3cb6128983582022-05-25 3:21:051 day 11 hrs ago0x525419ff5707190389bfb5c87c375d710f5fcb0e IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.00035088801 ETH
0xdc4cfeec1b2c132e9923e55171acf94e71544c07f64da8c7c130e8e3c6b980f10xec8b3cb6128954692022-05-25 2:37:181 day 12 hrs ago0x6cb1ce2516fb7d211038420a8cf9a843c7bd3b08 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000399034264 ETH
0xa8816859001b2fbbe0fe8593be5e9b797551da57d094587e7e689595f2f973310xec8b3cb6128935202022-05-25 2:08:201 day 12 hrs ago0x10e0a91e652b05e9c7449ff457cf2e96c3037fb7 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000382944509 ETH
0xc0a46ac6f422a60d45b701fef2b2f2c67c23ccd72de02a17f3341f95d6479cac0xec8b3cb6128913342022-05-25 1:09:081 day 13 hrs ago0x2e3a21ae7cdeb48f57fcad1ce16b258d5502ac05 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000403559761 ETH
0x32cb42af9650325091f52a6b7a41e3961c31435c56fab4fcc52e7edcc004eed10xec8b3cb6128900142022-05-25 0:25:221 day 14 hrs ago0xf7750e9acf38442744128828f36089563da7da32 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000401752984 ETH
0x9cbdb4f2bac7923f5807a3f976fce0fc6a5cc228da5e4c27268034ab50dcd45d0xec8b3cb6128868952022-05-24 22:51:151 day 15 hrs ago0x525419ff5707190389bfb5c87c375d710f5fcb0e IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000348608462 ETH
0xf62910e4f943f0cd327a63ea960226bb168497f4e24bb22fac52fff7dcaacfb10xec8b3cb6128835442022-05-24 21:17:261 day 17 hrs ago0x525419ff5707190389bfb5c87c375d710f5fcb0e IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000385463077 ETH
0x4aa3949841d4e9d98a48691fd28d30cd066bce4be6c13876d2aeb390b3c5e6c90xec8b3cb6128818882022-05-24 20:34:141 day 18 hrs ago0x10b21af759129f32c6064adfb85d3ea2a8c0209c IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000399219557 ETH
0xdd143c1ccdaf0bfc65160437f505a5385e8277c2bbe5637c420475457756f7f00xec8b3cb6128799352022-05-24 19:46:551 day 18 hrs ago0x525419ff5707190389bfb5c87c375d710f5fcb0e IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000381921253 ETH
0x7eadf26e10c836832b5a0c516489cf5392b4c7d26a4d0a15f1f4a1214511bb7d0xec8b3cb6128702322022-05-24 16:08:281 day 22 hrs ago0xf7750e9acf38442744128828f36089563da7da32 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.00041243108 ETH
0xae10bce818f2cd0506404716ba279e34315a660f9e8a45a2ddba83dbf8a6c8800xec8b3cb6128586472022-05-24 12:56:522 days 1 hr ago0x525419ff5707190389bfb5c87c375d710f5fcb0e IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000223782149 ETH
0xf21caf5462c51abfef653702a0531493af38a35acb3f24b4603a335ea80db4ea0xec8b3cb6128556652022-05-24 12:02:462 days 2 hrs ago0x3b28a7d785356dc67c7970666747e042305bfb79 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000223207292 ETH
0xce1c539a7860d7740b78ce147686b76ef3d9d3888929cdababff5100452106560xec8b3cb6128541072022-05-24 11:35:552 days 3 hrs ago0x3b28a7d785356dc67c7970666747e042305bfb79 IN  0xa8bb618b1520e284046f3dfc448851a1ff26e41b0 ETH0.000215545844 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 28 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 28 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 28 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b0x00000000000000000000000000000000000000010 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 28 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xdd6f56dcc28d3f5f27084381fe8df634985cc39f0 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 28 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 28 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xdd6f56dcc28d3f5f27084381fe8df634985cc39f0 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 28 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 28 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xdd6f56dcc28d3f5f27084381fe8df634985cc39f0 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 28 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 28 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 28 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b0xd906d192e2503aafd1bc5f5fc4163e842d5b1d6e0 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 28 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae129712702022-05-26 6:30:178 hrs 14 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae129712702022-05-26 6:30:178 hrs 14 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae129712702022-05-26 6:30:178 hrs 14 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b0x00000000000000000000000000000000000000010 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae129712702022-05-26 6:30:178 hrs 14 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xdd6f56dcc28d3f5f27084381fe8df634985cc39f0 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae129712702022-05-26 6:30:178 hrs 14 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae129712702022-05-26 6:30:178 hrs 14 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xdd6f56dcc28d3f5f27084381fe8df634985cc39f0 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae129712702022-05-26 6:30:178 hrs 14 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae129712702022-05-26 6:30:178 hrs 14 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xdd6f56dcc28d3f5f27084381fe8df634985cc39f0 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae129712702022-05-26 6:30:178 hrs 14 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae129712702022-05-26 6:30:178 hrs 14 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae129712702022-05-26 6:30:178 hrs 14 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b0xd906d192e2503aafd1bc5f5fc4163e842d5b1d6e0 ETH
0xc388b1f0547fdca09e929d376583114241ef79368c56b241d41972fbc96012ae129712702022-05-26 6:30:178 hrs 14 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x08048d7d1d37cbcd318a8d6a802a29a91969f33e0ae08c118bfb19468f7664be129629802022-05-26 3:04:2311 hrs 40 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x35Bcf3c30594191d53231E4FF333E8A770453e40

Contract Name:
ManagerProxy

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 7 : IController.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;

import "./zeppelin/Pausable.sol";

abstract contract IController is Pausable {
    event SetContractInfo(bytes32 id, address contractAddress, bytes20 gitCommitHash);

    function setContractInfo(
        bytes32 _id,
        address _contractAddress,
        bytes20 _gitCommitHash
    ) external virtual;

    function updateController(bytes32 _id, address _controller) external virtual;

    function getContract(bytes32 _id) public view virtual returns (address);
}

File 2 of 7 : IManager.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;

interface IManager {
    event SetController(address controller);
    event ParameterUpdate(string param);

    function setController(address _controller) external;
}

File 3 of 7 : Manager.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;

import "./IManager.sol";
import "./IController.sol";

contract Manager is IManager {
    // Controller that contract is registered with
    IController public controller;

    // Check if sender is controller
    modifier onlyController() {
        _onlyController();
        _;
    }

    // Check if sender is controller owner
    modifier onlyControllerOwner() {
        _onlyControllerOwner();
        _;
    }

    // Check if controller is not paused
    modifier whenSystemNotPaused() {
        _whenSystemNotPaused();
        _;
    }

    // Check if controller is paused
    modifier whenSystemPaused() {
        _whenSystemPaused();
        _;
    }

    constructor(address _controller) {
        controller = IController(_controller);
    }

    /**
     * @notice Set controller. Only callable by current controller
     * @param _controller Controller contract address
     */
    function setController(address _controller) external onlyController {
        controller = IController(_controller);

        emit SetController(_controller);
    }

    function _onlyController() private view {
        require(msg.sender == address(controller), "caller must be Controller");
    }

    function _onlyControllerOwner() private view {
        require(msg.sender == controller.owner(), "caller must be Controller owner");
    }

    function _whenSystemNotPaused() private view {
        require(!controller.paused(), "system is paused");
    }

    function _whenSystemPaused() private view {
        require(controller.paused(), "system is not paused");
    }
}

File 4 of 7 : ManagerProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;

import "./ManagerProxyTarget.sol";

/**
 * @title ManagerProxy
 * @notice A proxy contract that uses delegatecall to execute function calls on a target contract using its own storage context.
 The target contract is a Manager contract that is registered with the Controller.
 * @dev Both this proxy contract and its target contract MUST inherit from ManagerProxyTarget in order to guarantee
 that both contracts have the same storage layout. Differing storage layouts in a proxy contract and target contract can
 potentially break the delegate proxy upgradeability mechanism. Since this proxy contract inherits from ManagerProxyTarget which inherits
 from Manager, it implements the setController() function. The target contract will also implement setController() since it also inherits
 from ManagerProxyTarget. Thus, any transaction sent to the proxy that calls setController() will execute against the proxy instead
 of the target. As a result, developers should keep in mind that the proxy will always execute the same logic for setController() regardless
 of the setController() implementation on the target contract. Generally, developers should not add any additional functions to this proxy contract
 because any function implemented on the proxy will always be executed against the proxy and the call **will not** be forwarded to the target contract
 */
contract ManagerProxy is ManagerProxyTarget {
    /**
     * @notice ManagerProxy constructor. Invokes constructor of base Manager contract with provided Controller address.
     * Also, sets the contract ID of the target contract that function calls will be executed on.
     * @param _controller Address of Controller that this contract will be registered with
     * @param _targetContractId contract ID of the target contract
     */
    constructor(address _controller, bytes32 _targetContractId) Manager(_controller) {
        targetContractId = _targetContractId;
    }

    /**
     * @notice Fallback function that delegates calls to target contract when there is no msg.data
     */
    receive() external payable {
        _fallback();
    }

    /**
     * @notice Fallback function that delegates calls to target contract when there is msg.data
     */
    fallback() external payable {
        _fallback();
    }

    /**
     * @dev Uses delegatecall to execute function calls on this proxy contract's target contract using its own storage context.
     This fallback function will look up the address of the target contract using the Controller and the target contract ID.
     It will then use the calldata for a function call as the data payload for a delegatecall on the target contract. The return value
     of the executed function call will also be returned
     */
    function _fallback() private {
        address target = controller.getContract(targetContractId);
        require(target != address(0), "target contract must be registered");

        assembly {
            // Solidity keeps a free memory pointer at position 0x40 in memory
            let freeMemoryPtrPosition := 0x40
            // Load the free memory pointer
            let calldataMemoryOffset := mload(freeMemoryPtrPosition)
            // Update free memory pointer to after memory space we reserve for calldata
            mstore(freeMemoryPtrPosition, add(calldataMemoryOffset, calldatasize()))
            // Copy calldata (method signature and params of the call) to memory
            calldatacopy(calldataMemoryOffset, 0x0, calldatasize())

            // Call method on target contract using calldata which is loaded into memory
            let ret := delegatecall(gas(), target, calldataMemoryOffset, calldatasize(), 0, 0)

            // Load the free memory pointer
            let returndataMemoryOffset := mload(freeMemoryPtrPosition)
            // Update free memory pointer to after memory space we reserve for returndata
            mstore(freeMemoryPtrPosition, add(returndataMemoryOffset, returndatasize()))
            // Copy returndata (result of the method invoked by the delegatecall) to memory
            returndatacopy(returndataMemoryOffset, 0x0, returndatasize())

            switch ret
            case 0 {
                // Method call failed - revert
                // Return any error message stored in mem[returndataMemoryOffset..(returndataMemoryOffset + returndatasize)]
                revert(returndataMemoryOffset, returndatasize())
            }
            default {
                // Return result of method call stored in mem[returndataMemoryOffset..(returndataMemoryOffset + returndatasize)]
                return(returndataMemoryOffset, returndatasize())
            }
        }
    }
}

File 5 of 7 : ManagerProxyTarget.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;

import "./Manager.sol";

/**
 * @title ManagerProxyTarget
 * @notice The base contract that target contracts used by a proxy contract should inherit from
 * @dev Both the target contract and the proxy contract (implemented as ManagerProxy) MUST inherit from ManagerProxyTarget in order to guarantee
 that both contracts have the same storage layout. Differing storage layouts in a proxy contract and target contract can
 potentially break the delegate proxy upgradeability mechanism
 */
abstract contract ManagerProxyTarget is Manager {
    // Used to look up target contract address in controller's registry
    bytes32 public targetContractId;
}

File 6 of 7 : Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

File 7 of 7 : Pausable.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;

import "./Ownable.sol";

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused;

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() public onlyOwner whenNotPaused {
        paused = true;
        emit Pause();
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyOwner whenPaused {
        paused = false;
        emit Unpause();
    }
}

Settings
{
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_controller","type":"address"},{"internalType":"bytes32","name":"_targetContractId","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"param","type":"string"}],"name":"ParameterUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"controller","type":"address"}],"name":"SetController","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"controller","outputs":[{"internalType":"contract IController","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"setController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"targetContractId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b506040516103d93803806103d983398101604081905261002f91610058565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155610092565b6000806040838503121561006b57600080fd5b82516001600160a01b038116811461008257600080fd5b6020939093015192949293505050565b610338806100a16000396000f3fe6080604052600436106100385760003560e01c806351720b411461004f57806392eefe9b14610078578063f77c47911461009857610047565b36610047576100456100d0565b005b6100456100d0565b34801561005b57600080fd5b5061006560015481565b6040519081526020015b60405180910390f35b34801561008457600080fd5b506100456100933660046102c1565b6101f1565b3480156100a457600080fd5b506000546100b8906001600160a01b031681565b6040516001600160a01b03909116815260200161006f565b60008054600154604051631c2d8fb360e31b81526001600160a01b039092169163e16c7d98916101069160040190815260200190565b60206040518083038186803b15801561011e57600080fd5b505afa158015610132573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015691906102e5565b90506001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602260248201527f74617267657420636f6e7472616374206d757374206265207265676973746572604482015261195960f21b60648201526084015b60405180910390fd5b60408051368101825236600082376000803683865af4905081513d810183523d6000823e8180156101ed573d82f35b3d82fd5b6101f961024d565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709060200160405180910390a150565b6000546001600160a01b031633146102a75760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206d75737420626520436f6e74726f6c6c65720000000000000060448201526064016101b5565b565b6001600160a01b03811681146102be57600080fd5b50565b6000602082840312156102d357600080fd5b81356102de816102a9565b9392505050565b6000602082840312156102f757600080fd5b81516102de816102a956fea2646970667358221220274e52a3b60c7dff1cad0833c349004759648080531c69a484b94b22224cfa1164736f6c63430008090033000000000000000000000000d8e8328501e9645d16cf49539efc04f734606ee4fc6f6f33d2bb065ac61cbdd4dbe4b7adf6f3e7e6c6a3d1fe297cbf9a187092e4

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.