Request form
ERC4337
  • ERC4337
  • Audited
  • Docs
    Source
    ChefGPT

    ERC4337

    This smart contract is an implementation of the ERC4337 standard. It allows users to execute calls and delegate calls, validate signatures and nonces, and perform direct storage operations. It also includes an initializer function and an entry point function.

    addDeposit() :
    Deposit more funds for this account in the EntryPoint.
    cancelOwnershipHandover() :
    Cancels the two-step ownership handover to the caller, if any.
    completeOwnershipHandover(address) :
    Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.
    delegateExecute(address,bytes) :
    Execute a delegatecall with `delegate` on this account.
    eip712Domain() :
    See: https://eips.ethereum.org/EIPS/eip-5267
    entryPoint() :
    Returns the canonical ERC4337 EntryPoint contract. Override this function to return a different EntryPoint.
    execute(address,uint256,bytes) :
    Execute a call from this account.
    executeBatch((address,uint256,bytes)[]) :
    Execute a sequence of calls from this account.
    getDeposit() :
    Returns the account's balance on the EntryPoint.
    initialize(address) :
    Initializes the account with the owner. Can only be called once.
    isValidSignature(bytes32,bytes) :
    Validates the signature with ERC1271 return, so that this account can also be used as a signer.
    owner() :
    Returns the owner of the contract.
    ownershipHandoverExpiresAt(address) :
    Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.
    proxiableUUID() :
    Returns the storage slot used by the implementation, as specified in [ERC1822](https://eips.ethereum.org/EIPS/eip-1822). Note: The `notDelegated` modifier prevents accidental upgrades to an implementation that is a proxy contract.
    renounceOwnership() :
    Allows the owner to renounce their ownership.
    requestOwnershipHandover() :
    Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.
    storageLoad(bytes32) :
    Returns the raw storage value at `storageSlot`.
    storageStore(bytes32,bytes32) :
    Writes the raw storage value at `storageSlot`.
    transferOwnership(address) :
    Allows the owner to transfer the ownership to `newOwner`.
    upgradeTo(address) :
    Upgrades the proxy's implementation to `newImplementation`. Emits a {Upgraded} event. Note: The `onlyProxy` modifier prevents accidental calling on the implementation.
    upgradeToAndCall(address,bytes) :
    Upgrades the proxy's implementation to `newImplementation`. Emits a {Upgraded} event. Note: This function calls `upgradeTo` internally, followed by a delegatecall to `newImplementation`.
    validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256) :
    Validates the signature and nonce. The EntryPoint will make the call to the recipient only if this validation call returns successfully. Signature failure should be reported by returning 1 (see: `_validateSignature`). This allows making a "simulation call" without a valid signature. Other failures (e.g. nonce mismatch, or invalid signature format) should still revert to signal failure.
    withdrawDepositTo(address,uint256) :
    Withdraw ETH from the account's deposit on the EntryPoint.
    ERC4337.sol
    Receiver.sol
    EIP712.sol
    LibZip.sol
    Ownable.sol
    UUPSUpgradeable.sol
    SignatureCheckerLib.sol
    ABI:

    2 downloads

    Solidity Version

    0.8.15

    Creator

    Solady
    Solady / ERC4337
  • ERC4337
  • Audited
  • Source
    ChefGPT
    Expand
    Share

    ERC4337

    This smart contract is an implementation of the ERC4337 standard. It allows users to execute calls and delegate calls, validate signatures and nonces, and perform direct storage operations. It also includes an initializer function and an entry point function.

    addDeposit() :
    Deposit more funds for this account in the EntryPoint.
    cancelOwnershipHandover() :
    Cancels the two-step ownership handover to the caller, if any.
    completeOwnershipHandover(address) :
    Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.
    delegateExecute(address,bytes) :
    Execute a delegatecall with `delegate` on this account.
    eip712Domain() :
    See: https://eips.ethereum.org/EIPS/eip-5267
    entryPoint() :
    Returns the canonical ERC4337 EntryPoint contract. Override this function to return a different EntryPoint.
    execute(address,uint256,bytes) :
    Execute a call from this account.
    executeBatch((address,uint256,bytes)[]) :
    Execute a sequence of calls from this account.
    getDeposit() :
    Returns the account's balance on the EntryPoint.
    initialize(address) :
    Initializes the account with the owner. Can only be called once.
    isValidSignature(bytes32,bytes) :
    Validates the signature with ERC1271 return, so that this account can also be used as a signer.
    owner() :
    Returns the owner of the contract.
    ownershipHandoverExpiresAt(address) :
    Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.
    proxiableUUID() :
    Returns the storage slot used by the implementation, as specified in [ERC1822](https://eips.ethereum.org/EIPS/eip-1822). Note: The `notDelegated` modifier prevents accidental upgrades to an implementation that is a proxy contract.
    renounceOwnership() :
    Allows the owner to renounce their ownership.
    requestOwnershipHandover() :
    Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.
    storageLoad(bytes32) :
    Returns the raw storage value at `storageSlot`.
    storageStore(bytes32,bytes32) :
    Writes the raw storage value at `storageSlot`.
    transferOwnership(address) :
    Allows the owner to transfer the ownership to `newOwner`.
    upgradeTo(address) :
    Upgrades the proxy's implementation to `newImplementation`. Emits a {Upgraded} event. Note: The `onlyProxy` modifier prevents accidental calling on the implementation.
    upgradeToAndCall(address,bytes) :
    Upgrades the proxy's implementation to `newImplementation`. Emits a {Upgraded} event. Note: This function calls `upgradeTo` internally, followed by a delegatecall to `newImplementation`.
    validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256) :
    Validates the signature and nonce. The EntryPoint will make the call to the recipient only if this validation call returns successfully. Signature failure should be reported by returning 1 (see: `_validateSignature`). This allows making a "simulation call" without a valid signature. Other failures (e.g. nonce mismatch, or invalid signature format) should still revert to signal failure.
    withdrawDepositTo(address,uint256) :
    Withdraw ETH from the account's deposit on the EntryPoint.
    ERC4337.sol
    Receiver.sol
    EIP712.sol
    LibZip.sol
    Ownable.sol
    UUPSUpgradeable.sol
    SignatureCheckerLib.sol
    ABI:

    Get Cookin'
    star icon2

    2 downloads

    Solidity Version

    0.8.15

    Creator

    Solady