Abstract Testnet

Contract

0xd5E3efDA6bB5aB545cc2358796E96D9033496Dda

Overview

ETH Balance

0 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Set Factory38973092025-01-09 20:16:488 days ago1736453808IN
0xd5E3efDA...033496Dda
0 ETH0.000003220.03777251

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
46011612025-01-18 18:23:321 min ago1737224612
0xd5E3efDA...033496Dda
0 ETH
46011612025-01-18 18:23:321 min ago1737224612
0xd5E3efDA...033496Dda
0 ETH
46011612025-01-18 18:23:321 min ago1737224612
0xd5E3efDA...033496Dda
0 ETH
46009072025-01-18 18:18:446 mins ago1737224324
0xd5E3efDA...033496Dda
0 ETH
46009072025-01-18 18:18:446 mins ago1737224324
0xd5E3efDA...033496Dda
0 ETH
46009072025-01-18 18:18:446 mins ago1737224324
0xd5E3efDA...033496Dda
0 ETH
46007082025-01-18 18:14:4110 mins ago1737224081
0xd5E3efDA...033496Dda
0 ETH
46007082025-01-18 18:14:4110 mins ago1737224081
0xd5E3efDA...033496Dda
0 ETH
46007082025-01-18 18:14:4110 mins ago1737224081
0xd5E3efDA...033496Dda
0 ETH
46005542025-01-18 18:11:4113 mins ago1737223901
0xd5E3efDA...033496Dda
0 ETH
46005542025-01-18 18:11:4113 mins ago1737223901
0xd5E3efDA...033496Dda
0 ETH
46005542025-01-18 18:11:4113 mins ago1737223901
0xd5E3efDA...033496Dda
0 ETH
46005392025-01-18 18:11:2513 mins ago1737223885
0xd5E3efDA...033496Dda
0 ETH
46005392025-01-18 18:11:2513 mins ago1737223885
0xd5E3efDA...033496Dda
0 ETH
46005392025-01-18 18:11:2513 mins ago1737223885
0xd5E3efDA...033496Dda
0 ETH
46004752025-01-18 18:10:1314 mins ago1737223813
0xd5E3efDA...033496Dda
0 ETH
46004752025-01-18 18:10:1314 mins ago1737223813
0xd5E3efDA...033496Dda
0 ETH
46004752025-01-18 18:10:1314 mins ago1737223813
0xd5E3efDA...033496Dda
0 ETH
46003032025-01-18 18:07:0317 mins ago1737223623
0xd5E3efDA...033496Dda
0 ETH
46003032025-01-18 18:07:0317 mins ago1737223623
0xd5E3efDA...033496Dda
0 ETH
46003032025-01-18 18:07:0317 mins ago1737223623
0xd5E3efDA...033496Dda
0 ETH
45998612025-01-18 17:59:0125 mins ago1737223141
0xd5E3efDA...033496Dda
0 ETH
45998612025-01-18 17:59:0125 mins ago1737223141
0xd5E3efDA...033496Dda
0 ETH
45998612025-01-18 17:59:0125 mins ago1737223141
0xd5E3efDA...033496Dda
0 ETH
45997722025-01-18 17:57:2427 mins ago1737223044
0xd5E3efDA...033496Dda
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AGWRegistry

Compiler Version
v0.8.26+commit.8a97fa7a

ZkSolc Version
v1.5.6

Optimization Enabled:
Yes with Mode 3

Other Settings:
cancun EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 6 : AGWRegistry.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.17;

import {Ownable, Ownable2Step} from '@openzeppelin/contracts/access/Ownable2Step.sol';

import {Errors} from './libraries/Errors.sol';
import {IAGWRegistry} from './interfaces/IAGWRegistry.sol';

