ETH Price: $2,688.20 (-1.76%)

Contract

0x4BDe0eDeEe3a911D3A9b7bE182018Bf2Da1bBA43

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
File1653746142023-12-30 18:34:57762 days ago1703961297IN
0x4BDe0eDe...2Da1bBA43
0 ETH0.000053420.1

Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Bank

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
london EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IERC20 {
    function transfer(address, uint256) external returns (bool);
}

contract Bank {
    mapping(address => bool) public exec;

    event File(bytes32 indexed what, address data);

    error InvalidFile();
    error Unauthorized();
    error TransferFailed();

    constructor() {
        exec[msg.sender] = true;
    }

    modifier auth() {
        if (!exec[msg.sender]) revert Unauthorized();
        _;
    }

    function file(bytes32 what, address data) external auth {
        if (what == "exec") {
            exec[data] = !exec[data];
        } else {
            revert InvalidFile();
        }
        emit File(what, data);
    }

    function transferNative(address to, uint256 amount) external auth {
        if (amount == 0) return;
        (bool s,) = to.call{value: amount}("");
        if (!s) revert TransferFailed();
    }

    function transfer(address token, address to, uint256 amount) external auth {
        if (amount == 0) return;
        if (!IERC20(token).transfer(to, amount)) revert TransferFailed();
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidFile","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":false,"internalType":"address","name":"data","type":"address"}],"name":"File","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exec","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"address","name":"data","type":"address"}],"name":"file","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferNative","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50336000908152602081905260409020805460ff191660011790556104248061003a6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80636bb6126e146100515780637d2e90c214610088578063beabacc81461009d578063d4e8be83146100b0575b600080fd5b61007461005f366004610318565b60006020819052908152604090205460ff1681565b604051901515815260200160405180910390f35b61009b61009636600461033a565b6100c3565b005b61009b6100ab366004610364565b610172565b61009b6100be3660046103a0565b610237565b3360009081526020819052604090205460ff166100f2576040516282b42960e81b815260040160405180910390fd5b801561016e576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610145576040519150601f19603f3d011682016040523d82523d6000602084013e61014a565b606091505b505090508061016c576040516312171d8360e31b815260040160405180910390fd5b505b5050565b3360009081526020819052604090205460ff166101a1576040516282b42960e81b815260040160405180910390fd5b801561016c5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156101f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021a91906103cc565b61016c576040516312171d8360e31b815260040160405180910390fd5b3360009081526020819052604090205460ff16610266576040516282b42960e81b815260040160405180910390fd5b81636578656360e01b036102a1576001600160a01b0381166000908152602081905260409020805460ff19811660ff909116151790556102ba565b6040516302bfa98160e41b815260040160405180910390fd5b6040516001600160a01b038216815282907f8fef588b5fc1afbf5b2f06c1a435d513f208da2e6704c3d8f0e0ec91167066ba9060200160405180910390a25050565b80356001600160a01b038116811461031357600080fd5b919050565b60006020828403121561032a57600080fd5b610333826102fc565b9392505050565b6000806040838503121561034d57600080fd5b610356836102fc565b946020939093013593505050565b60008060006060848603121561037957600080fd5b610382846102fc565b9250610390602085016102fc565b9150604084013590509250925092565b600080604083850312156103b357600080fd5b823591506103c3602084016102fc565b90509250929050565b6000602082840312156103de57600080fd5b8151801515811461033357600080fdfea2646970667358221220d85394315200da6d56092d5dac768b946869f17b9c821d43d051965550dce14f64736f6c63430008110033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80636bb6126e146100515780637d2e90c214610088578063beabacc81461009d578063d4e8be83146100b0575b600080fd5b61007461005f366004610318565b60006020819052908152604090205460ff1681565b604051901515815260200160405180910390f35b61009b61009636600461033a565b6100c3565b005b61009b6100ab366004610364565b610172565b61009b6100be3660046103a0565b610237565b3360009081526020819052604090205460ff166100f2576040516282b42960e81b815260040160405180910390fd5b801561016e576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610145576040519150601f19603f3d011682016040523d82523d6000602084013e61014a565b606091505b505090508061016c576040516312171d8360e31b815260040160405180910390fd5b505b5050565b3360009081526020819052604090205460ff166101a1576040516282b42960e81b815260040160405180910390fd5b801561016c5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156101f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021a91906103cc565b61016c576040516312171d8360e31b815260040160405180910390fd5b3360009081526020819052604090205460ff16610266576040516282b42960e81b815260040160405180910390fd5b81636578656360e01b036102a1576001600160a01b0381166000908152602081905260409020805460ff19811660ff909116151790556102ba565b6040516302bfa98160e41b815260040160405180910390fd5b6040516001600160a01b038216815282907f8fef588b5fc1afbf5b2f06c1a435d513f208da2e6704c3d8f0e0ec91167066ba9060200160405180910390a25050565b80356001600160a01b038116811461031357600080fd5b919050565b60006020828403121561032a57600080fd5b610333826102fc565b9392505050565b6000806040838503121561034d57600080fd5b610356836102fc565b946020939093013593505050565b60008060006060848603121561037957600080fd5b610382846102fc565b9250610390602085016102fc565b9150604084013590509250925092565b600080604083850312156103b357600080fd5b823591506103c3602084016102fc565b90509250929050565b6000602082840312156103de57600080fd5b8151801515811461033357600080fdfea2646970667358221220d85394315200da6d56092d5dac768b946869f17b9c821d43d051965550dce14f64736f6c63430008110033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.