Arbitrum Sepolia Testnet

Contract

0xE625f0b8b0Ac86946035a7729Aba124c8A64cf69

Overview

ETH Balance

0 ETH

More Info

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Amount
Register Admin V...2219504812025-12-05 7:36:443 hrs ago1764920204IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.02
Register Admin V...2219133232025-12-05 4:28:506 hrs ago1764908930IN
0xE625f0b8...c8A64cf69
0 ETH0.000002210.020016
Register Admin V...2218912612025-12-05 2:50:588 hrs ago1764903058IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.02
Register Admin V...2218870522025-12-05 2:32:528 hrs ago1764901972IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.02
Register Admin V...2215991672025-12-04 3:28:3631 hrs ago1764818916IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.02
Register Admin V...2215912782025-12-04 2:49:4732 hrs ago1764816587IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.02
Register Admin V...2213756702025-12-03 9:26:532 days ago1764754013IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.020022
Register Admin V...2211665122025-12-02 16:12:102 days ago1764691930IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.020034
Register Admin V...2211617492025-12-02 15:49:562 days ago1764690596IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.020024
Register Admin V...2211606592025-12-02 15:44:572 days ago1764690297IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.020012
Register Admin V...2211533442025-12-02 15:10:352 days ago1764688235IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.020024
Register Admin V...2211512562025-12-02 15:00:362 days ago1764687636IN
0xE625f0b8...c8A64cf69
0 ETH0.000002310.020108
Register Admin V...2211231222025-12-02 12:44:542 days ago1764679494IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.02
Register Admin V...2211162972025-12-02 12:12:472 days ago1764677567IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.02
Register Admin V...2210939682025-12-02 10:28:563 days ago1764671336IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.02
Register Admin V...2210835232025-12-02 9:41:293 days ago1764668489IN
0xE625f0b8...c8A64cf69
0 ETH0.000002240.02036
Register Admin V...2210720242025-12-02 8:49:463 days ago1764665386IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.020002
Register Admin V...2205741872025-11-30 20:16:344 days ago1764533794IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.02
Register Admin V...2202558712025-11-29 21:54:495 days ago1764453289IN
0xE625f0b8...c8A64cf69
0 ETH0.000002210.02
Register Admin V...2198395382025-11-28 16:31:456 days ago1764347505IN
0xE625f0b8...c8A64cf69
0 ETH0.000002210.02
Register Admin V...2195249812025-11-27 18:01:397 days ago1764266499IN
0xE625f0b8...c8A64cf69
0 ETH0.00000220.02
Register Admin V...2191811992025-11-26 16:12:398 days ago1764173559IN
0xE625f0b8...c8A64cf69
0 ETH0.000002420.02
Register Admin V...2180167092025-11-23 3:30:3212 days ago1763868632IN
0xE625f0b8...c8A64cf69
0 ETH0.00000230.02
Register Admin V...2180153032025-11-23 3:24:2212 days ago1763868262IN
0xE625f0b8...c8A64cf69
0 ETH0.00000230.02
Register Admin V...2180009892025-11-23 2:21:1712 days ago1763864477IN
0xE625f0b8...c8A64cf69
0 ETH0.00000230.02
View all transactions

Parent Transaction Hash Block From To Amount
View All Internal Transactions

Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x1B5d3156...18aa4bF98
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
RegistryModuleOwnerCustom

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 26000 runs

Other Settings:
paris EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.24;

import {ITypeAndVersion} from "../../shared/interfaces/ITypeAndVersion.sol";
import {IGetCCIPAdmin} from "../interfaces/IGetCCIPAdmin.sol";
import {IOwner} from "../interfaces/IOwner.sol";
import {ITokenAdminRegistry} from "../interfaces/ITokenAdminRegistry.sol";

contract RegistryModuleOwnerCustom is ITypeAndVersion {
  error CanOnlySelfRegister(address admin, address token);
  error AddressZero();

  event AdministratorRegistered(address indexed token, address indexed administrator);

  string public constant override typeAndVersion = "RegistryModuleOwnerCustom 1.5.0";

  // The TokenAdminRegistry contract
  ITokenAdminRegistry internal immutable i_tokenAdminRegistry;

  constructor(address tokenAdminRegistry) {
    if (tokenAdminRegistry == address(0)) {
      revert AddressZero();
    }
    i_tokenAdminRegistry = ITokenAdminRegistry(tokenAdminRegistry);
  }

  /// @notice Registers the admin of the token using the `getCCIPAdmin` method.
  /// @param token The token to register the admin for.
  /// @dev The caller must be the admin returned by the `getCCIPAdmin` method.
  function registerAdminViaGetCCIPAdmin(address token) external {
    _registerAdmin(token, IGetCCIPAdmin(token).getCCIPAdmin());
  }

  /// @notice Registers the admin of the token using the `owner` method.
  /// @param token The token to register the admin for.
  /// @dev The caller must be the admin returned by the `owner` method.
  function registerAdminViaOwner(address token) external {
    _registerAdmin(token, IOwner(token).owner());
  }

  /// @notice Registers the admin of the token to msg.sender given that the
  /// admin is equal to msg.sender.
  /// @param token The token to register the admin for.
  /// @param admin The caller must be the admin.
  function _registerAdmin(address token, address admin) internal {
    if (admin != msg.sender) {
      revert CanOnlySelfRegister(admin, token);
    }

    i_tokenAdminRegistry.proposeAdministrator(token, admin);

    emit AdministratorRegistered(token, admin);
  }
}

