Contract 0x75AA4DC201818823F309c7eFa847D025fD5Fcd3D

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x7aa220ec7f59111e3b3b3cc07de8c4cba90052a6e5659f2ea7ac7339575b1c37Approve Wallet460774662022-08-31 16:15:3630 days 9 hrs ago0x4d5362dd18ea4ba880c829b0152b7ba371741e59 IN  0x75aa4dc201818823f309c7efa847d025fd5fcd3d0 FTM0.000486069096
0x58be7e51c36a514b9aca0db30298fa696a68c3d39511afa10afd16e1112084c7Approve Wallet388345832022-05-22 21:57:38131 days 3 hrs ago0x4d5362dd18ea4ba880c829b0152b7ba371741e59 IN  0x75aa4dc201818823f309c7efa847d025fd5fcd3d0 FTM0.001534368016
0x4397d874bba44b5127e0116e1eb9e87e3e0ac5b6fbe71cf1d5c416ca5213032dChange Admin368242432022-04-24 2:14:26159 days 23 hrs ago0x4d5362dd18ea4ba880c829b0152b7ba371741e59 IN  0x75aa4dc201818823f309c7efa847d025fd5fcd3d0 FTM0.007104014796
0x342d7e47ec1398831ea5317500071373eeaba51813751630ae791b15b71c97f5Approve Wallet368220052022-04-24 1:33:11160 days 16 mins ago0x4d5362dd18ea4ba880c829b0152b7ba371741e59 IN  0x75aa4dc201818823f309c7efa847d025fd5fcd3d0 FTM0.00688627753
0xe38be6ac485e52d9ac363e887803cdf3b8281f34b5051b47ceb0527902fb48b8Transfer Super A...368160632022-04-23 23:42:12160 days 2 hrs ago0x8ca573430fd584065c080ff1d2ea1a8dfb259ae8 IN  0x75aa4dc201818823f309c7efa847d025fd5fcd3d0 FTM0.006986831355
0xc20c54c127a01bcbacc0e29af2be713a347c0b9291c12ad2ac95e5a0e307caa9Change Admin368160512022-04-23 23:42:00160 days 2 hrs ago0x8ca573430fd584065c080ff1d2ea1a8dfb259ae8 IN  0x75aa4dc201818823f309c7efa847d025fd5fcd3d0 FTM0.005395402987
0x4645746697de49925988c6efdac3701afd371bd0f8bbf3516d2764edf8da683bApprove Wallet368064672022-04-23 20:45:42160 days 5 hrs ago0x4d5362dd18ea4ba880c829b0152b7ba371741e59 IN  0x75aa4dc201818823f309c7efa847d025fd5fcd3d0 FTM0.007547919775
0x0f1651e8d70908dfc11bd43a15780c19a3f13632db41cdc70b5bf819db9214a6Change Admin367949022022-04-23 17:16:11160 days 8 hrs ago0x8ca573430fd584065c080ff1d2ea1a8dfb259ae8 IN  0x75aa4dc201818823f309c7efa847d025fd5fcd3d0 FTM0.008851206742
0x6a1b1814baf75e593fb395a71e31edb8ac148617d6a1159485b5b914212509f9Batch Approve Wa...367948702022-04-23 17:15:35160 days 8 hrs ago0x8ca573430fd584065c080ff1d2ea1a8dfb259ae8 IN  0x75aa4dc201818823f309c7efa847d025fd5fcd3d0 FTM0.076137843728
0x12367e66c6cba290a29d25621999ea49caaba293e8348b5d29f0980e394ed050Change Admin367947992022-04-23 17:14:17160 days 8 hrs ago0x8ca573430fd584065c080ff1d2ea1a8dfb259ae8 IN  0x75aa4dc201818823f309c7efa847d025fd5fcd3d0 FTM0.009546651736
0x50456f9cc66a4903028624487430db68cf50ad4f9fd8560ff0ed185212e4c9e1Change Admin367947912022-04-23 17:14:07160 days 8 hrs ago0x8ca573430fd584065c080ff1d2ea1a8dfb259ae8 IN  0x75aa4dc201818823f309c7efa847d025fd5fcd3d0 FTM0.009546651736
0xf7f9bc938a61b47ee3f8856ca55819730e6e2dc47c7908c1265c2cb8e787a52eChange Admin367944932022-04-23 17:09:09160 days 8 hrs ago0x8ca573430fd584065c080ff1d2ea1a8dfb259ae8 IN  0x75aa4dc201818823f309c7efa847d025fd5fcd3d0 FTM0.00366724
0x7b725a1ee77c08b792009032fbb47d05094ba71b6daf54c26665c03a101bc3050x60806040367944872022-04-23 17:09:02160 days 8 hrs ago0x8ca573430fd584065c080ff1d2ea1a8dfb259ae8 IN  Create: SmartWalletWhitelistV20 FTM0.1437996
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x7b725a1ee77c08b792009032fbb47d05094ba71b6daf54c26665c03a101bc305367944872022-04-23 17:09:02160 days 8 hrs ago 0x8ca573430fd584065c080ff1d2ea1a8dfb259ae8  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SmartWalletWhitelistV2

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : SmartWalletWhitelistV2.sol
// SPDX-License-Identifier: GNU-GPL v3.0 or later