contract AGWRegistry is Ownable2Step, IAGWRegistry {
    mapping(address => bool) public isFactory;
    // Mapping of AGW accounts
    mapping(address => bool) public isAGW;

    /**
     * @notice Event emmited when a factory contract is set
     * @param factory address - Address of the factory contract
     */
    event FactorySet(address indexed factory);

    /**
     * @notice Event emmited when a factory contract is unset
     * @param factory address - Address of the factory contract
     */
    event FactoryUnset(address indexed factory);

    // Constructor function of the contracts
    constructor(address _owner) Ownable(_owner) {}

    /**
     * @notice Registers an account as a AGW account
     * @dev Can only be called by the factory or owner
     * @param account address - Address of the account to register
     */
    function register(address account) external override {
        if (!isFactory[msg.sender] && msg.sender != owner()) {
            revert Errors.NOT_FROM_FACTORY();
        }

        isAGW[account] = true;
    }

    /**
     * @notice Registers multiple accounts as AGW accounts
     * @dev Can only be called by the factory or owner
     * @param accounts address[] - Array of addresses to register
     */
    function registerMultiple(address[] calldata accounts) external {
        if (!isFactory[msg.sender] && msg.sender != owner()) {
            revert Errors.NOT_FROM_FACTORY();
        }

        for (uint256 i = 0; i < accounts.length; i++) {
            isAGW[accounts[i]] = true;
        }
    }

    /**
     * @notice Unregisters an account as a AGW account
     * @dev Can only be called by the factory or owner
     * @param account address - Address of the account to unregister
     */
    function unregister(address account) external {
        if (!isFactory[msg.sender] && msg.sender != owner()) {
            revert Errors.NOT_FROM_FACTORY();
        }

        isAGW[account] = false;
    }

    /**
     * @notice Unregisters multiple accounts as AGW accounts
     * @dev Can only be called by the factory or owner
     * @param accounts address[] - Array of addresses to unregister
     */
    function unregisterMultiple(address[] calldata accounts) external {
        if (!isFactory[msg.sender] && msg.sender != owner()) {
            revert Errors.NOT_FROM_FACTORY();
        }

        for (uint256 i = 0; i < accounts.length; i++) {
            isAGW[accounts[i]] = false;
        }
    }

    /**
     * @notice Sets a new factory contract
     * @dev Can only be called by the owner
     * @param factory_ address - Address of the new factory
     */
    function setFactory(address factory_) external onlyOwner {
        isFactory[factory_] = true;

        emit FactorySet(factory_);
    }

    /**
     * @notice Unsets a factory contract
     * @dev Can only be called by the owner
     * @param factory_ address - Address of the factory
     */
    function unsetFactory(address factory_) external onlyOwner {
        isFactory[factory_] = false;

        emit FactoryUnset(factory_);
    }
}

File 2 of 6 : Errors.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.17;

