Contract 0x38093CDca43aeCd7bb474983519A246e93A3b0a7 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xdaaecb08430281d4a40d2b18cfd9107fde74e9bd4f3b57bd7b13806bc58cce120x6080604058564012022-02-11 13:25:54104 days 16 mins ago0xb5af4138f0f33be0d6414eb25271b9c2dc245fb5 IN  Create: ServiceRegistry0 ETH0.003715944415 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x476aeb9a53b3f82915f14d34a454c62bcce6597ea1e7709eb5f46c99011ebaf7128579112022-05-24 12:41:372 days 1 hr ago 0xc92d3a360b8f9e083ba64de15d95cf8180897431 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x8c9adf950e16c6ec362d3bb340b1b20f5a3a9e6937f472d05aed59dd8536b925128562242022-05-24 12:10:492 days 1 hr ago 0xc92d3a360b8f9e083ba64de15d95cf8180897431 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x1edabce679f8e65d9c21ffb1725721d84b525529ad51e30a40a255bd6fa5229f128453512022-05-24 9:06:042 days 4 hrs ago 0xd93e0a15511935889aec76f79d54dff0e27af82e 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x2c2380ee8ba2c6d865bf5117f794b6ce28e11916db3fb0e3b34dc65634ba29ea126514252022-05-21 16:36:314 days 21 hrs ago 0x0d5a6601942bf92e7b259bfc6b56009e6a1c0ad2 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x90185fb5668840fb358e59852b26548766d8f8e8a2ec4f276248d5e815473070124971942022-05-19 16:14:266 days 21 hrs ago 0x5263e0ce3a97b634d8828ce4337ad0f70b30b077 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x10f54cefb209c5f703f05b031bc93f1914abf0ae8f9aca84b7941b82c3979844124249422022-05-18 19:43:197 days 17 hrs ago 0xd00354656922168815fcd1e51cbddb9e359e3c7f 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x184e631efb2bd6cbf8dee5c05fc6fea9eda7316e34d48b81a4ce40300c155e0f124171412022-05-18 17:18:497 days 20 hrs ago 0xd93e0a15511935889aec76f79d54dff0e27af82e 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x9ea25112ddd5cc5e093d8d7e382df451d3f12c81c1d96b5c9c17a37b29a8073d124170912022-05-18 17:18:497 days 20 hrs ago 0xd93e0a15511935889aec76f79d54dff0e27af82e 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x80d40b3067edfafb71d45233a36c3d1b387ae6f4bb2cc2b84de0be7bc5ab9f5b124131152022-05-18 16:12:277 days 21 hrs ago 0xd00354656922168815fcd1e51cbddb9e359e3c7f 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x578853993af831a428400c4abf4b106fa0171a61cf9c8ec19511541a3f96263f124057592022-05-18 14:21:387 days 23 hrs ago 0x6a15b9d078c2bf4814066a69392aa224fecae1c4 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x834cf48e166ced7b896eba31eda4bf123e76bfe9c80cca04b252ec9aba336fdd122633412022-05-16 23:25:369 days 14 hrs ago 0x58887c5fe7d021ec63b72ac4021980027e6fafe1 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0xc510c834eca2519e119c74be4413870046b83e0e4bd11037eff284ed22651233122633192022-05-16 23:25:019 days 14 hrs ago 0x58887c5fe7d021ec63b72ac4021980027e6fafe1 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x4011957e84d5d39825b92a816d370a26cf58177c996ddb1f127577139e865c5e115883532022-05-09 10:31:5317 days 3 hrs ago 0xdc28f2842810d1a013ad51de174d02eaba192dc7 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0xc7c2bed2eee08130fae2e1dae248e104bc3480d6d0fdae8e7a60635dd5b44ef4112458042022-05-05 11:36:1221 days 2 hrs ago 0x1a196b031ea1a74a53ecbe6148772648e02f9d51 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x8611b413fd779d78a200a299029f0a05157fd23f4830c578258a137495a90814112444472022-05-05 11:11:2321 days 2 hrs ago 0xbac7744ada4ab1957cbaafef698b3c068beb4fe0 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x8308a065cd304e5c1b86b4d7ebaa2840935c13a10fe9523de95024be3014ea53112168602022-05-05 2:11:2121 days 11 hrs ago 0xcb69ffc06d3c218472c50ee25f5a1d3ca9650c44 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0xec5fbfc56dcbd4f6f927319d5df41857aa709d9444c4f285ea6005ecc9a5a6e4112128202022-05-05 0:18:5821 days 13 hrs ago 0xcb69ffc06d3c218472c50ee25f5a1d3ca9650c44 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x92f10b511af50ff04bad773201ccef421959e5c924052b7dfdd4330b1a3a7b83112080662022-05-04 22:12:4421 days 15 hrs ago 0xcb69ffc06d3c218472c50ee25f5a1d3ca9650c44 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0xa052417f932b66495f9bb5919b4eca58adbec3302e2e0a228ae0cd15a29d611f110419382022-05-02 15:47:4823 days 21 hrs ago 0xcb69ffc06d3c218472c50ee25f5a1d3ca9650c44 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0xd39a47dd4fd1312300cfe842f5d55d5f255a67b1ed2359a06b7521db2d4fdca1110294452022-05-02 12:38:0424 days 1 hr ago 0x4bd850175a4e43afee34ae7b7dcd079a572dd69b 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x6a78ec924fb966f151afd63c4c9cde4edc0f6423461df5f6aab8fbdaa037afcb109797922022-05-01 17:11:0224 days 20 hrs ago 0x4a43b1d7e6227c8b0512e413f406555647ff7bdb 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x11609a87c2af60de43e32f4732d2241f13928b51d072e5ce8e0aff2693a40b68109728172022-05-01 14:12:3624 days 23 hrs ago 0xcb69ffc06d3c218472c50ee25f5a1d3ca9650c44 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x068118d4a8d790243bfefc189e5b66f193080e2c376cc3ff16553183bfd3099d108895072022-04-30 8:43:1526 days 4 hrs ago 0x6c06d3246fbb77c4ad75480e03d2a0a8eaf68121 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0xdb2baa20bbc58d03ce86c8943665009e219a80a4a6877b89180502cdea71b15f108542752022-04-29 20:57:0726 days 16 hrs ago 0x58887c5fe7d021ec63b72ac4021980027e6fafe1 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
0x2b6d8d3e0d1627bb96cd229e22fe25bc1e589dbade693cf82bd966ea2be1b977108490172022-04-29 19:22:5526 days 18 hrs ago 0xcb69ffc06d3c218472c50ee25f5a1d3ca9650c44 0x38093cdca43aecd7bb474983519a246e93a3b0a70 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ServiceRegistry

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Standard Json-Input format)

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 : 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 5 of 7 : ServiceRegistry.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;

