S Price: $0.614238 (+1.31%)
    /

    Contract

    0x2D5bECCd023c5f2333b06Fc85121F33c59b2659e

    Overview

    S Balance

    Sonic LogoSonic LogoSonic Logo0 S

    S Value

    $0.00

    Multichain Info

    No addresses found
    Transaction Hash
    Method
    Block
    Age
    From
    To
    Amount

    There are no matching entries

    1 Internal Transaction found.

    Latest 1 internal transaction

    Parent Transaction Hash Block Age From To Amount
    13554582024-12-23 15:43:5092 days ago1734968630
     Contract Creation
    0 S
    Loading...
    Loading

    Contract Source Code Verified (Exact Match)

    Contract Name:
    K1Validator

    Compiler Version
    v0.8.27+commit.40a35a09

    Optimization Enabled:
    Yes with 999 runs

    Other Settings:
    cancun EvmVersion
    File 1 of 9 : K1Validator.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.27;
    // ──────────────────────────────────────────────────────────────────────────────
    // _ __ _ __
    // / | / /__ | |/ /_ _______
    // / |/ / _ \| / / / / ___/
    // / /| / __/ / /_/ (__ )
    // /_/ |_/\___/_/|_\__,_/____/
    //
    // ──────────────────────────────────────────────────────────────────────────────
    // Nexus: A suite of contracts for Modular Smart Accounts compliant with ERC-7579 and ERC-4337, developed by Biconomy.
    // Learn more at https://biconomy.io. To report security issues, please contact us at: security@biconomy.io
    import { ECDSA } from "solady/utils/ECDSA.sol";
    import { PackedUserOperation } from "account-abstraction/interfaces/PackedUserOperation.sol";
    import { ERC7739Validator } from "erc7739Validator/ERC7739Validator.sol";
    import { IValidator } from "../../interfaces/modules/IValidator.sol";
    import { EnumerableSet } from "../../lib/EnumerableSet4337.sol";
    import { MODULE_TYPE_VALIDATOR, VALIDATION_SUCCESS, VALIDATION_FAILED } from "../../types/Constants.sol";
    /// @title Nexus - K1Validator (ECDSA)
    /// @notice Validator module for smart accounts, verifying user operation signatures
    /// based on the K1 curve (secp256k1), a widely used ECDSA algorithm.
    /// @dev Implements secure ownership validation by checking signatures against registered
    /// owners. This module supports ERC-7579 and ERC-4337 standards, ensuring only the
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 9 : ECDSA.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Gas optimized ECDSA wrapper.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/ECDSA.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/ECDSA.sol)
    /// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/ECDSA.sol)
    ///
    /// @dev Note:
    /// - The recovery functions use the ecrecover precompile (0x1).
    /// - As of Solady version 0.0.68, the `recover` variants will revert upon recovery failure.
    /// This is for more safety by default.
    /// Use the `tryRecover` variants if you need to get the zero address back
    /// upon recovery failure instead.
    /// - As of Solady version 0.0.134, all `bytes signature` variants accept both
    /// regular 65-byte `(r, s, v)` and EIP-2098 `(r, vs)` short form signatures.
    /// See: https://eips.ethereum.org/EIPS/eip-2098
    /// This is for calldata efficiency on smart accounts prevalent on L2s.
    ///
    /// WARNING! Do NOT directly use signatures as unique identifiers:
    /// - The recovery operations do NOT check if a signature is non-malleable.
    /// - Use a nonce in the digest to prevent replay attacks on the same contract.
    /// - Use EIP-712 for the digest to prevent replay attacks across different chains and contracts.
    /// EIP-712 also enables readable signing of typed data for better user safety.
    /// - If you need a unique hash from a signature, please use the `canonicalHash` functions.
    library ECDSA {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 9 : PackedUserOperation.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    // SPDX-License-Identifier: GPL-3.0
    pragma solidity >=0.7.5;
    /**
    * User Operation struct
    * @param sender - The sender account of this request.
    * @param nonce - Unique value the sender uses to verify it is not a replay.
    * @param initCode - If set, the account contract will be created by this constructor/
    * @param callData - The method call to execute on this account.
    * @param accountGasLimits - Packed gas limits for validateUserOp and gas limit passed to the callData method call.
    * @param preVerificationGas - Gas not calculated by the handleOps method, but added to the gas paid.
    * Covers batch overhead.
    * @param gasFees - packed gas fields maxPriorityFeePerGas and maxFeePerGas - Same as EIP-1559 gas parameters.
    * @param paymasterAndData - If set, this field holds the paymaster address, verification gas limit, postOp gas limit and paymaster-specific
         extra data
    * The paymaster will pay for the transaction instead of the sender.
    * @param signature - Sender-verified signature over the entire request, the EntryPoint address and the chain ID.
    */
    struct PackedUserOperation {
    address sender;
    uint256 nonce;
    bytes initCode;
    bytes callData;
    bytes32 accountGasLimits;
    uint256 preVerificationGas;
    bytes32 gasFees;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 9 : ERC7739Validator.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.27;
    interface IERC5267 {
    function eip712Domain() external view returns (
    bytes1 fields,
    string memory name,
    string memory version,
    uint256 chainId,
    address verifyingContract,
    bytes32 salt,
    uint256[] memory extensions
    );
    }
    /// @title ERC-7739: Nested Typed Data Sign Support for ERC-7579 Validators
    abstract contract ERC7739Validator {
    error InvalidSignature();
    /// @dev `keccak256("PersonalSign(bytes prefixed)")`.
    bytes32 internal constant _PERSONAL_SIGN_TYPEHASH = 0x983e65e5148e570cd828ead231ee759a8d7958721a768f93bc4483ba005c32de;
    bytes32 internal constant _DOMAIN_TYPEHASH = 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f;
    bytes4 internal constant SUPPORTS_ERC7739 = 0x77390001;
    /*//////////////////////////////////////////////////////////////////////////
    INTERNAL
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 9 : IValidator.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.27;
    // ──────────────────────────────────────────────────────────────────────────────
    // _ __ _ __
    // / | / /__ | |/ /_ _______
    // / |/ / _ \| / / / / ___/
    // / /| / __/ / /_/ (__ )
    // /_/ |_/\___/_/|_\__,_/____/
    //
    // ──────────────────────────────────────────────────────────────────────────────
    // Nexus: A suite of contracts for Modular Smart Accounts compliant with ERC-7579 and ERC-4337, developed by Biconomy.
    // Learn more at https://biconomy.io. To report security issues, please contact us at: security@biconomy.io
    import { PackedUserOperation } from "account-abstraction/interfaces/PackedUserOperation.sol";
    import { IModule } from "./IModule.sol";
    /// @author @livingrockrises | Biconomy | chirag@biconomy.io
    /// @author @aboudjem | Biconomy | adam.boudjemaa@biconomy.io
    /// @author @filmakarov | Biconomy | filipp.makarov@biconomy.io
    /// @author @zeroknots | Rhinestone.wtf | zeroknots.eth
    /// Special thanks to the Solady team for foundational contributions: https://github.com/Vectorized/solady
    interface IValidator is IModule {
    /// @notice Validates a user operation as per ERC-4337 standard requirements.
    /// @dev Should ensure that the signature and nonce are verified correctly before the transaction is allowed to proceed.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 9 : EnumerableSet4337.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.27;
    import "./AssociatedArrayLib.sol";
    /**
    * Fork of OZ's EnumerableSet that makes all storage access ERC-4337 compliant via associated storage
    * @author zeroknots.eth (rhinestone)
    */
    library EnumerableSet {
    using AssociatedArrayLib for AssociatedArrayLib.Bytes32Array;
    // To implement this library for multiple types with as little code
    // repetition as possible, we write it in terms of a generic Set type with
    // bytes32 values.
    // The Set implementation uses private functions, and user-facing
    // implementations (such as AddressSet) are just wrappers around the
    // underlying Set.
    // This means that we can only create new EnumerableSets for types that fit
    // in bytes32.
    struct Set {
    // Storage of set values
    AssociatedArrayLib.Bytes32Array _values;
    // Position is the index of the value in the `values` array plus 1.
    // Position 0 is used to mean a value is not in the set.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 9 : Constants.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.27;
    // ──────────────────────────────────────────────────────────────────────────────
    // _ __ _ __
    // / | / /__ | |/ /_ _______
    // / |/ / _ \| / / / / ___/
    // / /| / __/ / /_/ (__ )
    // /_/ |_/\___/_/|_\__,_/____/
    //
    // ──────────────────────────────────────────────────────────────────────────────
    // Nexus: A suite of contracts for Modular Smart Accounts compliant with ERC-7579 and ERC-4337, developed by Biconomy.
    // Learn more at https://biconomy.io. To report security issues, please contact us at: security@biconomy.io
    // Magic value for ERC-1271 valid signature
    bytes4 constant ERC1271_MAGICVALUE = 0x1626ba7e;
    // Value indicating an invalid ERC-1271 signature
    bytes4 constant ERC1271_INVALID = 0xFFFFFFFF;
    // Value indicating successful validation
    uint256 constant VALIDATION_SUCCESS = 0;
    // Value indicating failed validation
    uint256 constant VALIDATION_FAILED = 1;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 8 of 9 : IModule.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.27;
    // ──────────────────────────────────────────────────────────────────────────────
    // _ __ _ __
    // / | / /__ | |/ /_ _______
    // / |/ / _ \| / / / / ___/
    // / /| / __/ / /_/ (__ )
    // /_/ |_/\___/_/|_\__,_/____/
    //
    // ──────────────────────────────────────────────────────────────────────────────
    // Nexus: A suite of contracts for Modular Smart Accounts compliant with ERC-7579 and ERC-4337, developed by Biconomy.
    // Learn more at https://biconomy.io. To report security issues, please contact us at: security@biconomy.io
    /// @title Nexus - ERC-7579 Module Base Interface
    /// @notice Interface for module management in smart accounts, complying with ERC-7579 specifications.
    /// @dev Defines the lifecycle hooks and checks for modules within the smart account architecture.
    /// This interface includes methods for installing, uninstalling, and verifying module types and initialization status.
    /// @author @livingrockrises | Biconomy | chirag@biconomy.io
    /// @author @aboudjem | Biconomy | adam.boudjemaa@biconomy.io
    /// @author @filmakarov | Biconomy | filipp.makarov@biconomy.io
    /// @author @zeroknots | Rhinestone.wtf | zeroknots.eth
    /// Special thanks to the Solady team for foundational contributions: https://github.com/Vectorized/solady
    interface IModule {
    /// @notice Installs the module with necessary initialization data.
    /// @dev Reverts if the module is already initialized.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 9 of 9 : AssociatedArrayLib.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.27;
    library AssociatedArrayLib {
    using AssociatedArrayLib for *;
    struct Array {
    uint256 _spacer;
    }
    struct Bytes32Array {
    Array _inner;
    }
    struct AddressArray {
    Array _inner;
    }
    struct UintArray {
    Array _inner;
    }
    error AssociatedArray_OutOfBounds(uint256 index);
    function add(Bytes32Array storage s, address account, bytes32 value) internal {
    if (!_contains(s._inner, account, value)) {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    {
    "remappings": [
    "@openzeppelin/=node_modules/@openzeppelin/",
    "forge-std/=node_modules/forge-std/src/",
    "account-abstraction/=node_modules/account-abstraction/contracts/",
    "solady/=node_modules/solady/src/",
    "excessively-safe-call/=node_modules/excessively-safe-call/src/",
    "sentinellist/=node_modules/sentinellist/src/",
    "solarray/=node_modules/solarray/src/",
    "erc7739Validator/=node_modules/erc7739-validator-base/src/",
    "@ERC4337/=node_modules/@ERC4337/",
    "@gnosis.pm/=node_modules/@gnosis.pm/",
    "@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/",
    "@prb/=node_modules/@prb/",
    "@prb/math/=node_modules/erc7739-validator-base/node_modules/@prb/math/src/",
    "@rhinestone/=node_modules/@rhinestone/",
    "@safe-global/=node_modules/@safe-global/",
    "@zerodev/=node_modules/@zerodev/",
    "ExcessivelySafeCall/=node_modules/erc7739-validator-base/node_modules/excessively-safe-call/src/",
    "account-abstraction-v0.6/=node_modules/account-abstraction-v0.6/",
    "ds-test/=node_modules/ds-test/",
    "enumerablemap/=node_modules/enumerablemap/",
    "enumerableset4337/=node_modules/erc7739-validator-base/node_modules/enumerablemap/src/",
    "erc4337-validation/=node_modules/erc7739-validator-base/node_modules/@rhinestone/erc4337-validation/src/",
    "erc7579/=node_modules/erc7579/",
    "erc7739-validator-base/=node_modules/erc7739-validator-base/",
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract Security Audit

    Contract ABI

    API
    [{"inputs":[],"name":"InvalidDataLength","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"ModuleAlreadyInitialized","type":"error"},{"inputs":[],"name":"NewOwnerIsContract","type":"error"},{"inputs":[],"name":"NoOwnerProvided","type":"error"},{"inputs":[],"name":"OwnerCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"addSafeSender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"smartAccount","type":"address"}],"name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"typeId","type":"uint256"}],"name":"isModuleType","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"smartAccount","type":"address"}],"name":"isSafeSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"isValidSignatureWithSender","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onInstall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"onUninstall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"removeSafeSender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"smartAccountOwners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"supportsNestedTypedDataSign","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"validateSignatureWithData","outputs":[{"internalType":"bool","name":"validSig","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple"},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"}],"name":"validateUserOp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}]

    6080604052348015600e575f5ffd5b506116958061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c8063940d384011610093578063e824b56811610063578063e824b56814610283578063ecd0596114610296578063f2fde38b146102aa578063f551e2ee146102bd575f5ffd5b8063940d3840146102165780639700320314610229578063d60b347f1461024a578063d620c85a1461025d575f5ffd5b806354fd4d50116100ce57806354fd4d50146101a25780635c81ca68146101db5780636d61fe70146101f05780638a91b0e314610203575f5ffd5b806306fdde03146100f45780630807dbc11461013f5780632e5b63a614610162575b5f5ffd5b60408051808201909152600b81527f4b3156616c696461746f7200000000000000000000000000000000000000000060208201525b60405161013691906110e0565b60405180910390f35b61015261014d36600461112c565b610301565b6040519015158152602001610136565b61018a610170366004611163565b5f602081905290815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610136565b60408051808201909152600581527f312e302e310000000000000000000000000000000000000000000000000000006020820152610129565b6101ee6101e9366004611163565b610317565b005b6101ee6101fe3660046111bc565b610327565b6101ee6102113660046111bc565b61047a565b6101526102243660046111fb565b6104af565b61023c610237366004611274565b61051d565b604051908152602001610136565b610152610258366004611163565b610573565b7fd620c85a0000000000000000000000000000000000000000000000000000000061023c565b6101ee610291366004611163565b610596565b6101526102a43660046112bb565b60011490565b6101ee6102b8366004611163565b6105a2565b6102d06102cb3660046112d2565b61063d565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610136565b5f61030e6001838561065d565b90505b92915050565b61032360013383610693565b5050565b5f819003610361576040517f1f2a381c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f908152602081905260409020546001600160a01b0316156103b0576040517fe72ce85e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6103be601482848661132a565b6103c791611351565b60601c905080610403576040517fc81abf6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803b15610423576040516383e6a1cb60e01b815260040160405180910390fd5b335f908152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316179055601482111561047557610475610470836014818761132a565b6106a8565b505050565b335f818152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191690556103239060019061070f565b5f601482146104ea576040517fdfe9309000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6104f8601482858761132a565b61050191611351565b60601c905061051281888888610719565b979650505050505050565b5f61056081806105306020870187611163565b6001600160a01b03908116825260208201929092526040015f2054168361055b610100870187611391565b610719565b61056b57600161030e565b505f92915050565b6001600160a01b038082165f908152602081905260408120549091161515610311565b610323600133836107a7565b6001600160a01b0381166105e2576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803b15610602576040516383e6a1cb60e01b815260040160405180910390fd5b335f908152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b5f610652858561064d86866107bc565b6107ec565b90505b949350505050565b6001600160a01b038181165f908152600185016020908152604080832093861683529290529081205415155b90505b9392505050565b5f61068984846001600160a01b0385166108ce565b5f5b6106b56014836113e8565b811015610475576107063384846106cd856014611407565b906106d986600161141e565b6106e4906014611407565b926106f19392919061132a565b6106fa91611351565b6001919060601c610693565b506001016106aa565b6103238282610953565b5f846001600160a01b031661072f8585856109a7565b6001600160a01b03160361074557506001610655565b846001600160a01b0316610787610780866020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c60042090565b85856109a7565b6001600160a01b03160361079d57506001610655565b505f949350505050565b5f61068984846001600160a01b0385166109e9565b818161649261ffff30801c190402818301601f190135036107e557506040810135016020810190355b9250929050565b5f816108295761773961ffff83190402840361082957507f7739000100000000000000000000000000000000000000000000000000000000610655565b60208301357f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0811115610888576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61089587878787610ac7565b806108a657506108a6868686610ae1565b806108b757506108b7868686610d88565b155f03631626ba7e1760e01b979650505050505050565b5f81815260018401602090815260408083206001600160a01b038616845290915281205461094c575f83815260208581526040909120805460010191820281018490555561091c8484610df3565b5f8381526001808701602090815260408084206001600160a01b038916855290915290912091909155905061068c565b505f61068c565b5f61095e8383610e06565b905060015b8181116109a1575f61097f858561097a8587611431565b610e11565b905061098c8585836109e9565b5050808061099990611444565b915050610963565b50505050565b5f61068983838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508893925050610e1d9050565b5f81815260018401602090815260408083206001600160a01b03861684529091528120548015610abe575f610a1f600183611431565b90505f6001610a2e8888610df3565b610a389190611431565b9050808214610a82575f610a4d888884610eb5565b9050610a5b88888584610ec1565b5f90815260018801602090815260408083206001600160a01b038a16845290915290208390555b610a8c8787610ecd565b5050505f8281526001808601602090815260408084206001600160a01b0388168552909152822091909155905061068c565b5f91505061068c565b5f610ad185610ed7565b1561065557610652848484610f17565b5f308015610b9a575f5f5f5f5f336001600160a01b03166384b0196e6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610b29573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b50919081019061159d565b506040805186516020978801208183015285519590960194909420606086015260808501929092526001600160a01b031660a084015260c083015260e08201905296505050505050505b6040516002840385013560f01c8060420180860387016119015f52604081602037821582881017896042601e20181715610c05575f94507f983e65e5148e570cd828ead231ee759a8d7958721a768f93bc4483ba005c32de8552886020526040852098505050610d5e565b7f5479706564446174615369676e280000000000000000000000000000000000008452600e84018360408301823760288185019081525f1901515f1a602914610c7e575f6001858301035b6001820191506029828203515f1a1486831011610c5057508085039450808560408501018337602881830153505b6f07fffffe00000000000001000000000081515f1a1c5b602882515f1a14610cbb57806512010000000183515f1a1c179050600182019150610c95565b7f20636f6e74656e74732c737472696e67206e616d652c737472696e670000000082527f2076657273696f6e2c75696e7432353620636861696e49642c61646472657373601c8301527f20766572696679696e67436f6e74726163742c627974657333322073616c7429603c830152605c820191508460408401833760408388379084018590038520865260e08620604052600116604201601e20985050909403935b5060405280610d7457610d713386610f3b565b94505b610d7f858585610f17565b95945050505050565b5f3a61068c573a3a526d378edcd5b5b0a24f5342d8c1048560203a3a388461fffffa503a51610de757604051631626ba7e3a528160205260408052454561ffff0117805a108388141715610dd857fe5b3a3a6064601c3085fa50506040525b50610689848484610f17565b5f8181526020839052604081205461030e565b5f61030e8383610df3565b5f610689848484610eb5565b5f604051825160408114610e395760418114610e735750610eae565b604084015160ff81901c601b016020527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16606052610e86565b60608401515f1a60205260408401516060525b50835f5260208301516040526020604060805f60015afa505f6060523d606018519150806040525b5092915050565b5f610689848484611026565b6109a18484848461103d565b6103238282611055565b5f6dd9ecebf3c23529de49815dac1c4c6001600160a01b0383161480610f0557506001600160a01b03821633145b8061031157506103116001338461065d565b335f90815260208190526040812054610689906001600160a01b0316858585610719565b5f5f5f5f5f866001600160a01b03166384b0196e6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610f7b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610fa2919081019061159d565b50509450945094509450506040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815284516020860120602082015283516020850120604082015282606082015281608082015260a081209550506719010000000000005f5284601a5285603a52604260182094505f603a525050505092915050565b5f8281526020849052604081206106899083611091565b5f8381526020859052604090206109a19083836110b7565b5f818152602083905260408120805490918190036110735750505050565b61108882611082600184611431565b5f6110b7565b5f190190555050565b5f825482106110ab57638277484f5f52816020526024601cfd5b50600101602002015490565b825482106110d057638277484f5f52816020526024601cfd5b8060018301602002840155505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611129575f5ffd5b50565b5f5f6040838503121561113d575f5ffd5b823561114881611115565b9150602083013561115881611115565b809150509250929050565b5f60208284031215611173575f5ffd5b813561068c81611115565b5f5f83601f84011261118e575f5ffd5b50813567ffffffffffffffff8111156111a5575f5ffd5b6020830191508360208285010111156107e5575f5ffd5b5f5f602083850312156111cd575f5ffd5b823567ffffffffffffffff8111156111e3575f5ffd5b6111ef8582860161117e565b90969095509350505050565b5f5f5f5f5f6060868803121561120f575f5ffd5b85359450602086013567ffffffffffffffff81111561122c575f5ffd5b6112388882890161117e565b909550935050604086013567ffffffffffffffff811115611257575f5ffd5b6112638882890161117e565b969995985093965092949392505050565b5f5f60408385031215611285575f5ffd5b823567ffffffffffffffff81111561129b575f5ffd5b830161012081860312156112ad575f5ffd5b946020939093013593505050565b5f602082840312156112cb575f5ffd5b5035919050565b5f5f5f5f606085870312156112e5575f5ffd5b84356112f081611115565b935060208501359250604085013567ffffffffffffffff811115611312575f5ffd5b61131e8782880161117e565b95989497509550505050565b5f5f85851115611338575f5ffd5b83861115611344575f5ffd5b5050820193919092039150565b80356bffffffffffffffffffffffff198116906014841015610eae576bffffffffffffffffffffffff1960149490940360031b84901b1690921692915050565b5f5f8335601e198436030181126113a6575f5ffd5b83018035915067ffffffffffffffff8211156113c0575f5ffd5b6020019150368190038213156107e5575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b5f8261140257634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610311576103116113d4565b80820180821115610311576103116113d4565b81810381811115610311576103116113d4565b5f60018201611455576114556113d4565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156114995761149961145c565b604052919050565b5f82601f8301126114b0575f5ffd5b815167ffffffffffffffff8111156114ca576114ca61145c565b6114dd601f8201601f1916602001611470565b8181528460208386010111156114f1575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b805161151881611115565b919050565b5f82601f83011261152c575f5ffd5b815167ffffffffffffffff8111156115465761154661145c565b8060051b61155660208201611470565b91825260208185018101929081019086841115611571575f5ffd5b6020860192505b83831015611593578251825260209283019290910190611578565b9695505050505050565b5f5f5f5f5f5f5f60e0888a0312156115b3575f5ffd5b87517fff00000000000000000000000000000000000000000000000000000000000000811681146115e2575f5ffd5b602089015190975067ffffffffffffffff8111156115fe575f5ffd5b61160a8a828b016114a1565b965050604088015167ffffffffffffffff811115611626575f5ffd5b6116328a828b016114a1565b60608a0151909650945061164a90506080890161150d565b60a089015160c08a0151919450925067ffffffffffffffff81111561166d575f5ffd5b6116798a828b0161151d565b9150509295989194975092955056fea164736f6c634300081b000a

    Deployed Bytecode

    0x608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c8063940d384011610093578063e824b56811610063578063e824b56814610283578063ecd0596114610296578063f2fde38b146102aa578063f551e2ee146102bd575f5ffd5b8063940d3840146102165780639700320314610229578063d60b347f1461024a578063d620c85a1461025d575f5ffd5b806354fd4d50116100ce57806354fd4d50146101a25780635c81ca68146101db5780636d61fe70146101f05780638a91b0e314610203575f5ffd5b806306fdde03146100f45780630807dbc11461013f5780632e5b63a614610162575b5f5ffd5b60408051808201909152600b81527f4b3156616c696461746f7200000000000000000000000000000000000000000060208201525b60405161013691906110e0565b60405180910390f35b61015261014d36600461112c565b610301565b6040519015158152602001610136565b61018a610170366004611163565b5f602081905290815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610136565b60408051808201909152600581527f312e302e310000000000000000000000000000000000000000000000000000006020820152610129565b6101ee6101e9366004611163565b610317565b005b6101ee6101fe3660046111bc565b610327565b6101ee6102113660046111bc565b61047a565b6101526102243660046111fb565b6104af565b61023c610237366004611274565b61051d565b604051908152602001610136565b610152610258366004611163565b610573565b7fd620c85a0000000000000000000000000000000000000000000000000000000061023c565b6101ee610291366004611163565b610596565b6101526102a43660046112bb565b60011490565b6101ee6102b8366004611163565b6105a2565b6102d06102cb3660046112d2565b61063d565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610136565b5f61030e6001838561065d565b90505b92915050565b61032360013383610693565b5050565b5f819003610361576040517f1f2a381c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f908152602081905260409020546001600160a01b0316156103b0576040517fe72ce85e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6103be601482848661132a565b6103c791611351565b60601c905080610403576040517fc81abf6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803b15610423576040516383e6a1cb60e01b815260040160405180910390fd5b335f908152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316179055601482111561047557610475610470836014818761132a565b6106a8565b505050565b335f818152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191690556103239060019061070f565b5f601482146104ea576040517fdfe9309000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6104f8601482858761132a565b61050191611351565b60601c905061051281888888610719565b979650505050505050565b5f61056081806105306020870187611163565b6001600160a01b03908116825260208201929092526040015f2054168361055b610100870187611391565b610719565b61056b57600161030e565b505f92915050565b6001600160a01b038082165f908152602081905260408120549091161515610311565b610323600133836107a7565b6001600160a01b0381166105e2576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803b15610602576040516383e6a1cb60e01b815260040160405180910390fd5b335f908152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b5f610652858561064d86866107bc565b6107ec565b90505b949350505050565b6001600160a01b038181165f908152600185016020908152604080832093861683529290529081205415155b90505b9392505050565b5f61068984846001600160a01b0385166108ce565b5f5b6106b56014836113e8565b811015610475576107063384846106cd856014611407565b906106d986600161141e565b6106e4906014611407565b926106f19392919061132a565b6106fa91611351565b6001919060601c610693565b506001016106aa565b6103238282610953565b5f846001600160a01b031661072f8585856109a7565b6001600160a01b03160361074557506001610655565b846001600160a01b0316610787610780866020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c60042090565b85856109a7565b6001600160a01b03160361079d57506001610655565b505f949350505050565b5f61068984846001600160a01b0385166109e9565b818161649261ffff30801c190402818301601f190135036107e557506040810135016020810190355b9250929050565b5f816108295761773961ffff83190402840361082957507f7739000100000000000000000000000000000000000000000000000000000000610655565b60208301357f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0811115610888576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61089587878787610ac7565b806108a657506108a6868686610ae1565b806108b757506108b7868686610d88565b155f03631626ba7e1760e01b979650505050505050565b5f81815260018401602090815260408083206001600160a01b038616845290915281205461094c575f83815260208581526040909120805460010191820281018490555561091c8484610df3565b5f8381526001808701602090815260408084206001600160a01b038916855290915290912091909155905061068c565b505f61068c565b5f61095e8383610e06565b905060015b8181116109a1575f61097f858561097a8587611431565b610e11565b905061098c8585836109e9565b5050808061099990611444565b915050610963565b50505050565b5f61068983838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508893925050610e1d9050565b5f81815260018401602090815260408083206001600160a01b03861684529091528120548015610abe575f610a1f600183611431565b90505f6001610a2e8888610df3565b610a389190611431565b9050808214610a82575f610a4d888884610eb5565b9050610a5b88888584610ec1565b5f90815260018801602090815260408083206001600160a01b038a16845290915290208390555b610a8c8787610ecd565b5050505f8281526001808601602090815260408084206001600160a01b0388168552909152822091909155905061068c565b5f91505061068c565b5f610ad185610ed7565b1561065557610652848484610f17565b5f308015610b9a575f5f5f5f5f336001600160a01b03166384b0196e6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610b29573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b50919081019061159d565b506040805186516020978801208183015285519590960194909420606086015260808501929092526001600160a01b031660a084015260c083015260e08201905296505050505050505b6040516002840385013560f01c8060420180860387016119015f52604081602037821582881017896042601e20181715610c05575f94507f983e65e5148e570cd828ead231ee759a8d7958721a768f93bc4483ba005c32de8552886020526040852098505050610d5e565b7f5479706564446174615369676e280000000000000000000000000000000000008452600e84018360408301823760288185019081525f1901515f1a602914610c7e575f6001858301035b6001820191506029828203515f1a1486831011610c5057508085039450808560408501018337602881830153505b6f07fffffe00000000000001000000000081515f1a1c5b602882515f1a14610cbb57806512010000000183515f1a1c179050600182019150610c95565b7f20636f6e74656e74732c737472696e67206e616d652c737472696e670000000082527f2076657273696f6e2c75696e7432353620636861696e49642c61646472657373601c8301527f20766572696679696e67436f6e74726163742c627974657333322073616c7429603c830152605c820191508460408401833760408388379084018590038520865260e08620604052600116604201601e20985050909403935b5060405280610d7457610d713386610f3b565b94505b610d7f858585610f17565b95945050505050565b5f3a61068c573a3a526d378edcd5b5b0a24f5342d8c1048560203a3a388461fffffa503a51610de757604051631626ba7e3a528160205260408052454561ffff0117805a108388141715610dd857fe5b3a3a6064601c3085fa50506040525b50610689848484610f17565b5f8181526020839052604081205461030e565b5f61030e8383610df3565b5f610689848484610eb5565b5f604051825160408114610e395760418114610e735750610eae565b604084015160ff81901c601b016020527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16606052610e86565b60608401515f1a60205260408401516060525b50835f5260208301516040526020604060805f60015afa505f6060523d606018519150806040525b5092915050565b5f610689848484611026565b6109a18484848461103d565b6103238282611055565b5f6dd9ecebf3c23529de49815dac1c4c6001600160a01b0383161480610f0557506001600160a01b03821633145b8061031157506103116001338461065d565b335f90815260208190526040812054610689906001600160a01b0316858585610719565b5f5f5f5f5f866001600160a01b03166384b0196e6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610f7b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610fa2919081019061159d565b50509450945094509450506040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815284516020860120602082015283516020850120604082015282606082015281608082015260a081209550506719010000000000005f5284601a5285603a52604260182094505f603a525050505092915050565b5f8281526020849052604081206106899083611091565b5f8381526020859052604090206109a19083836110b7565b5f818152602083905260408120805490918190036110735750505050565b61108882611082600184611431565b5f6110b7565b5f190190555050565b5f825482106110ab57638277484f5f52816020526024601cfd5b50600101602002015490565b825482106110d057638277484f5f52816020526024601cfd5b8060018301602002840155505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611129575f5ffd5b50565b5f5f6040838503121561113d575f5ffd5b823561114881611115565b9150602083013561115881611115565b809150509250929050565b5f60208284031215611173575f5ffd5b813561068c81611115565b5f5f83601f84011261118e575f5ffd5b50813567ffffffffffffffff8111156111a5575f5ffd5b6020830191508360208285010111156107e5575f5ffd5b5f5f602083850312156111cd575f5ffd5b823567ffffffffffffffff8111156111e3575f5ffd5b6111ef8582860161117e565b90969095509350505050565b5f5f5f5f5f6060868803121561120f575f5ffd5b85359450602086013567ffffffffffffffff81111561122c575f5ffd5b6112388882890161117e565b909550935050604086013567ffffffffffffffff811115611257575f5ffd5b6112638882890161117e565b969995985093965092949392505050565b5f5f60408385031215611285575f5ffd5b823567ffffffffffffffff81111561129b575f5ffd5b830161012081860312156112ad575f5ffd5b946020939093013593505050565b5f602082840312156112cb575f5ffd5b5035919050565b5f5f5f5f606085870312156112e5575f5ffd5b84356112f081611115565b935060208501359250604085013567ffffffffffffffff811115611312575f5ffd5b61131e8782880161117e565b95989497509550505050565b5f5f85851115611338575f5ffd5b83861115611344575f5ffd5b5050820193919092039150565b80356bffffffffffffffffffffffff198116906014841015610eae576bffffffffffffffffffffffff1960149490940360031b84901b1690921692915050565b5f5f8335601e198436030181126113a6575f5ffd5b83018035915067ffffffffffffffff8211156113c0575f5ffd5b6020019150368190038213156107e5575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b5f8261140257634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610311576103116113d4565b80820180821115610311576103116113d4565b81810381811115610311576103116113d4565b5f60018201611455576114556113d4565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156114995761149961145c565b604052919050565b5f82601f8301126114b0575f5ffd5b815167ffffffffffffffff8111156114ca576114ca61145c565b6114dd601f8201601f1916602001611470565b8181528460208386010111156114f1575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b805161151881611115565b919050565b5f82601f83011261152c575f5ffd5b815167ffffffffffffffff8111156115465761154661145c565b8060051b61155660208201611470565b91825260208185018101929081019086841115611571575f5ffd5b6020860192505b83831015611593578251825260209283019290910190611578565b9695505050505050565b5f5f5f5f5f5f5f60e0888a0312156115b3575f5ffd5b87517fff00000000000000000000000000000000000000000000000000000000000000811681146115e2575f5ffd5b602089015190975067ffffffffffffffff8111156115fe575f5ffd5b61160a8a828b016114a1565b965050604088015167ffffffffffffffff811115611626575f5ffd5b6116328a828b016114a1565b60608a0151909650945061164a90506080890161150d565b60a089015160c08a0151919450925067ffffffffffffffff81111561166d575f5ffd5b6116798a828b0161151d565b9150509295989194975092955056fea164736f6c634300081b000a

    Block Age Transaction Gas Used Reward
    view all blocks ##produced##

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

    Validator Index Block Age Amount
    View All Withdrawals

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