pragma solidity ^0.8.0;

interface SmartWalletChecker {
    function check(address) external view returns (bool);
}

/// @author RobAnon
contract SmartWalletWhitelistV2 {
    
    mapping(address => bool) public wallets;
    
    bytes32 public constant ADMIN = "ADMIN";

    bytes32 public constant SUPER_ADMIN = "SUPER_ADMIN";

    mapping(address => bytes32) public roles;
    
    address public checker;
    address public future_checker;
    
    event ApproveWallet(address);
    event RevokeWallet(address);
    
    constructor(address _admin) {
        roles[_admin] = ADMIN;
        roles[msg.sender] = SUPER_ADMIN;
    }
    
    function commitSetChecker(address _checker) external {
        require(isAdmin(msg.sender), "!admin");
        future_checker = _checker;
    }

    function changeAdmin(address _admin, bool validAdmin) external {
        require(isAdmin(msg.sender), "!admin");
        require(!isSuperAdmin(_admin), "!auth"); // Overwrite protection
        if(validAdmin) {
            roles[_admin] = ADMIN;
        } else {
            roles[_admin] = 0x0;
        }
    }

    function transferSuperAdmin(address _newAdmin) external {
        require(isSuperAdmin(msg.sender),'!sAdmin');
        roles[msg.sender] = 0x0;
        roles[_newAdmin] = SUPER_ADMIN;
    }
    
    function applySetChecker() external {
        require(isAdmin(msg.sender), "!admin");
        checker = future_checker;
    }
    
    function approveWallet(address _wallet) public {
        require(isAdmin(msg.sender), "!admin");
        wallets[_wallet] = true;
        
        emit ApproveWallet(_wallet);
    }

    function batchApproveWallets(address[] memory _wallets) public {
        require(isAdmin(msg.sender), "!admin");
        for(uint i = 0; i < _wallets.length; i++) {
            wallets[_wallets[i]] = true;
            emit ApproveWallet(_wallets[i]);
        }
    }

    function revokeWallet(address _wallet) external {
        require(isAdmin(msg.sender), "!admin");
        wallets[_wallet] = false;
        
        emit RevokeWallet(_wallet);
    }
    
    function check(address _wallet) external view returns (bool) {
        bool _check = wallets[_wallet];
        if (_check) {
            return _check;
        } else {
            if (checker != address(0)) {
                return SmartWalletChecker(checker).check(_wallet);
            }
        }
        return false;
    }

    function isAdmin(address checkAdd) internal view returns (bool valid) {
        valid = roles[checkAdd] == ADMIN || roles[checkAdd] == SUPER_ADMIN;
    }

    function isSuperAdmin(address checkAdd) internal view returns (bool valid) {
        valid = roles[checkAdd] == SUPER_ADMIN;
    }

    
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 10000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"ApproveWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"RevokeWallet","type":"event"},{"inputs":[],"name":"ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUPER_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"applySetChecker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"approveWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"}],"name":"batchApproveWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"bool","name":"validAdmin","type":"bool"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"check","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_checker","type":"address"}],"name":"commitSetChecker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"future_checker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"revokeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"roles","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"transferSuperAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wallets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50604051610ebd380380610ebd83398101604081905261002f9161006d565b6001600160a01b03166000908152600160205260408082206420a226a4a760d91b905533825290206a29aaa822a92fa0a226a4a760a91b905561009b565b60006020828403121561007e578081fd5b81516001600160a01b0381168114610094578182fd5b9392505050565b610e13806100aa6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638fcdecc81161008c578063c23697a811610066578063c23697a81461023e578063cf5303cf14610251578063dc11a49614610271578063f472fafb1461028457600080fd5b80638fcdecc8146101c6578063943f35a41461020b578063993746421461021e57600080fd5b80632a0acc6a116100c85780632a0acc6a1461011f5780637c7c7c3c14610159578063808a9d401461018057806389b08f111461019357600080fd5b80630c6dd9fd146100ef5780630fcb0ae51461010457806326b42b1a14610117575b600080fd5b6101026100fd366004610bee565b610297565b005b610102610112366004610bee565b610388565b61010261047b565b6101467f41444d494e00000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101467f53555045525f41444d494e00000000000000000000000000000000000000000081565b61010261018e366004610bee565b610533565b6101b66101a1366004610bee565b60006020819052908152604090205460ff1681565b6040519015158152602001610150565b6003546101e69073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610150565b610102610219366004610bee565b61061c565b61014661022c366004610bee565b60016020526000908152604090205481565b6101b661024c366004610bee565b6106d2565b6002546101e69073ffffffffffffffffffffffffffffffffffffffff1681565b61010261027f366004610c08565b6107d8565b610102610292366004610c3e565b610971565b336000908152600160205260409020547f53555045525f41444d494e00000000000000000000000000000000000000000014610334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f217341646d696e0000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b3360009081526001602052604080822082905573ffffffffffffffffffffffffffffffffffffffff929092168152207f53555045525f41444d494e0000000000000000000000000000000000000000009055565b61039133610b28565b6103f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2161646d696e0000000000000000000000000000000000000000000000000000604482015260640161032b565b73ffffffffffffffffffffffffffffffffffffffff81166000818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590519182527fc1e7aae3f3125e58cfc69ab2a872a655dbb9427614aa85b29bb5abeaca4d6a9291015b60405180910390a150565b61048433610b28565b6104ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2161646d696e0000000000000000000000000000000000000000000000000000604482015260640161032b565b600354600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b61053c33610b28565b6105a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2161646d696e0000000000000000000000000000000000000000000000000000604482015260640161032b565b73ffffffffffffffffffffffffffffffffffffffff81166000818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905590519182527f1b676c3cc753786cb95aff57280fd7406f1da74e2a8b9755fdd395aded3e16dd9101610470565b61062533610b28565b61068b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2161646d696e0000000000000000000000000000000000000000000000000000604482015260640161032b565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff811660009081526020819052604081205460ff1680156107075792915050565b60025473ffffffffffffffffffffffffffffffffffffffff16156107cf576002546040517fc23697a800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529091169063c23697a89060240160206040518083038186803b15801561079057600080fd5b505afa1580156107a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c89190610d23565b9392505050565b50600092915050565b6107e133610b28565b610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2161646d696e0000000000000000000000000000000000000000000000000000604482015260640161032b565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020547f53555045525f41444d494e00000000000000000000000000000000000000000014156108f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f2161757468000000000000000000000000000000000000000000000000000000604482015260640161032b565b8015610946575073ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090207f41444d494e0000000000000000000000000000000000000000000000000000009055565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260408120555b5050565b61097a33610b28565b6109e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2161646d696e0000000000000000000000000000000000000000000000000000604482015260640161032b565b60005b815181101561096d576001600080848481518110610a2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc1e7aae3f3125e58cfc69ab2a872a655dbb9427614aa85b29bb5abeaca4d6a92828281518110610add577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151604051610b0e919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b60405180910390a180610b2081610d3f565b9150506109e3565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600160205260408120547f41444d494e0000000000000000000000000000000000000000000000000000001480610bbf575073ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020547f53555045525f41444d494e000000000000000000000000000000000000000000145b92915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610be957600080fd5b919050565b600060208284031215610bff578081fd5b6107c882610bc5565b60008060408385031215610c1a578081fd5b610c2383610bc5565b91506020830135610c3381610dcc565b809150509250929050565b60006020808385031215610c50578182fd5b823567ffffffffffffffff80821115610c67578384fd5b818501915085601f830112610c7a578384fd5b813581811115610c8c57610c8c610d9d565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715610ccf57610ccf610d9d565b604052828152858101935084860182860187018a1015610ced578788fd5b8795505b83861015610d1657610d0281610bc5565b855260019590950194938601938601610cf1565b5098975050505050505050565b600060208284031215610d34578081fd5b81516107c881610dcc565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d96577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8015158114610dda57600080fd5b5056fea26469706673582212207b35eebe3ac29ef8f1aeeb00ee81f81135a4efd2229573c98fb40936bc111ce364736f6c634300080400330000000000000000000000008ca573430fd584065c080ff1d2ea1a8dfb259ae8

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

0000000000000000000000008ca573430fd584065c080ff1d2ea1a8dfb259ae8

-----Decoded View---------------
Arg [0] : _admin (address): 0x8ca573430fd584065c080ff1d2ea1a8dfb259ae8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008ca573430fd584065c080ff1d2ea1a8dfb259ae8


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.