library Errors {
    /*//////////////////////////////////////////////////////////////
                               AGW
    //////////////////////////////////////////////////////////////*/

    error INSUFFICIENT_FUNDS(); // 0xe7931438
    error FEE_PAYMENT_FAILED(); // 0x3d40a3a3
    error UNAUTHORIZED_OUTSIDE_TRANSACTION(); // 0xfc82da4e
    error VALIDATION_HOOK_FAILED(); // 0x52c9d27a

    /*//////////////////////////////////////////////////////////////
                               LINKED LIST
    //////////////////////////////////////////////////////////////*/

    error INVALID_PREV(); // 0x5a4c0eb3
    // Bytes
    error INVALID_BYTES(); // 0xb6dfaaff
    error BYTES_ALREADY_EXISTS(); // 0xdf6cac6b
    error BYTES_NOT_EXISTS(); // 0x689908a6
    // Address
    error INVALID_ADDRESS(); // 0x5963709b
    error ADDRESS_ALREADY_EXISTS(); // 0xf2d4d191
    error ADDRESS_NOT_EXISTS(); // 0xad6ab975

    /*//////////////////////////////////////////////////////////////
                              OWNER MANAGER
    //////////////////////////////////////////////////////////////*/

    error EMPTY_OWNERS(); // 0xc957eb7e
    error INVALID_PUBKEY_LENGTH(); // 0x04c4d8f7

    /*//////////////////////////////////////////////////////////////
                             VALIDATOR MANAGER
    //////////////////////////////////////////////////////////////*/

    error EMPTY_VALIDATORS(); // 0xd7c64d89
    error VALIDATOR_ERC165_FAIL(); // 0x5d5273ad

    /*//////////////////////////////////////////////////////////////
                              UPGRADE MANAGER
    //////////////////////////////////////////////////////////////*/

    error SAME_IMPLEMENTATION(); // 0x5e741005

    /*//////////////////////////////////////////////////////////////
                              HOOK MANAGER
    //////////////////////////////////////////////////////////////*/

    error EMPTY_HOOK_ADDRESS(); // 0x413348ae
    error HOOK_ERC165_FAIL(); // 0x9f93f87d
    error INVALID_KEY(); // 0xce7045bd

    /*//////////////////////////////////////////////////////////////
                             MODULE MANAGER
    //////////////////////////////////////////////////////////////*/

    error EMPTY_MODULE_ADDRESS(); // 0x912fe2f2
    error RECUSIVE_MODULE_CALL(); // 0x2cf7b9c8
    error MODULE_ERC165_FAIL(); // 0xc1ad2a50

    /*//////////////////////////////////////////////////////////////
                              AUTH
    //////////////////////////////////////////////////////////////*/

    error NOT_FROM_BOOTLOADER(); // 0x93887e3b
    error NOT_FROM_MODULE(); // 0x574a805d
    error NOT_FROM_HOOK(); // 0xd675a4f1
    error NOT_FROM_SELF(); // 0xa70c28d1
    error NOT_FROM_SELF_OR_MODULE(); // 0x22a1259f

    /*//////////////////////////////////////////////////////////////
                            R1 VALIDATOR
    //////////////////////////////////////////////////////////////*/

    error INVALID_SIGNATURE(); // 0xa3402a38

    /*//////////////////////////////////////////////////////////////
                          SOCIAL RECOVERY
    //////////////////////////////////////////////////////////////*/

    error INVALID_RECOVERY_CONFIG(); // 0xf774f439
    error INVALID_RECOVERY_NONCE(); // 0x098c9f8e
    error INVALID_GUARDIAN(); // 0x11a2a82b
    error INVALID_GUARDIAN_SIGNATURE(); // 0xcc117c1c
    error ZERO_ADDRESS_GUARDIAN(); // 0x6de9b401
    error GUARDIANS_MUST_BE_SORTED(); // 0xc52b41f7
    error RECOVERY_TIMELOCK(); // 0x1506ac5a
    error RECOVERY_NOT_STARTED(); // 0xa6a4a3aa
    error RECOVERY_NOT_INITED(); // 0xd0f6fdbf
    error RECOVERY_IN_PROGRESS(); // 0x8daa42a9
    error INSUFFICIENT_GUARDIANS(); // 0x7629075d
    error ALREADY_INITED(); // 0xdb0c77c8

    /*//////////////////////////////////////////////////////////////
                            FACTORY
    //////////////////////////////////////////////////////////////*/

    error DEPLOYMENT_FAILED(); // 0x0f02d218
    error INITIALIZATION_FAILED(); // 0x5b101091
    error INVALID_INITIALIZER(); // 0x350366d7
    error INVALID_SALT(); // 0x8b3152e6
    error ALREADY_CREATED(); // 0x26ebf2e8

    /*//////////////////////////////////////////////////////////////
                            PAYMASTER
    //////////////////////////////////////////////////////////////*/

    error UNSUPPORTED_FLOW(); // 0xd721e389
    error UNAUTHORIZED_WITHDRAW(); // 0x7809a0b4
    error INVALID_TOKEN(); // 0xd0995cf2
    error SHORT_PAYMASTER_INPUT(); // 0x48d170f6
    error UNSUPPORTED_TOKEN(); // 0xce706f70
    error LESS_ALLOWANCE_FOR_PAYMASTER(); // 0x11f7d13f
    error FAILED_FEE_TRANSFER(); // 0xf316e09d
    error INVALID_MARKUP(); // 0x4af7ffe3
    error USER_LIMIT_REACHED(); // 0x07235346
    error INVALID_USER_LIMIT(); // 0x2640fa41
    error NOT_AGW_ACCOUNT(); // 0x1ae1d6fd
    error EXCEEDS_MAX_SPONSORED_ETH(); // 0x3f379f40

    /*//////////////////////////////////////////////////////////////
                             REGISTRY
    //////////////////////////////////////////////////////////////*/

    error NOT_FROM_FACTORY(); // 0x238438ed
    error NOT_FROM_DEPLOYER(); // 0x83f090e3

    /*//////////////////////////////////////////////////////////////
                            BatchCaller
    //////////////////////////////////////////////////////////////*/

    error ONLY_DELEGATECALL(); // 0x43d22ee9
    error CALL_FAILED(); // 0x84aed38d

    /*//////////////////////////////////////////////////////////////
                            INITABLE
    //////////////////////////////////////////////////////////////*/

    error MODULE_NOT_ADDED_CORRECTLY(); // 0xb66e8ec4
    error MODULE_NOT_REMOVED_CORRECTLY(); // 0x680c8744

    error MsgValueMismatch(uint256 actualValue, uint256 expectedValue);
}

File 3 of 6 : IAGWRegistry.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.17;

interface IAGWRegistry {
    function register(address account) external;

    function isAGW(address account) external view returns (bool);
}

File 4 of 6 : Ownable2Step.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.1.0) (access/Ownable2Step.sol)

