ETH Price: $1,976.36 (+0.72%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Enable Address147496212022-05-10 16:32:011383 days ago1652200321IN
Fractal Protocol: Crosschain Whitelist
0 ETH0.0027095757.13756548
Transfer Ownersh...147496162022-05-10 16:30:581383 days ago1652200258IN
Fractal Protocol: Crosschain Whitelist
0 ETH0.0014584951.19845614
Enable Address146743302022-04-28 18:07:131395 days ago1651169233IN
Fractal Protocol: Crosschain Whitelist
0 ETH0.003765179.39573669
Enable Address146743252022-04-28 18:05:451395 days ago1651169145IN
Fractal Protocol: Crosschain Whitelist
0 ETH0.0040467285.35589493
Enable Address145712792022-04-12 14:31:551411 days ago1649773915IN
Fractal Protocol: Crosschain Whitelist
0 ETH0.0031871367.20788377

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

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

Contract Name:
AddressWhitelist

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-11
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.3;

/**
 * @title Represents an ownable resource.
 */
contract Ownable {
    address internal _owner;

    event OwnershipTransferred(address previousOwner, address newOwner);

    /**
     * Constructor
     * @param addr The owner of the smart contract
     */
    constructor (address addr) {
        require(addr != address(0), "non-zero address required");
        require(addr != address(1), "ecrecover address not allowed");
        _owner = addr;
        emit OwnershipTransferred(address(0), addr);
    }

    /**
     * @notice This modifier indicates that the function can only be called by the owner.
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "Only owner requirement");
        _;
    }

    /**
     * @notice Transfers ownership to the address specified.
     * @param addr Specifies the address of the new owner.
     * @dev Throws if called by any account other than the owner.
     */
    function transferOwnership (address addr) public onlyOwner {
        require(addr != address(0), "non-zero address required");
        emit OwnershipTransferred(_owner, addr);
        _owner = addr;
    }

    /**
     * @notice Destroys the smart contract.
     * @param addr The payable address of the recipient.
     */
    function destroy(address payable addr) public virtual onlyOwner {
        require(addr != address(0), "non-zero address required");
        require(addr != address(1), "ecrecover address not allowed");
        selfdestruct(addr);
    }

    /**
     * @notice Gets the address of the owner.
     * @return the address of the owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @notice Indicates if the address specified is the owner of the resource.
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner(address addr) public view returns (bool) {
        return addr == _owner;
    }
}

/**
 * @notice Defines the interface for whitelisting addresses.
 */
interface IAddressWhitelist {
    /**
     * @notice Whitelists the address specified.
     * @param addr The address to enable
     */
    function enableAddress (address addr) external;

    /**
     * @notice Disables the address specified.
     * @param addr The address to disable
     */
    function disableAddress (address addr) external;

    /**
     * @notice Indicates if the address is whitelisted or not.
     * @param addr The address to disable
     * @return Returns 1 if the address is whitelisted
     */
    function isWhitelistedAddress (address addr) external view returns (bool);

    /**
     * This event is triggered when a new address is whitelisted.
     * @param addr The address that was whitelisted
     */
    event OnAddressEnabled(address addr);

    /**
     * This event is triggered when an address is disabled.
     * @param addr The address that was disabled
     */
    event OnAddressDisabled(address addr);
}


/**
 * @title Contract for whitelisting addresses
 */
contract AddressWhitelist is IAddressWhitelist, Ownable {
    mapping (address => bool) internal whitelistedAddresses;

    /**
     * @notice Constructor.
     * @param ownerAddr The address of the owner
     */
    constructor (address ownerAddr) Ownable (ownerAddr) { // solhint-disable-line no-empty-blocks
    }

    /**
     * @notice Whitelists the address specified.
     * @param addr The address to enable
     */
    function enableAddress (address addr) public override onlyOwner {
        require(!whitelistedAddresses[addr], "Already enabled");
        whitelistedAddresses[addr] = true;
        emit OnAddressEnabled(addr);
    }

    /**
     * @notice Disables the address specified.
     * @param addr The address to disable
     */
    function disableAddress (address addr) public override onlyOwner {
        require(whitelistedAddresses[addr], "Already disabled");
        whitelistedAddresses[addr] = false;
        emit OnAddressDisabled(addr);
    }

    /**
     * @notice Indicates if the address is whitelisted or not.
     * @param addr The address to disable
     * @return Returns true if the address is whitelisted
     */
    function isWhitelistedAddress (address addr) public view override returns (bool) {
        return whitelistedAddresses[addr];
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"ownerAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"OnAddressDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"OnAddressEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address payable","name":"addr","type":"address"}],"name":"destroy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"disableAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"enableAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isWhitelistedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

0x608060405234801561001057600080fd5b506040516106f53803806106f583398101604081905261002f91610143565b806001600160a01b03811661008b5760405162461bcd60e51b815260206004820152601960248201527f6e6f6e2d7a65726f20616464726573732072657175697265640000000000000060448201526064015b60405180910390fd5b6001600160a01b038116600114156100e55760405162461bcd60e51b815260206004820152601d60248201527f65637265636f7665722061646472657373206e6f7420616c6c6f7765640000006044820152606401610082565b600080546001600160a01b0319166001600160a01b03831690811782556040805192835260208301919091527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a15050610171565b600060208284031215610154578081fd5b81516001600160a01b038116811461016a578182fd5b9392505050565b610575806101806000396000f3fe608060405234801561001057600080fd5b506004361061007c5760003560e01c80635fae05761161005b5780635fae0576146100e05780638da5cb5b1461010c5780639eefdd8714610127578063f2fde38b1461013a5761007c565b8062f55d9d146100815780632f54bf6e146100965780635036258b146100cd575b600080fd5b61009461008f3660046104d4565b61014d565b005b6100b86100a43660046104d4565b6000546001600160a01b0390811691161490565b60405190151581526020015b60405180910390f35b6100946100db3660046104d4565b610238565b6100b86100ee3660046104d4565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546040516001600160a01b0390911681526020016100c4565b6100946101353660046104d4565b610315565b6100946101483660046104d4565b6103ef565b6000546001600160a01b031633146101805760405162461bcd60e51b8152600401610177906104f7565b60405180910390fd5b6001600160a01b0381166101d25760405162461bcd60e51b81526020600482015260196024820152781b9bdb8b5e995c9bc81859191c995cdcc81c995c5d5a5c9959603a1b6044820152606401610177565b6001600160a01b0381166001141561022c5760405162461bcd60e51b815260206004820152601d60248201527f65637265636f7665722061646472657373206e6f7420616c6c6f7765640000006044820152606401610177565b806001600160a01b0316ff5b6000546001600160a01b031633146102625760405162461bcd60e51b8152600401610177906104f7565b6001600160a01b03811660009081526001602052604090205460ff166102bd5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48191a5cd8589b195960821b6044820152606401610177565b6001600160a01b038116600081815260016020908152604091829020805460ff1916905590519182527f817a22f8606c1982bfadd76a8d2f2356335b22f6731f0d5cdfdef6f033b14dc391015b60405180910390a150565b6000546001600160a01b0316331461033f5760405162461bcd60e51b8152600401610177906104f7565b6001600160a01b03811660009081526001602052604090205460ff161561039a5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b6044820152606401610177565b6001600160a01b038116600081815260016020818152604092839020805460ff191690921790915590519182527f36eb734aedf7abf48fbef350f1aa23aa2cf37b6ea7d7fc668e15dca0e9bb72af910161030a565b6000546001600160a01b031633146104195760405162461bcd60e51b8152600401610177906104f7565b6001600160a01b03811661046b5760405162461bcd60e51b81526020600482015260196024820152781b9bdb8b5e995c9bc81859191c995cdcc81c995c5d5a5c9959603a1b6044820152606401610177565b600054604080516001600160a01b03928316815291831660208301527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a1600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156104e5578081fd5b81356104f081610527565b9392505050565b60208082526016908201527513db9b1e481bdddb995c881c995c5d5a5c995b595b9d60521b604082015260600190565b6001600160a01b038116811461053c57600080fd5b5056fea26469706673582212202a40fd8e847b2d7e1a5bbd5d5744ddd430110d96e71c3f82c3e7425840ca1f7964736f6c63430008030033000000000000000000000000c692d583567cda0fde14cd3d6136c2623202ed68

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061007c5760003560e01c80635fae05761161005b5780635fae0576146100e05780638da5cb5b1461010c5780639eefdd8714610127578063f2fde38b1461013a5761007c565b8062f55d9d146100815780632f54bf6e146100965780635036258b146100cd575b600080fd5b61009461008f3660046104d4565b61014d565b005b6100b86100a43660046104d4565b6000546001600160a01b0390811691161490565b60405190151581526020015b60405180910390f35b6100946100db3660046104d4565b610238565b6100b86100ee3660046104d4565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546040516001600160a01b0390911681526020016100c4565b6100946101353660046104d4565b610315565b6100946101483660046104d4565b6103ef565b6000546001600160a01b031633146101805760405162461bcd60e51b8152600401610177906104f7565b60405180910390fd5b6001600160a01b0381166101d25760405162461bcd60e51b81526020600482015260196024820152781b9bdb8b5e995c9bc81859191c995cdcc81c995c5d5a5c9959603a1b6044820152606401610177565b6001600160a01b0381166001141561022c5760405162461bcd60e51b815260206004820152601d60248201527f65637265636f7665722061646472657373206e6f7420616c6c6f7765640000006044820152606401610177565b806001600160a01b0316ff5b6000546001600160a01b031633146102625760405162461bcd60e51b8152600401610177906104f7565b6001600160a01b03811660009081526001602052604090205460ff166102bd5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48191a5cd8589b195960821b6044820152606401610177565b6001600160a01b038116600081815260016020908152604091829020805460ff1916905590519182527f817a22f8606c1982bfadd76a8d2f2356335b22f6731f0d5cdfdef6f033b14dc391015b60405180910390a150565b6000546001600160a01b0316331461033f5760405162461bcd60e51b8152600401610177906104f7565b6001600160a01b03811660009081526001602052604090205460ff161561039a5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b6044820152606401610177565b6001600160a01b038116600081815260016020818152604092839020805460ff191690921790915590519182527f36eb734aedf7abf48fbef350f1aa23aa2cf37b6ea7d7fc668e15dca0e9bb72af910161030a565b6000546001600160a01b031633146104195760405162461bcd60e51b8152600401610177906104f7565b6001600160a01b03811661046b5760405162461bcd60e51b81526020600482015260196024820152781b9bdb8b5e995c9bc81859191c995cdcc81c995c5d5a5c9959603a1b6044820152606401610177565b600054604080516001600160a01b03928316815291831660208301527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a1600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156104e5578081fd5b81356104f081610527565b9392505050565b60208082526016908201527513db9b1e481bdddb995c881c995c5d5a5c995b595b9d60521b604082015260600190565b6001600160a01b038116811461053c57600080fd5b5056fea26469706673582212202a40fd8e847b2d7e1a5bbd5d5744ddd430110d96e71c3f82c3e7425840ca1f7964736f6c63430008030033

Deployed Bytecode Sourcemap

3255:1330:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1427:239;;;;;;:::i;:::-;;:::i;:::-;;2034:98;;;;;;:::i;:::-;2086:4;2118:6;-1:-1:-1;;;;;2118:6:0;;;2110:14;;;;2034:98;;;;1228:14:1;;1221:22;1203:41;;1191:2;1176:18;2034:98:0;;;;;;;;4034:223;;;;;;:::i;:::-;;:::i;4449:133::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4548:26:0;4524:4;4548:26;;;:20;:26;;;;;;;;;4449:133;1781:79;1819:7;1846:6;1781:79;;-1:-1:-1;;;;;1846:6:0;;;692:51:1;;680:2;665:18;1781:79:0;647:102:1;3697:220:0;;;;;;:::i;:::-;;:::i;1090:208::-;;;;;;:::i;:::-;;:::i;1427:239::-;2086:4;2118:6;-1:-1:-1;;;;;2118:6:0;817:10;2110:14;801:54;;;;-1:-1:-1;;;801:54:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1510:18:0;::::1;1502:56;;;::::0;-1:-1:-1;;;1502:56:0;;2855:2:1;1502:56:0::1;::::0;::::1;2837:21:1::0;2894:2;2874:18;;;2867:30;-1:-1:-1;;;2913:18:1;;;2906:55;2978:18;;1502:56:0::1;2827:175:1::0;1502:56:0::1;-1:-1:-1::0;;;;;1577:18:0;::::1;1593:1;1577:18;;1569:60;;;::::0;-1:-1:-1;;;1569:60:0;;1457:2:1;1569:60:0::1;::::0;::::1;1439:21:1::0;1496:2;1476:18;;;1469:30;1535:31;1515:18;;;1508:59;1584:18;;1569:60:0::1;1429:179:1::0;1569:60:0::1;1653:4;-1:-1:-1::0;;;;;1640:18:0::1;;4034:223:::0;2086:4;2118:6;-1:-1:-1;;;;;2118:6:0;817:10;2110:14;801:54;;;;-1:-1:-1;;;801:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4118:26:0;::::1;;::::0;;;:20:::1;:26;::::0;;;;;::::1;;4110:55;;;::::0;-1:-1:-1;;;4110:55:0;;1815:2:1;4110:55:0::1;::::0;::::1;1797:21:1::0;1854:2;1834:18;;;1827:30;-1:-1:-1;;;1873:18:1;;;1866:46;1929:18;;4110:55:0::1;1787:166:1::0;4110:55:0::1;-1:-1:-1::0;;;;;4176:26:0;::::1;4205:5;4176:26:::0;;;:20:::1;:26;::::0;;;;;;;;:34;;-1:-1:-1;;4176:34:0::1;::::0;;4226:23;;692:51:1;;;4226:23:0::1;::::0;665:18:1;4226:23:0::1;;;;;;;;4034:223:::0;:::o;3697:220::-;2086:4;2118:6;-1:-1:-1;;;;;2118:6:0;817:10;2110:14;801:54;;;;-1:-1:-1;;;801:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3781:26:0;::::1;;::::0;;;:20:::1;:26;::::0;;;;;::::1;;3780:27;3772:55;;;::::0;-1:-1:-1;;;3772:55:0;;2511:2:1;3772:55:0::1;::::0;::::1;2493:21:1::0;2550:2;2530:18;;;2523:30;-1:-1:-1;;;2569:18:1;;;2562:45;2624:18;;3772:55:0::1;2483:165:1::0;3772:55:0::1;-1:-1:-1::0;;;;;3838:26:0;::::1;;::::0;;;3867:4:::1;3838:26;::::0;;;;;;;;:33;;-1:-1:-1;;3838:33:0::1;::::0;;::::1;::::0;;;3887:22;;692:51:1;;;3887:22:0::1;::::0;665:18:1;3887:22:0::1;647:102:1::0;1090:208:0;2086:4;2118:6;-1:-1:-1;;;;;2118:6:0;817:10;2110:14;801:54;;;;-1:-1:-1;;;801:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1168:18:0;::::1;1160:56;;;::::0;-1:-1:-1;;;1160:56:0;;2855:2:1;1160:56:0::1;::::0;::::1;2837:21:1::0;2894:2;2874:18;;;2867:30;-1:-1:-1;;;2913:18:1;;;2906:55;2978:18;;1160:56:0::1;2827:175:1::0;1160:56:0::1;1253:6;::::0;1232:34:::1;::::0;;-1:-1:-1;;;;;1253:6:0;;::::1;966:34:1::0;;1036:15;;;1031:2;1016:18;;1009:43;1232:34:0::1;::::0;901:18:1;1232:34:0::1;;;;;;;1277:6;:13:::0;;-1:-1:-1;;;;;;1277:13:0::1;-1:-1:-1::0;;;;;1277:13:0;;;::::1;::::0;;;::::1;::::0;;1090:208::o;14:257:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:1:o;1958:346::-;2160:2;2142:21;;;2199:2;2179:18;;;2172:30;-1:-1:-1;;;2233:2:1;2218:18;;2211:52;2295:2;2280:18;;2132:172::o;3007:131::-;-1:-1:-1;;;;;3082:31:1;;3072:42;;3062:2;;3128:1;3125;3118:12;3062:2;3052:86;:::o

Swarm Source

ipfs://2a40fd8e847b2d7e1a5bbd5d5744ddd430110d96e71c3f82c3e7425840ca1f79

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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.