import "./ManagerProxyTarget.sol";

/**
 * @title ServiceRegistry
 * @notice Maintains a registry of service metadata associated with service provider addresses (transcoders/orchestrators)
 */
contract ServiceRegistry is ManagerProxyTarget {
    // Store service metadata
    struct Record {
        string serviceURI; // Service URI endpoint that can be used to send off-chain requests
    }

    // Track records for addresses
    mapping(address => Record) private records;

    // Event fired when a caller updates its service URI endpoint
    event ServiceURIUpdate(address indexed addr, string serviceURI);

    /**
     * @notice ServiceRegistry constructor. Only invokes constructor of base Manager contract with provided Controller address
     * @param _controller Address of a Controller that this contract will be registered with
     */
    constructor(address _controller) Manager(_controller) {}

    /**
     * @notice Stores service URI endpoint for the caller that can be used to send requests to the caller off-chain
     * @param _serviceURI Service URI endpoint for the caller
     */
    function setServiceURI(string calldata _serviceURI) external {
        records[msg.sender].serviceURI = _serviceURI;

        emit ServiceURIUpdate(msg.sender, _serviceURI);
    }

    /**
     * @notice Returns service URI endpoint stored for a given address
     * @param _addr Address for which a service URI endpoint is desired
     */
    function getServiceURI(address _addr) public view returns (string memory) {
        return records[_addr].serviceURI;
    }
}

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"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"param","type":"string"}],"name":"ParameterUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"string","name":"serviceURI","type":"string"}],"name":"ServiceURIUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"controller","type":"address"}],"name":"SetController","type":"event"},{"inputs":[],"name":"controller","outputs":[{"internalType":"contract IController","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"getServiceURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"setController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_serviceURI","type":"string"}],"name":"setServiceURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"targetContractId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b5060405161057c38038061057c83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6104e9806100936000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063214c2a4b1461005c57806351720b41146100855780635f11301b1461009c57806392eefe9b146100b1578063f77c4791146100c4575b600080fd5b61006f61006a366004610352565b6100ef565b60405161007c9190610382565b60405180910390f35b61008e60015481565b60405190815260200161007c565b6100af6100aa3660046103d7565b61019b565b005b6100af6100bf366004610352565b6101fd565b6000546100d7906001600160a01b031681565b6040516001600160a01b03909116815260200161007c565b6001600160a01b038116600090815260026020526040902080546060919061011690610449565b80601f016020809104026020016040519081016040528092919081815260200182805461014290610449565b801561018f5780601f106101645761010080835404028352916020019161018f565b820191906000526020600020905b81548152906001019060200180831161017257829003601f168201915b50505050509050919050565b3360009081526002602052604090206101b59083836102b9565b50336001600160a01b03167ffbb63068732c85741c9f8e61caffaabe038d577bfafd2d2dcc0e352a4f653a4c83836040516101f1929190610484565b60405180910390a25050565b610205610259565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709060200160405180910390a150565b6000546001600160a01b031633146102b75760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015260640160405180910390fd5b565b8280546102c590610449565b90600052602060002090601f0160209004810192826102e7576000855561032d565b82601f106103005782800160ff1982351617855561032d565b8280016001018555821561032d579182015b8281111561032d578235825591602001919060010190610312565b5061033992915061033d565b5090565b5b80821115610339576000815560010161033e565b60006020828403121561036457600080fd5b81356001600160a01b038116811461037b57600080fd5b9392505050565b600060208083528351808285015260005b818110156103af57858101830151858201604001528201610393565b818111156103c1576000604083870101525b50601f01601f1916929092016040019392505050565b600080602083850312156103ea57600080fd5b823567ffffffffffffffff8082111561040257600080fd5b818501915085601f83011261041657600080fd5b81358181111561042557600080fd5b86602082850101111561043757600080fd5b60209290920196919550909350505050565b600181811c9082168061045d57607f821691505b6020821081141561047e57634e487b7160e01b600052602260045260246000fd5b50919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea2646970667358221220072fab04e9b0eb88e7ce73c7ea0dd0e46030826f89b48af04a185d7ac13df8de64736f6c63430008090033000000000000000000000000d8e8328501e9645d16cf49539efc04f734606ee4

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

000000000000000000000000d8e8328501e9645d16cf49539efc04f734606ee4

-----Decoded View---------------
Arg [0] : _controller (address): 0xd8e8328501e9645d16cf49539efc04f734606ee4

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


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.