pragma solidity ^0.8.20;

import {Ownable} from "./Ownable.sol";

/**
 * @dev Contract module which provides access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * This extension of the {Ownable} contract includes a two-step mechanism to transfer
 * ownership, where the new owner must call {acceptOwnership} in order to replace the
 * old one. This can help prevent common mistakes, such as transfers of ownership to
 * incorrect accounts, or to contracts that are unable to interact with the
 * permission system.
 *
 * The initial owner is specified at deployment time in the constructor for `Ownable`. This
 * can later be changed with {transferOwnership} and {acceptOwnership}.
 *
 * This module is used through inheritance. It will make available all functions
 * from parent (Ownable).
 */
abstract contract Ownable2Step is Ownable {
    address private _pendingOwner;

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

    /**
     * @dev Returns the address of the pending owner.
     */
    function pendingOwner() public view virtual returns (address) {
        return _pendingOwner;
    }

    /**
     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.
     * Can only be called by the current owner.
     *
     * Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.
     */
    function transferOwnership(address newOwner) public virtual override onlyOwner {
        _pendingOwner = newOwner;
        emit OwnershipTransferStarted(owner(), newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual override {
        delete _pendingOwner;
        super._transferOwnership(newOwner);
    }

    /**
     * @dev The new owner accepts the ownership transfer.
     */
    function acceptOwnership() public virtual {
        address sender = _msgSender();
        if (pendingOwner() != sender) {
            revert OwnableUnauthorizedAccount(sender);
        }
        _transferOwnership(sender);
    }
}

File 5 of 6 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

import {Context} from "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * The initial owner is set to the address provided by the deployer. This can
 * later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

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

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 6 of 6 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

Settings
{
  "evmVersion": "cancun",
  "optimizer": {
    "enabled": true,
    "mode": "3"
  },
  "outputSelection": {
    "*": {
      "*": [
        "abi"
      ]
    }
  },
  "detectMissingLibraries": false,
  "forceEVMLA": false,
  "enableEraVMExtensions": true,
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NOT_FROM_FACTORY","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"factory","type":"address"}],"name":"FactorySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"factory","type":"address"}],"name":"FactoryUnset","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAGW","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFactory","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":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"registerMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"factory_","type":"address"}],"name":"setFactory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unregister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"unregisterMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"factory_","type":"address"}],"name":"unsetFactory","outputs":[],"stateMutability":"nonpayable","type":"function"}]

3cda33510000000000000000000000000000000000000000000000000000000000000000010000bf48d0c1e9dabf7ac2263dbee7e69326c391cec2f6657f8baa97257d0b000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006f6426a9b93a7567fcccbfe5d0d6f26c1085999b

Deployed Bytecode

