ETH Price: $4,742.16 (+2.20%)

Contract

0x07FF84712c9D3F8465349E685A15cA8d91bc85df

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Add To Whitelist22154672025-06-03 13:44:38125 days ago1748958278IN
0x07FF8471...d91bc85df
0 ETH00.00000025
Add To Whitelist21916512025-06-03 7:07:42126 days ago1748934462IN
0x07FF8471...d91bc85df
0 ETH00.00000025
Add To Whitelist21916512025-06-03 7:07:42126 days ago1748934462IN
0x07FF8471...d91bc85df
0 ETH00.00000025
Add To Whitelist21916512025-06-03 7:07:42126 days ago1748934462IN
0x07FF8471...d91bc85df
0 ETH00.00000025
Add To Whitelist21916512025-06-03 7:07:42126 days ago1748934462IN
0x07FF8471...d91bc85df
0 ETH00.00000025
Add To Whitelist21916512025-06-03 7:07:42126 days ago1748934462IN
0x07FF8471...d91bc85df
0 ETH00.00000025
Add To Whitelist21916502025-06-03 7:07:41126 days ago1748934461IN
0x07FF8471...d91bc85df
0 ETH00.00000025
Add To Whitelist21196062025-06-02 11:06:57127 days ago1748862417IN
0x07FF8471...d91bc85df
0 ETH00.00000025
Add To Whitelist18730992025-05-30 14:38:30129 days ago1748615910IN
0x07FF8471...d91bc85df
0 ETH0.000000010.00000025
Add To Whitelist18730082025-05-30 14:36:59129 days ago1748615819IN
0x07FF8471...d91bc85df
0 ETH0.000000010.00000025
Add To Whitelist18730082025-05-30 14:36:59129 days ago1748615819IN
0x07FF8471...d91bc85df
0 ETH0.000000010.00000025

Latest 20 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
22155372025-06-03 13:45:48125 days ago1748958348
0x07FF8471...d91bc85df
0 ETH
22152162025-06-03 13:40:27125 days ago1748958027
0x07FF8471...d91bc85df
0 ETH
22152162025-06-03 13:40:27125 days ago1748958027
0x07FF8471...d91bc85df
0 ETH
22152162025-06-03 13:40:27125 days ago1748958027
0x07FF8471...d91bc85df
0 ETH
22101562025-06-03 12:16:07126 days ago1748952967
0x07FF8471...d91bc85df
0 ETH
22101562025-06-03 12:16:07126 days ago1748952967
0x07FF8471...d91bc85df
0 ETH
22101562025-06-03 12:16:07126 days ago1748952967
0x07FF8471...d91bc85df
0 ETH
22096452025-06-03 12:07:36126 days ago1748952456
0x07FF8471...d91bc85df
0 ETH
22076802025-06-03 11:34:51126 days ago1748950491
0x07FF8471...d91bc85df
0 ETH
22033712025-06-03 10:23:02126 days ago1748946182
0x07FF8471...d91bc85df
0 ETH
22033712025-06-03 10:23:02126 days ago1748946182
0x07FF8471...d91bc85df
0 ETH
22033712025-06-03 10:23:02126 days ago1748946182
0x07FF8471...d91bc85df
0 ETH
22033242025-06-03 10:22:15126 days ago1748946135
0x07FF8471...d91bc85df
0 ETH
22033242025-06-03 10:22:15126 days ago1748946135
0x07FF8471...d91bc85df
0 ETH
22033242025-06-03 10:22:15126 days ago1748946135
0x07FF8471...d91bc85df
0 ETH
21196502025-06-02 11:07:41127 days ago1748862461
0x07FF8471...d91bc85df
0 ETH
21155982025-06-02 10:00:09127 days ago1748858409
0x07FF8471...d91bc85df
0 ETH
21087472025-06-02 8:05:58127 days ago1748851558
0x07FF8471...d91bc85df
0 ETH
21087472025-06-02 8:05:58127 days ago1748851558
0x07FF8471...d91bc85df
0 ETH
21087472025-06-02 8:05:58127 days ago1748851558
0x07FF8471...d91bc85df
0 ETH

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Whitelist

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 1 runs

Other Settings:
cancun EvmVersion
// SPDX-License-Identifier: GPL-3.0
// Docgen-SOLC: 0.8.25

pragma solidity ^0.8.24;

import {Owned} from "./Owned.sol";
import {IWhitelist} from "../Interfaces/IWhitelist.sol";

