Contract 0x35Bcf3c30594191d53231E4FF333E8A770453e40 2

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xf6a0d512febe5f3e7b84d5e1d62aef3f76e9458b64c4071875ad77282fa74e97Withdraw Stake129974392022-05-26 13:57:301 hr 6 mins ago0xb19cfe4fba32c9a4160095720f031665f3f5fd38 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000250071222 ETH
0x27e8ffecafd619a8c8c8ad273bc1b9d8fa3fe0cbc7a94c410b34af1ed8892524Bond With Hint129865542022-05-26 10:51:234 hrs 13 mins ago0x396aec51dd012cd3c44875ca0907ed077a5786f7 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000357815994 ETH
0x2f2d70b43c7f91a82ad6104cd095938324acb573cc32c04ba6df41b2f059f30fWithdraw Fees129812892022-05-26 9:13:035 hrs 51 mins ago0xc28ef5d640f77528579c42583b2bc4aba2f1d437 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000255408415 ETH
0x1d5ee5fe53e3a99034fa75a36e42c238b809290e87aeb1270b1c92181cc71601Reward With Hint129780182022-05-26 8:26:566 hrs 37 mins ago0x6c06d3246fbb77c4ad75480e03d2a0a8eaf68121 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000313570005 ETH
0xef15761de4f176eb2b8d6aae3769afa1b3954d4a8af3084c44d9bee73e443d37Withdraw Stake129735812022-05-26 7:15:437 hrs 48 mins ago0xe72755765af3c0e3c242d78506bc41aa45dcbb1d IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000165364475 ETH
0x2c7120a3cfa2a9013aa4d320afa0b83332ad015ab0a764c2000c9148288b5117Withdraw Stake129722392022-05-26 6:49:508 hrs 14 mins ago0xbdac3faedb508f26c7e81c099e0d646eb96c5b39 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000183456067 ETH
0x08ea51bae516c26f7f6a97f6f9ab79dbce76ff723979f7824bcbef4676823886Bond With Hint129721552022-05-26 6:48:408 hrs 15 mins ago0xffd22b84fb1d46ef74ed6530b2635be61340f347 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.00037982078 ETH
0xe7bf70a06c2fff4e1d5db20a4e2d9845f480397b7e378fd64901b36fa4c49822Withdraw Fees129674522022-05-26 4:57:0810 hrs 7 mins ago0xf909ac60c647a14db3663da5ecf5f8ecbe324395 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000176456727 ETH
0x103730831fee7ffd4f47a97cb8708b8d3c1e3a2ecea2933883f846e6168e7f62Unbond With Hint129662782022-05-26 4:23:5310 hrs 40 mins ago0xf289b6902abaf9ecfb856d431085d82e268d6928 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000282716546 ETH
0x7e572ed765a79728ef6fd6361efb5fdf4ba47173f6bce82f0a51fc72af42b78aWithdraw Stake129600892022-05-26 1:44:0713 hrs 20 mins ago0xda43d85b8d419a9c51bbf0089c9bd5169c23f2f9 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.00019178107 ETH
0x58b7baf59e86fafa15dc4fc215ad7b8bafc46dca6d52aa1cd0c45c2a4c9ae318Reward With Hint129590712022-05-26 1:13:1513 hrs 51 mins ago0x847791cbf03be716a7fe9dc8c9affe17bd49ae5e IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000339285122 ETH
0x3ecb1cc470978b00937b237bbacf57e4cc9abd6231a80147d666dc28ebab4826Bond With Hint129570822022-05-26 0:09:5314 hrs 54 mins ago0x836dce379e64e154b14a02fb700e25f8d7bfa155 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000385851119 ETH
0x1de47f5b27f390e2517baa606b4b2f2ec183699af3e0ef46b01af03493e03fddReward With Hint129569292022-05-26 0:05:1314 hrs 59 mins ago0x4ff088ac5422f994486663ff903b040692797168 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000331521798 ETH
0x953a0865ff8ff1fde0a58cf14fd4607f61080c497407310e77a853376eac2b5bWithdraw Stake129551652022-05-25 22:55:1916 hrs 9 mins ago0x75e4c0ffb05c07798e22605b607e2c8717a1e885 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000189137919 ETH
0x5a7967bb8f352d504959e9812769d7a558db72be67ea53c3cd5220cd233dda97Transcoder129544692022-05-25 22:28:4716 hrs 35 mins ago0xdc28f2842810d1a013ad51de174d02eaba192dc7 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000178054504 ETH
0x174441c6a9f2c3954971e8194372f9a53539687b31d7cecf70688b5ac7ee9abaBond With Hint129541892022-05-25 22:20:5816 hrs 43 mins ago0xd7eaf6a30906d873f68b94669132afb65cc5ddd2 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000390525303 ETH
0x63b8052c962bbd638361d562526e6635361f40de1d8082f7f2ce7555d147f8f8Reward With Hint129533282022-05-25 21:55:1117 hrs 9 mins ago0x980998e39d29dc5a92e7403fc9cd47e68b63ad5f IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000338994255 ETH
0x1cb128cb58e9e0a5b46dd79a7d84856e775e32d06d22a29cf41dec3bab17ad40Reward With Hint129519292022-05-25 21:02:0818 hrs 2 mins ago0x6cb1ce2516fb7d211038420a8cf9a843c7bd3b08 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000320793754 ETH
0xe9e0896e12a29f2d35033c49d8a349f51b98f30cfd1a9b85dedaae5af8edb0ddReward With Hint129518882022-05-25 21:01:0118 hrs 3 mins ago0xcb69ffc06d3c218472c50ee25f5a1d3ca9650c44 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000339284406 ETH
0xf0035e6ab83586a15ae86eaa0d4b2940405c0c200996697a135b5b6251bb7627Reward With Hint129516722022-05-25 20:54:2418 hrs 9 mins ago0xdc28f2842810d1a013ad51de174d02eaba192dc7 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000357649158 ETH
0x01725e5009350788cb4c8d28ed677851e0f755dff3bdb38146515d38b890e73aWithdraw Stake129479952022-05-25 18:59:2520 hrs 4 mins ago0xba96a3f3d5e9f13a5f93c37001f946d42eb2e165 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000151961851 ETH
0xabb5e4c86b11e0c105c54ad4d2b7e1de3e31b648b377c0e206756957a8f2a7dbReward With Hint129479052022-05-25 18:58:0520 hrs 6 mins ago0x1a196b031ea1a74a53ecbe6148772648e02f9d51 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000267657011 ETH
0xdb8fbe0ed75e33273c04976e3371e5cf79803bbc3ccdba3626e5ef7ce5e9f446Reward With Hint129479012022-05-25 18:58:0520 hrs 6 mins ago0x8ad00ef5a4323ae2a5501c3baba3788547c6dd1c IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000268072307 ETH
0x9175a205092ab7a8b5ae13ba82a69ab13a9a1feb9d73fcf53818cd84b3610eb6Reward With Hint129478992022-05-25 18:58:0520 hrs 6 mins ago0x0fc80afb7876f579f1fb1c4d1c37cf1339038658 IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000237424516 ETH
0x00239bb29c71ff005e7216cfc1690bc6611712a536cd81d70867dc840511ace9Reward With Hint129478892022-05-25 18:57:5820 hrs 6 mins ago0xa20416801ac2eacf2372e825b4a90ef52490c2bb IN  0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH0.000268496479 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf6a0d512febe5f3e7b84d5e1d62aef3f76e9458b64c4071875ad77282fa74e97129974392022-05-26 13:57:301 hr 6 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e400xc20de37170b45774e6cd3d2304017fc962f272520 ETH
0xf6a0d512febe5f3e7b84d5e1d62aef3f76e9458b64c4071875ad77282fa74e97129974392022-05-26 13:57:301 hr 6 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0xf6a0d512febe5f3e7b84d5e1d62aef3f76e9458b64c4071875ad77282fa74e97129974392022-05-26 13:57:301 hr 6 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xdd6f56dcc28d3f5f27084381fe8df634985cc39f0 ETH
0xf6a0d512febe5f3e7b84d5e1d62aef3f76e9458b64c4071875ad77282fa74e97129974392022-05-26 13:57:301 hr 6 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0xf6a0d512febe5f3e7b84d5e1d62aef3f76e9458b64c4071875ad77282fa74e97129974392022-05-26 13:57:301 hr 6 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xdd6f56dcc28d3f5f27084381fe8df634985cc39f0 ETH
0xf6a0d512febe5f3e7b84d5e1d62aef3f76e9458b64c4071875ad77282fa74e97129974392022-05-26 13:57:301 hr 6 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0xf6a0d512febe5f3e7b84d5e1d62aef3f76e9458b64c4071875ad77282fa74e97129974392022-05-26 13:57:301 hr 6 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0xf6a0d512febe5f3e7b84d5e1d62aef3f76e9458b64c4071875ad77282fa74e97129974392022-05-26 13:57:301 hr 6 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0x0f9c425e7374602c20370d3fd263155b4c3bdc910 ETH
0xf6a0d512febe5f3e7b84d5e1d62aef3f76e9458b64c4071875ad77282fa74e97129974392022-05-26 13:57:301 hr 6 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 47 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xdd6f56dcc28d3f5f27084381fe8df634985cc39f0 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 47 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 47 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 47 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 47 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0x0f9c425e7374602c20370d3fd263155b4c3bdc910 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 47 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x7dc356f57cef50ec95344acb87ec8d3edce60a19220171eb4d6464753528e6eb129944382022-05-26 13:16:271 hr 47 mins ago 0xa8bb618b1520e284046f3dfc448851a1ff26e41b 0x35bcf3c30594191d53231e4ff333e8a770453e400 ETH
0x89590f28223a57e78ef9bde9b66a1b79a114cdcd79581eccf64d3b06dfa046a0129904472022-05-26 12:00:433 hrs 3 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0x289ba1701c2f088cf0faf8b3705246331cb8a8390 ETH
0x89590f28223a57e78ef9bde9b66a1b79a114cdcd79581eccf64d3b06dfa046a0129904472022-05-26 12:00:433 hrs 3 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x89590f28223a57e78ef9bde9b66a1b79a114cdcd79581eccf64d3b06dfa046a0129904472022-05-26 12:00:433 hrs 3 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x89590f28223a57e78ef9bde9b66a1b79a114cdcd79581eccf64d3b06dfa046a0129904472022-05-26 12:00:433 hrs 3 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xc45f6918f7bcac7abc8fe05302b3cdf39776cdeb0 ETH
0x89590f28223a57e78ef9bde9b66a1b79a114cdcd79581eccf64d3b06dfa046a0129904472022-05-26 12:00:433 hrs 3 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xc45f6918f7bcac7abc8fe05302b3cdf39776cdeb0 ETH
0x89590f28223a57e78ef9bde9b66a1b79a114cdcd79581eccf64d3b06dfa046a0129904472022-05-26 12:00:433 hrs 3 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xdd6f56dcc28d3f5f27084381fe8df634985cc39f0 ETH
0x89590f28223a57e78ef9bde9b66a1b79a114cdcd79581eccf64d3b06dfa046a0129904472022-05-26 12:00:433 hrs 3 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
0x89590f28223a57e78ef9bde9b66a1b79a114cdcd79581eccf64d3b06dfa046a0129904472022-05-26 12:00:433 hrs 3 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xdd6f56dcc28d3f5f27084381fe8df634985cc39f0 ETH
0x89590f28223a57e78ef9bde9b66a1b79a114cdcd79581eccf64d3b06dfa046a0129904472022-05-26 12:00:433 hrs 3 mins ago 0x35bcf3c30594191d53231e4ff333e8a770453e40 0xd8e8328501e9645d16cf49539efc04f734606ee40 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

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

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000d8e8328501e9645d16cf49539efc04f734606ee4fc6f6f33d2bb065ac61cbdd4dbe4b7adf6f3e7e6c6a3d1fe297cbf9a187092e4

-----Decoded View---------------
Arg [0] : _controller (address): 0xd8e8328501e9645d16cf49539efc04f734606ee4
Arg [1] : _targetContractId (bytes32): 0xfc6f6f33d2bb065ac61cbdd4dbe4b7adf6f3e7e6c6a3d1fe297cbf9a187092e4

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000d8e8328501e9645d16cf49539efc04f734606ee4
Arg [1] : fc6f6f33d2bb065ac61cbdd4dbe4b7adf6f3e7e6c6a3d1fe297cbf9a187092e4


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.