File 2 of 5 : ITypeAndVersion.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface ITypeAndVersion {
  function typeAndVersion() external pure returns (string memory);
}

File 3 of 5 : IGetCCIPAdmin.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IGetCCIPAdmin {
  /// @notice Returns the admin of the token.
  /// @dev This method is named to never conflict with existing methods.
  function getCCIPAdmin() external view returns (address);
}

File 4 of 5 : IOwner.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IOwner {
  /// @notice Returns the owner of the contract.
  /// @dev This method is named to match with the OpenZeppelin Ownable contract.
  function owner() external view returns (address);
}

// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.0;

interface ITokenAdminRegistry {
  /// @notice Returns the pool for the given token.
  function getPool(address token) external view returns (address);

  /// @notice Proposes an administrator for the given token as pending administrator.
  /// @param localToken The token to register the administrator for.
  /// @param administrator The administrator to register.
  function proposeAdministrator(address localToken, address administrator) external;
}

Settings
{
  "remappings": [
    "forge-std/=src/v0.8/vendor/forge-std/src/",
    "@openzeppelin/=node_modules/@openzeppelin/",
    "@arbitrum/=node_modules/@arbitrum/",
    "hardhat/=node_modules/hardhat/",
    "@eth-optimism/=node_modules/@eth-optimism/",
    "@scroll-tech/=node_modules/@scroll-tech/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 26000
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "none",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": false,
  "libraries": {}
}

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"tokenAdminRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AddressZero","type":"error"},{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"CanOnlySelfRegister","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"administrator","type":"address"}],"name":"AdministratorRegistered","type":"event"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"registerAdminViaGetCCIPAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"registerAdminViaOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"typeAndVersion","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

0x60a060405234801561001057600080fd5b5060405161047e38038061047e83398101604081905261002f91610067565b6001600160a01b03811661005657604051639fabe1c160e01b815260040160405180910390fd5b6001600160a01b0316608052610097565b60006020828403121561007957600080fd5b81516001600160a01b038116811461009057600080fd5b9392505050565b6080516103cc6100b2600039600061024a01526103cc6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063181f5a771461004657806396ea2f7a14610098578063ff12c354146100ad575b600080fd5b6100826040518060400160405280601f81526020017f52656769737472794d6f64756c654f776e6572437573746f6d20312e352e300081525081565b60405161008f91906102ef565b60405180910390f35b6100ab6100a636600461037e565b6100c0565b005b6100ab6100bb36600461037e565b61013b565b610138818273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561010f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013391906103a2565b61018a565b50565b610138818273ffffffffffffffffffffffffffffffffffffffff16638fd6a6ac6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561010f573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff811633146101fd576040517fc454d18200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80831660048301528316602482015260440160405180910390fd5b6040517fe677ae3700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015282811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063e677ae3790604401600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b505060405173ffffffffffffffffffffffffffffffffffffffff8085169350851691507f09590fb70af4b833346363965e043a9339e8c7d378b8a2b903c75c277faec4f990600090a35050565b60006020808352835180602085015260005b8181101561031d57858101830151858201604001528201610301565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461013857600080fd5b60006020828403121561039057600080fd5b813561039b8161035c565b9392505050565b6000602082840312156103b457600080fd5b815161039b8161035c56fea164736f6c6343000818000a0000000000000000000000008126be56454b628a88c17849b9ed99dd5a11bd2f

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063181f5a771461004657806396ea2f7a14610098578063ff12c354146100ad575b600080fd5b6100826040518060400160405280601f81526020017f52656769737472794d6f64756c654f776e6572437573746f6d20312e352e300081525081565b60405161008f91906102ef565b60405180910390f35b6100ab6100a636600461037e565b6100c0565b005b6100ab6100bb36600461037e565b61013b565b610138818273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561010f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013391906103a2565b61018a565b50565b610138818273ffffffffffffffffffffffffffffffffffffffff16638fd6a6ac6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561010f573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff811633146101fd576040517fc454d18200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80831660048301528316602482015260440160405180910390fd5b6040517fe677ae3700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015282811660248301527f0000000000000000000000008126be56454b628a88c17849b9ed99dd5a11bd2f169063e677ae3790604401600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b505060405173ffffffffffffffffffffffffffffffffffffffff8085169350851691507f09590fb70af4b833346363965e043a9339e8c7d378b8a2b903c75c277faec4f990600090a35050565b60006020808352835180602085015260005b8181101561031d57858101830151858201604001528201610301565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461013857600080fd5b60006020828403121561039057600080fd5b813561039b8161035c565b9392505050565b6000602082840312156103b457600080fd5b815161039b8161035c56fea164736f6c6343000818000a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0xE625f0b8b0Ac86946035a7729Aba124c8A64cf69
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.