contract Whitelist is IWhitelist, Owned {
    // calling contract -> user -> whitelisted
    mapping(address => mapping(address => bool)) whitelist;

    event Whitelisted(address callingContract, address user);
    event WhitelistRemoved(address callingContract, address user);

    constructor(address owner) Owned(owner) {}

    function addToWhitelist(address callingContract, address user) external override onlyOwner {
        whitelist[callingContract][user] = true;

        emit Whitelisted(callingContract, user);
    }

    function removeFromWhitelist(address callingContract, address user) external override onlyOwner {
        whitelist[callingContract][user] = false;

        emit WhitelistRemoved(callingContract, user);
    }

    function isWhitelisted(address callingContract, address user) external view override returns (bool) {
        return whitelist[callingContract][user];
    }
}

// SPDX-License-Identifier: GPL-3.0
// Docgen-SOLC: 0.8.25

pragma solidity 0.8.24;

import "../Interfaces/IOwned.sol";

// https://docs.synthetix.io/contracts/source/contracts/owned
contract Owned is IOwned {
    address public override owner;
    address public override nominatedOwner;

    event OwnerNominated(address newOwner);
    event OwnerChanged(address oldOwner, address newOwner);

    constructor(address _owner) {
        require(_owner != address(0), "Owned/owner-zero");
        owner = _owner;

        emit OwnerChanged(address(0), _owner);
    }

    function nominateNewOwner(address _owner) external virtual override onlyOwner {
        nominatedOwner = _owner;

        emit OwnerNominated(_owner);
    }

    function acceptOwnership() external virtual override {
        require(msg.sender == nominatedOwner, "Owned/not-nominated");

        emit OwnerChanged(owner, nominatedOwner);

        owner = nominatedOwner;
        nominatedOwner = address(0);
    }

    modifier onlyOwner() {
        _onlyOwner();
        _;
    }

    function _onlyOwner() private view {
        require(msg.sender == owner, "Owned/not-owner");
    }
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IOwned {
    function owner() external view returns (address);

    function nominatedOwner() external view returns (address);

    function nominateNewOwner(address owner) external;

    function acceptOwnership() external;
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IWhitelist {
    function addToWhitelist(address callingContract, address user) external;
    function removeFromWhitelist(address callingContract, address user) external;
    function isWhitelisted(address callingContract, address user) external view returns (bool);
}

Settings
{
  "evmVersion": "cancun",
  "libraries": {},
  "metadata": {
    "appendCBOR": true,
    "bytecodeHash": "ipfs",
    "useLiteralContent": false
  },
  "optimizer": {
    "enabled": true,
    "runs": 1
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": [
    "openzeppelin/=lib/V2-gov/lib/openzeppelin-contracts/",
    "@chimera/=lib/V2-gov/lib/chimera/src/",
    "@openzeppelin/contracts/=lib/V2-gov/lib/openzeppelin-contracts/contracts/",
    "Solady/=lib/Solady/src/",
    "V2-gov/=lib/V2-gov/",
    "chimera/=lib/V2-gov/lib/chimera/src/",
    "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "v4-core/=lib/V2-gov/lib/v4-core/"
  ],
  "viaIR": false
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"callingContract","type":"address"},{"indexed":false,"internalType":"address","name":"user","type":"address"}],"name":"WhitelistRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"callingContract","type":"address"},{"indexed":false,"internalType":"address","name":"user","type":"address"}],"name":"Whitelisted","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callingContract","type":"address"},{"internalType":"address","name":"user","type":"address"}],"name":"addToWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"callingContract","type":"address"},{"internalType":"address","name":"user","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"callingContract","type":"address"},{"internalType":"address","name":"user","type":"address"}],"name":"removeFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561000f575f80fd5b5060405161056638038061056683398101604081905261002e916100d9565b806001600160a01b03811661007c5760405162461bcd60e51b815260206004820152601060248201526f4f776e65642f6f776e65722d7a65726f60801b604482015260640160405180910390fd5b5f80546001600160a01b0319166001600160a01b03831690811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a15050610106565b5f602082840312156100e9575f80fd5b81516001600160a01b03811681146100ff575f80fd5b9392505050565b610453806101135f395ff3fe608060405234801561000f575f80fd5b506004361061006b575f3560e01c80631627540c1461006f57806353a47bb71461008457806357518243146100ad57806379ba5097146100c05780638da5cb5b146100c8578063b6b35272146100da578063f8d3277d14610125575b5f80fd5b61008261007d36600461039e565b610138565b005b600154610097906001600160a01b031681565b6040516100a491906103be565b60405180910390f35b6100826100bb3660046103d2565b610196565b61008261020b565b5f54610097906001600160a01b031681565b6101156100e83660046103d2565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205460ff1690565b60405190151581526020016100a4565b6100826101333660046103d2565b6102d0565b610140610336565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061018b9083906103be565b60405180910390a150565b61019e610336565b6001600160a01b038083165f9081526002602090815260408083209385168352929052819020805460ff19166001179055517f6661a7108aecd07864384529117d96c319c1163e3010c01390f6b704726e07de906101ff9084908490610403565b60405180910390a15050565b6001546001600160a01b031633146102605760405162461bcd60e51b815260206004820152601360248201527213dddb99590bdb9bdd0b5b9bdb5a5b985d1959606a1b60448201526064015b60405180910390fd5b5f546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926102a2926001600160a01b0391821692911690610403565b60405180910390a1600180545f80546001600160a01b03199081166001600160a01b03841617909155169055565b6102d8610336565b6001600160a01b038083165f9081526002602090815260408083209385168352929052819020805460ff19169055517fe0fcf303ba3014f7bddb92283585b57ae29a68f05ceb43d0a0c1b92ad80c613c906101ff9084908490610403565b5f546001600160a01b031633146103815760405162461bcd60e51b815260206004820152600f60248201526e27bbb732b217b737ba16b7bbb732b960891b6044820152606401610257565b565b80356001600160a01b0381168114610399575f80fd5b919050565b5f602082840312156103ae575f80fd5b6103b782610383565b9392505050565b6001600160a01b0391909116815260200190565b5f80604083850312156103e3575f80fd5b6103ec83610383565b91506103fa60208401610383565b90509250929050565b6001600160a01b039283168152911660208201526040019056fea2646970667358221220d435861b40525c5f81abaa21a04df31f5da579ddd54ec987d488c7bae10ede4d64736f6c63430008180033000000000000000000000000919d5a6f2cbc0731380c26b4ac4f6183dd3a40c8

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061006b575f3560e01c80631627540c1461006f57806353a47bb71461008457806357518243146100ad57806379ba5097146100c05780638da5cb5b146100c8578063b6b35272146100da578063f8d3277d14610125575b5f80fd5b61008261007d36600461039e565b610138565b005b600154610097906001600160a01b031681565b6040516100a491906103be565b60405180910390f35b6100826100bb3660046103d2565b610196565b61008261020b565b5f54610097906001600160a01b031681565b6101156100e83660046103d2565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205460ff1690565b60405190151581526020016100a4565b6100826101333660046103d2565b6102d0565b610140610336565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061018b9083906103be565b60405180910390a150565b61019e610336565b6001600160a01b038083165f9081526002602090815260408083209385168352929052819020805460ff19166001179055517f6661a7108aecd07864384529117d96c319c1163e3010c01390f6b704726e07de906101ff9084908490610403565b60405180910390a15050565b6001546001600160a01b031633146102605760405162461bcd60e51b815260206004820152601360248201527213dddb99590bdb9bdd0b5b9bdb5a5b985d1959606a1b60448201526064015b60405180910390fd5b5f546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926102a2926001600160a01b0391821692911690610403565b60405180910390a1600180545f80546001600160a01b03199081166001600160a01b03841617909155169055565b6102d8610336565b6001600160a01b038083165f9081526002602090815260408083209385168352929052819020805460ff19169055517fe0fcf303ba3014f7bddb92283585b57ae29a68f05ceb43d0a0c1b92ad80c613c906101ff9084908490610403565b5f546001600160a01b031633146103815760405162461bcd60e51b815260206004820152600f60248201526e27bbb732b217b737ba16b7bbb732b960891b6044820152606401610257565b565b80356001600160a01b0381168114610399575f80fd5b919050565b5f602082840312156103ae575f80fd5b6103b782610383565b9392505050565b6001600160a01b0391909116815260200190565b5f80604083850312156103e3575f80fd5b6103ec83610383565b91506103fa60208401610383565b90509250929050565b6001600160a01b039283168152911660208201526040019056fea2646970667358221220d435861b40525c5f81abaa21a04df31f5da579ddd54ec987d488c7bae10ede4d64736f6c63430008180033

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

000000000000000000000000919d5a6f2cbc0731380c26b4ac4f6183dd3a40c8

-----Decoded View---------------
Arg [0] : owner (address): 0x919D5a6F2CBc0731380C26B4AC4f6183dD3A40C8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000919d5a6f2cbc0731380c26b4ac4f6183dd3a40c8


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
0x07FF84712c9D3F8465349E685A15cA8d91bc85df
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.