Contract 0xca719728Ef172d0961768581fdF35CB116e0B7a4

 
 
Txn Hash
Method
Block
From
To
Value
0x0b6822ac5d12b420a8418dae4fdd0fc4294d1b883415192cade5815af5698f700x60806040107246002020-08-24 18:02:29716 days 18 hrs ago0x2d407ddb06311396fe14d4b49da5f0471447d45c IN  Create: SmartWalletWhitelist0 Ether0.‍09536915139
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SmartWalletWhitelist

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-08-24
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.5.17;

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

contract SmartWalletWhitelist {
    
    mapping(address => bool) public wallets;
    address public dao;
    address public checker;
    address public future_checker;
    
    event ApproveWallet(address);
    event RevokeWallet(address);
    
    constructor(address _dao) public {
        dao = _dao;
        wallets[0xF147b8125d2ef93FB6965Db97D6746952a133934] = true;
        emit ApproveWallet(0xF147b8125d2ef93FB6965Db97D6746952a133934);
    }
    
    function commitSetChecker(address _checker) external {
        require(msg.sender == dao, "!dao");
        future_checker = _checker;
    }
    
    function applySetChecker() external {
        require(msg.sender == dao, "!dao");
        checker = future_checker;
    }
    
    function approveWallet(address _wallet) public {
        require(msg.sender == dao, "!dao");
        wallets[_wallet] = true;
        
        emit ApproveWallet(_wallet);
    }
    function revokeWallet(address _wallet) external {
        require(msg.sender == dao, "!dao");
        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;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_dao","type":"address"}],"payable":false,"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"},{"constant":false,"inputs":[],"name":"applySetChecker","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"approveWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"check","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"checker","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_checker","type":"address"}],"name":"commitSetChecker","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dao","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"future_checker","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"revokeWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wallets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50604051610c14380380610c148339818101604052602081101561003357600080fd5b810190808051906020019092919050505080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008073f147b8125d2ef93fb6965db97d6746952a13393473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc1e7aae3f3125e58cfc69ab2a872a655dbb9427614aa85b29bb5abeaca4d6a9273f147b8125d2ef93fb6965db97d6746952a133934604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150610a9d806101776000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806389b08f111161006657806389b08f11146101745780638fcdecc8146101d0578063943f35a41461021a578063c23697a81461025e578063cf5303cf146102ba57610093565b80630fcb0ae51461009857806326b42b1a146100dc5780634162169f146100e6578063808a9d4014610130575b600080fd5b6100da600480360360208110156100ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610304565b005b6100e4610484565b005b6100ee6105ac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101726004803603602081101561014657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105d2565b005b6101b66004803603602081101561018a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610752565b604051808215151515815260200191505060405180910390f35b6101d8610772565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61025c6004803603602081101561023057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610798565b005b6102a06004803603602081101561027457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061089f565b604051808215151515815260200191505060405180910390f35b6102c2610a42565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f2164616f0000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc1e7aae3f3125e58cfc69ab2a872a655dbb9427614aa85b29bb5abeaca4d6a9281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f2164616f0000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610695576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f2164616f0000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f1b676c3cc753786cb95aff57280fd7406f1da74e2a8b9755fdd395aded3e16dd81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60006020528060005260406000206000915054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461085b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f2164616f0000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905080156108ff5780915050610a3d565b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3757600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c23697a8846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156109f457600080fd5b505afa158015610a08573d6000803e3d6000fd5b505050506040513d6020811015610a1e57600080fd5b8101908080519060200190929190505050915050610a3d565b60009150505b919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea265627a7a72315820a2d56699e611da2792ad28ee48917a14a883fb4a9ec1802ea1de503fd4a836eb64736f6c6343000511003200000000000000000000000040907540d8a6c65c637785e8f8b742ae6b0b9968

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

00000000000000000000000040907540d8a6c65c637785e8f8b742ae6b0b9968

-----Decoded View---------------
Arg [0] : _dao (address): 0x40907540d8a6c65c637785e8f8b742ae6b0b9968

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000040907540d8a6c65c637785e8f8b742ae6b0b9968


Deployed ByteCode Sourcemap

159:1490:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;159:1490:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;925:182;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;925:182:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;789:124;;;:::i;:::-;;248:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1113:183;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1113:183:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;202:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;202:39:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;302:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;635:142;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;635:142:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1308:338;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1308:338:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;273:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;925:182;1005:3;;;;;;;;;;;991:17;;:10;:17;;;983:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1047:4;1028:7;:16;1036:7;1028:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1077:22;1091:7;1077:22;;;;;;;;;;;;;;;;;;;;;;925:182;:::o;789:124::-;858:3;;;;;;;;;;;844:17;;:10;:17;;;836:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;891:14;;;;;;;;;;;881:7;;:24;;;;;;;;;;;;;;;;;;789:124::o;248:18::-;;;;;;;;;;;;;:::o;1113:183::-;1194:3;;;;;;;;;;;1180:17;;:10;:17;;;1172:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1236:5;1217:7;:16;1225:7;1217:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;1267:21;1280:7;1267:21;;;;;;;;;;;;;;;;;;;;;;1113:183;:::o;202:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;302:29::-;;;;;;;;;;;;;:::o;635:142::-;721:3;;;;;;;;;;;707:17;;:10;:17;;;699:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;761:8;744:14;;:25;;;;;;;;;;;;;;;;;;635:142;:::o;1308:338::-;1363:4;1380:11;1394:7;:16;1402:7;1394:16;;;;;;;;;;;;;;;;;;;;;;;;;1380:30;;1425:6;1421:195;;;1455:6;1448:13;;;;;1421:195;1517:1;1498:21;;:7;;;;;;;;;;;:21;;;1494:111;;1566:7;;;;;;;;;;;1547:33;;;1581:7;1547:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1547:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1547:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1547:42:0;;;;;;;;;;;;;;;;1540:49;;;;;1494:111;1633:5;1626:12;;;1308:338;;;;:::o;273:22::-;;;;;;;;;;;;;:::o

Swarm Source

bzzr://a2d56699e611da2792ad28ee48917a14a883fb4a9ec1802ea1de503fd4a836eb
Block Transaction Difficulty Gas Used Reward
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.

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.