0x0001000000000002000300000000000200000000000103550000006003100270000000980330019700000001002001900000001d0000c13d0000008002000039000000400020043f000000040030008c000002360000413d000000000201043b000000e002200270000000a20020009c000000470000a13d000000a30020009c000000790000a13d000000a40020009c000000a90000213d000000a70020009c000000ef0000613d000000a80020009c000002360000c13d0000000001000416000000000001004b000002360000c13d0000000101000039000000000101041a000001bb0000013d0000000002000416000000000002004b000002360000c13d0000001f0230003900000099022001970000008002200039000000400020043f0000001f0430018f0000009a0530019800000080025000390000002e0000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b0000002a0000c13d000000000004004b0000003b0000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000200030008c000002360000413d000000800100043d0000009b0010009c000002360000213d0000009b06100198000000d60000c13d000000a001000041000000000010043f000000040000043f000000a1010000410000025f00010430000000ac0020009c0000008b0000213d000000b00020009c0000013d0000613d000000b10020009c000001510000613d000000b20020009c000002360000c13d000000240030008c000002360000413d0000000002000416000000000002004b000002360000c13d0000000401100370000000000201043b0000009b0020009c000002360000213d0000000001000411000000000010043f0000000201000039000000200010043f0000000001000414000000980010009c0000009801008041000000c001100210000000b4011001c7000300000002001d0000801002000039025d02580000040f00000001002001900000000302000029000002360000613d000000000101043b000000000101041a000000ff00100190000000700000c13d000000000100041a0000009b011001970000000003000411000000000013004b000002420000c13d000000000020043f0000000301000039000000200010043f025d02460000040f000000000201041a000000bc02200197000000000021041b00000000010000190000025e0001042e000000a90020009c0000019e0000613d000000aa0020009c000001b70000613d000000ab0020009c000002360000c13d000000240030008c000002360000413d0000000002000416000000000002004b000002360000c13d0000000401100370000000000101043b0000009b0010009c000002360000213d000000000010043f0000000301000039000001480000013d000000ad0020009c000001bf0000613d000000ae0020009c000001ea0000613d000000af0020009c000002360000c13d0000000001000416000000000001004b000002360000c13d000000000100041a0000009b051001970000000002000411000000000025004b000002380000c13d0000000102000039000000000302041a0000009c03300197000000000032041b0000009c01100197000000000010041b0000000001000414000000980010009c0000009801008041000000c0011002100000009d011001c70000800d0200003900000003030000390000009e040000410000000006000019000002310000013d000000a50020009c000002150000613d000000a60020009c000002360000c13d000000240030008c000002360000413d0000000002000416000000000002004b000002360000c13d0000000401100370000000000101043b0000009b0010009c000002360000213d000000000200041a0000009b032001970000000002000411000000000023004b000002380000c13d0000009b01100197000300000001001d000000000010043f0000000201000039000000200010043f0000000001000414000000980010009c0000009801008041000000c001100210000000b4011001c70000801002000039025d02580000040f0000000100200190000002360000613d000000000101043b000000000201041a000000bc02200197000000000021041b0000000001000414000000980010009c0000009801008041000000c0011002100000009d011001c70000800d020000390000000203000039000000b504000041000002130000013d0000000101000039000000000201041a0000009c02200197000000000021041b000000000100041a0000009c02100197000000000262019f000000000020041b00000000020004140000009b05100197000000980020009c0000009802008041000000c0012002100000009d011001c70000800d0200003900000003030000390000009e04000041025d02530000040f0000000100200190000002360000613d0000002001000039000001000010044300000120000004430000009f010000410000025e0001042e000000240030008c000002360000413d0000000002000416000000000002004b000002360000c13d0000000402100370000000000202043b000000b80020009c000002360000213d0000002304200039000000000034004b000002360000813d0000000404200039000000000141034f000000000101043b000200000001001d000000b80010009c000002360000213d000100240020003d000000020100002900000005011002100000000101100029000000000031004b000002360000213d0000000001000411000000000010043f0000000201000039000000200010043f0000000001000414000000980010009c0000009801008041000000c001100210000000b4011001c70000801002000039025d02580000040f0000000100200190000002360000613d000000000101043b000000000101041a000000ff001001900000011d0000c13d000000000100041a0000009b011001970000000002000411000000000012004b000002420000c13d000000020000006b000002340000613d0000000004000019000000050140021000000001011000290000000001100367000000000101043b0000009b0010009c000002360000213d000000000010043f0000000301000039000000200010043f0000000001000414000000980010009c0000009801008041000000c001100210000000b4011001c70000801002000039000300000004001d025d02580000040f00000003040000290000000100200190000002360000613d000000000101043b000000000201041a000000bc0220019700000001022001bf000000000021041b0000000104400039000000020040006c000001200000413d000002340000013d000000240030008c000002360000413d0000000002000416000000000002004b000002360000c13d0000000401100370000000000101043b0000009b0010009c000002360000213d000000000010043f0000000201000039000000200010043f025d02460000040f000000000101041a000000ff001001900000000001000039000000010100c039000000800010043f000000b7010000410000025e0001042e000000240030008c000002360000413d0000000002000416000000000002004b000002360000c13d0000000402100370000000000202043b000000b80020009c000002360000213d0000002304200039000000000034004b000002360000813d0000000404200039000000000141034f000000000101043b000200000001001d000000b80010009c000002360000213d000100240020003d000000020100002900000005011002100000000101100029000000000031004b000002360000213d0000000001000411000000000010043f0000000201000039000000200010043f0000000001000414000000980010009c0000009801008041000000c001100210000000b4011001c70000801002000039025d02580000040f0000000100200190000002360000613d000000000101043b000000000101041a000000ff001001900000017f0000c13d000000000100041a0000009b011001970000000002000411000000000012004b000002420000c13d000000020000006b000002340000613d0000000004000019000000050140021000000001011000290000000001100367000000000101043b0000009b0010009c000002360000213d000000000010043f0000000301000039000000200010043f0000000001000414000000980010009c0000009801008041000000c001100210000000b4011001c70000801002000039000300000004001d025d02580000040f00000003040000290000000100200190000002360000613d000000000101043b000000000201041a000000bc02200197000000000021041b0000000104400039000000020040006c000001820000413d000002340000013d0000000001000416000000000001004b000002360000c13d0000000101000039000000000201041a0000009b032001970000000006000411000000000063004b0000023d0000c13d0000009c02200197000000000021041b000000000100041a0000009c02100197000000000262019f000000000020041b00000000020004140000009b05100197000000980020009c0000009802008041000000c0012002100000009d011001c70000800d0200003900000003030000390000009e04000041000002310000013d0000000001000416000000000001004b000002360000c13d000000000100041a0000009b01100197000000800010043f000000b7010000410000025e0001042e000000240030008c000002360000413d0000000002000416000000000002004b000002360000c13d0000000401100370000000000201043b0000009b0020009c000002360000213d0000000001000411000000000010043f0000000201000039000000200010043f0000000001000414000000980010009c0000009801008041000000c001100210000000b4011001c7000300000002001d0000801002000039025d02580000040f00000001002001900000000302000029000002360000613d000000000101043b000000000101041a000000ff00100190000001e00000c13d000000000100041a0000009b011001970000000003000411000000000013004b000002420000c13d000000000020043f0000000301000039000000200010043f025d02460000040f000000000201041a000000bc0220019700000001022001bf000000000021041b00000000010000190000025e0001042e000000240030008c000002360000413d0000000002000416000000000002004b000002360000c13d0000000401100370000000000101043b0000009b0010009c000002360000213d000000000200041a0000009b032001970000000002000411000000000023004b000002380000c13d0000009b01100197000300000001001d000000000010043f0000000201000039000000200010043f0000000001000414000000980010009c0000009801008041000000c001100210000000b4011001c70000801002000039025d02580000040f0000000100200190000002360000613d000000000101043b000000000201041a000000bc0220019700000001022001bf000000000021041b0000000001000414000000980010009c0000009801008041000000c0011002100000009d011001c70000800d020000390000000203000039000000b9040000410000000305000029000002310000013d000000240030008c000002360000413d0000000002000416000000000002004b000002360000c13d0000000401100370000000000101043b0000009b0010009c000002360000213d000000000200041a0000009b052001970000000002000411000000000025004b000002380000c13d0000009b061001970000000101000039000000000201041a0000009c02200197000000000262019f000000000021041b0000000001000414000000980010009c0000009801008041000000c0011002100000009d011001c70000800d020000390000000303000039000000b604000041025d02530000040f0000000100200190000002360000613d00000000010000190000025e0001042e00000000010000190000025f00010430000000b301000041000000000010043f000000040020043f000000a1010000410000025f00010430000000b301000041000000000010043f000000040060043f000000a1010000410000025f00010430000000ba01000041000000000010043f000000bb010000410000025f000104300000000001000414000000980010009c0000009801008041000000c001100210000000b4011001c70000801002000039025d02580000040f0000000100200190000002510000613d000000000101043b000000000001042d00000000010000190000025f0001043000000256002104210000000102000039000000000001042d0000000002000019000000000001042d0000025b002104230000000102000039000000000001042d0000000002000019000000000001042d0000025d000004320000025e0001042e0000025f0001043000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000002000000000000000000000000000000400000010000000000000000001e4fbdf70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000079ba509600000000000000000000000000000000000000000000000000000000a3ba111500000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000fe819cf800000000000000000000000000000000000000000000000000000000a3ba111600000000000000000000000000000000000000000000000000000000e30c39780000000000000000000000000000000000000000000000000000000079ba5097000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000932bdb47000000000000000000000000000000000000000000000000000000004420e485000000000000000000000000000000000000000000000000000000004420e486000000000000000000000000000000000000000000000000000000005bb4780800000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000000f04ba6700000000000000000000000000000000000000000000000000000000210623ea000000000000000000000000000000000000000000000000000000002ec2c246118cdaa7000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000040000000000000000000000000a28509b69b263b0c27b3b2947957d2eceaf2509f452a3587dd447b30de6ab26538d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff1edf3afd4ac789736e00d216cd88be164ddcef26a6eedcc30cdb0cb62f3741b1238438ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000798824baf2312948e042950f14584919f0b11033702f2c05c1a03b48ef561585

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

0000000000000000000000006f6426a9b93a7567fcccbfe5d0d6f26c1085999b

-----Decoded View---------------
Arg [0] : _owner (address): 0x6f6426a9b93a7567fCCcBfE5d0d6F26c1085999b

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006f6426a9b93a7567fcccbfe5d0d6f26c1085999b


Block Transaction 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
[ Download: CSV Export  ]
[ 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.